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

サイトリンク検索ボックスを使用すると、ユーザーは検索結果ページから直接サイトやアプリを検索でき、時間を節約できます。検索ボックスには、リアルタイムのおすすめやその他の機能が実装されます。

Google 検索では、検索結果にウェブサイトが表示されると、そのサイトを対象とした検索ボックスが自動的に表示されます。特にそのための作業は必要ありません。この検索ボックスは、Google 検索を利用しています。ただし、WebSite 構造化データを追加して明示的に情報を提供することにより、Google がサイトをより正確に把握できるようになります。

サイトリンク検索ボックスの実装方法

サイトを Google 検索結果の検索ボックスから表示できるようにするための手順は以下のとおりです。

  1. ウェブサイトや 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 についての説明をご覧ください。

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

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

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

JSON-LD

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


<html>
  <head>
    <title>The title of the page</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "url": "https://www.example.com/",
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https://query.example.com/search?q={search_term_string}",
        "query-input": "required name=search_term_string"
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>
microdata

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


<div itemscope itemtype="https://schema.org/WebSite">
  <meta itemprop="url" content="https://www.example.com/"/>
  <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
    <meta itemprop="target" content="https://query.example.com/search?q={search_term_string}"/>
    <input itemprop="query-input" type="text" name="search_term_string" required/>
    <input type="submit"/>
  </form>
</div>
  

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

<html>
  <head>
    <title>The title of the page</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "url": "https://www.example.com/",
      "potentialAction": [{
        "@type": "SearchAction",
        "target": "https://query.example.com/search?q={search_term_string}",
        "query-input": "required name=search_term_string"
      },{
        "@type": "SearchAction",
        "target": "android-app://com.example/https/query.example.com/search/?q={search_term_string}",
        "query-input": "required name=search_term_string"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

ガイドライン

サイトがリッチリザルトとして表示されるようにするには、下記のガイドラインを遵守する必要があります。

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

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

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

コンテンツをサイトリンク検索ボックスとともに表示できるようにするには、必須プロパティを含めます。

変更型タイプ 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 {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

Search Console でリッチリザルトを監視する

Search Console は、Google 検索におけるページのパフォーマンスを監視できるツールです。Search Console に登録していなくても Google 検索結果に表示されますが、登録することにより、Google がサイトをどのように認識しているかを把握して改善できるようになります。次の場合は Search Console を確認することをおすすめします。

  1. 構造化データを初めてデプロイした後
  2. 新しいテンプレートをリリースした後やコードを更新した後
  3. トラフィックを定期的に分析する場合

構造化データを初めてデプロイした後

ページがインデックスに登録されたら、関連するリッチリザルトのステータス レポートを使用して、問題がないかどうかを確認します。有効なページが増え、エラーや警告が増えていない状態が理想的です。構造化データに問題が見つかった場合の手順は次のとおりです。

  1. エラーを修正します
  2. 公開 URL の検査を行い、問題が解決したかどうかを確認します。
  3. ステータス レポートを使用して検証をリクエストします。

新しいテンプレートをリリースした後やコードを更新した後

ウェブサイトに大幅な変更を加えた場合は、構造化データのエラーや警告が増加しないかどうか監視します。
  • エラーが増加した場合は、新しく公開したテンプレートが正常に機能していないか、既存のテンプレートの動作に問題が生じていることが原因と考えられます。
  • 有効な項目が減少している(エラーの増加と一致しない)場合は、ページに構造化データが埋め込まれていない可能性があります。URL 検査ツールを使用して問題の原因を特定します。

トラフィックを定期的に分析する場合

パフォーマンス レポートを使用して Google 検索のトラフィックを分析します。このデータから、検索でページがリッチリザルトとして表示される頻度、ユーザーがページをクリックする頻度、検索結果におけるページの平均掲載順位がわかります。Search Console API を使用して、このデータを自動的に取得することもできます。

トラブルシューティング

構造化データを実装する際に問題が発生した場合は、以下のリソースを確認してください。