サイトリンク検索ボックス

Google 検索には、検索結果として表示されたウェブサイトを対象とする検索ボックスが表示されることがあります。この検索ボックスでは Google 検索を利用しますが、ウェブサイトに構造化データを埋め込むことで、独自の検索エンジンを利用することもできます。また、関連付けられたモバイルアプリを検索結果に含めることも可能です。

人が何かを検索するとき、よく知られているサイトやアプリをブランド名や URL でまず検索し、検索結果にたどりついてから具体的な検索を行うことがあります。たとえば、Pinterest でピザのピンを検索する場合、Google アプリやウェブブラウザで Google 検索に「Pinterest」または「pinterest.com」と入力し、サイトや Android アプリを読み込んでからようやく「ピザ」を検索することになります。検索結果ページに検索ボックスが表示されれば、ユーザーはサイトやアプリをその場ですぐに検索することができます。検索ボックスには、リアルタイムのおすすめやその他の機能が実装されます。

「Pinterest」の Google 検索結果に表示される Pinterest ウェブサイトのサイトリンク検索ボックスの例:

使用中のサイトリンク検索ボックス

次のマークアップ例では、ウェブサイトのカスタム検索エンジンを使用するサイトリンク検索ボックスが実装されます。

JSON-LD

JSON-LD で記述する例を示します。

microdata

microdata で記述する例を示します。

JSON-LD でサイトとアプリを記述する例を示します。

ガイドライン

構造化データの一般的なガイドラインのほか、サイトリンク検索ボックスのマークアップには次のガイドラインが適用されます。

サイトやアプリの検索ボックスを設定する手順は次のとおりです。

  1. ウェブサイトや Android アプリに、動作する検索エンジンをインストールします。

    サイトリンク検索クエリを指定すると、ユーザーはサイトやアプリの検索結果ページに移動するため、この機能には動作する検索エンジンが必要です。

    • ウェブサイト: ウェブサイトや Android アプリに検索エンジンを設定します。この機能では、構造化データで指定された構文に従ってユーザーのクエリがターゲットに転送されます。検索エンジンは UTF-8 エンコードのクエリをサポートする必要があります。
    • アプリ: アプリの検索エンジンを実装する方法については、Android デベロッパー サイトの検索の概要をご覧ください。Android アプリは、検索結果からの ACTION_VIEW インテントと、マークアップの potentialAction.target プロパティで指定された対応するデータ URI をサポートする必要があります。
  2. サイトのトップページに WebSite 構造化データ要素を実装します。 この機能を有効にするには、アプリにウェブサイトを関連付けておく必要があります。ウェブサイトは 1 ページのみでも構いません。他に次のようなガイドラインがあります。
    • このマークアップはトップページにのみ追加してください。他のページには追加しないでください。
    • ウェブサイトには必ず SearchAction を 1 つ指定してください。アプリ検索をサポートする場合は必要に応じてもう 1 つ指定してください。アプリが優先検索ターゲットであっても、必ずウェブサイトに対する SearchAction を設定してください。ユーザーが Android スマートフォンから検索していない場合や Android アプリをインストールしていない場合、ユーザーは検索結果からウェブサイトに移動します。
  3. 構造化データ テストツールを使用して構造化データを確認します。
  4. 検索エンジンの実装を確認します。構造化データから WebSite.potentialAction.target の URL をコピーし、search_term_string をテストクエリに置き換えて、ウェブブラウザでその URL を参照します。たとえば、ウェブサイトが example.com の場合に「kittens」というクエリをテストするには、https://www.example.com/search/?q={kittens} を参照します。
  5. トップページのすべてのバリエーションで rel="canonical" リンク要素を使用し、ドメインのトップページに正規 URL を設定します。この設定により、Google 検索でマークアップに対する正しい URL が選択されます。サーバーが UTF-8 文字エンコードをサポートしている必要があります。
  6. アプリの場合、マークアップのアプリ ターゲットで指定する URL をサポートするよう適切なインテント フィルタを有効にします。Google 検索 URL 用のインテント フィルタを作成する方法の例については、Firebase の Android 向け App Indexing についての説明をご覧ください。

ここに記載されている構造化データが含まれていない場合でも、Google 検索ではサイトにサイトリンク検索ボックスを追加することがあります。サイトリンク検索ボックスが表示されないようにするには、トップページに次のメタタグを追加します。

<meta name="google" content="nositelinkssearchbox" />

サイトリンク検索ボックスは、通常の Googlebot によるページのクロールと処理の一部として無効になります。この無効化には、サイトやその他の要因に応じて数週間ほどかかることがあります。

構造化データタイプの定義

コンテンツがリッチリザルトとして表示されるようにするには、必須プロパティが必要です。また、推奨プロパティを使用すると、コンテンツに関する詳細情報を追加できるので、ユーザー エクスペリエンスの向上につながります。

変更型タイプ WebSite

Google 検索では、ウェブサイトとアプリの検索ボックスの両方に変更型の WebSite 構造化データタイプを使用します。WebSite の定義の全文は schema.org でご確認いただけますが、Google 検索では少し変更を加えています。以下は確定している説明です。

必須プロパティ
potentialAction

1 つまたは 2 つの SearchAction オブジェクトの配列

このオブジェクトは、クエリの送信先の URI と、送信されるリクエストの構文を表します。リクエストを受け取り、送信された文字列で適切な検索を実行できる、ウェブページまたはインテント ハンドラを実装する必要があります。ユーザーが Android アプリを使用していない(または、Android アプリを使用しているが、Android インテント ターゲットを指定していない)場合、検索ボックスから指定の場所にウェブサイト バージョンのクエリが送信されます。ユーザーが Android アプリを使用し、Android インテント URI を指定している場合は、そのインテントが送信されます。

パソコンでの検索を有効にするには、必ずウェブサイトの SearchAction を作成してください。アプリ検索もサポートしている場合は、アプリの SearchAction オブジェクトも指定できます。各 SearchAction オブジェクトには、次のメンバーがあります。

potentialAction.query-input

Text

文字列 required name = search_term_string、または target で使用したプレースホルダを使用します。

potentialAction.target

Text

次の形式の文字列: search_handler_uri?q={search_term_string}

次に例を示します。

https://query.example.com/search?q={search_term_string}
search_handler_uri ウェブサイトの場合は、検索クエリを受け取って処理するハンドラの URL。アプリの場合は、クエリを処理する検索エンジンのインテント ハンドラの URI。
search_term_string

ユーザーが検索ボックスの [検索] ボタンをクリックしたときにユーザーの検索クエリに置き換えられるプレースホルダ文字列。

url

URL

検索先のサイトの URL を指定します。サイトの正規のトップページに設定します。例: https://www.example.org