• サイトリンク検索ボックスはWebSiteとSearchActionで自社の検索結果URLを示す

サイトリンク検索ボックスはWebSiteとSearchActionで自社の検索結果URLを示す

公開日: 執筆:佐藤

Googleのサイトリンク検索ボックスから自社の検索結果へ直接移動させるには、動作するサイト内検索を先に用意し、top pageへWebSiteとSearchActionの構造化データを置きます。

構造化データは検索機能を作るものではありません。また、markupを置けば検索ボックスが必ず表示されるわけでもありません。先に自社の検索結果URLが正しい内容を返すことを確かめ、そのURLの組み立て方をGoogleへ示します。

サイト内検索が動くことを先に確認する

サイトリンク検索ボックスは、会社名などで検索した人が、そのsiteの中にある特定の情報を続けて探すための入口です。Googleは、正しいmarkupがある場合、利用者を自社のsite内検索結果へ直接送れると案内しています。

実装前に、site内検索で次を確認します。

確認対象 確認する内容
検索語あり 対応する記事やpageが表示されるか
結果なし 検索できなかったことと次の行動が分かるか
日本語 検索語をURLへ渡して正しく読めるか
URL 同じ形式で検索結果を再表示できるか
公開範囲 非公開情報や管理用dataを結果へ出さないか

たとえば、自社の検索結果URLが次の形式なら、qの値を変えて複数の検索語を試します。

https://example.jp/search?q=wordpress

wordpressを別の語へ置き換えても、その語に対応する検索結果を返すことが実装の前提です。

WebSiteのpotentialActionへSearchActionを置く

サイトリンク検索ボックスに関するGoogleの公式案内では、top pageをschema.org/WebSiteとして表し、potentialActionへschema.org/SearchActionを指定する方法が示されています。形式にはJSON-LD、microdata、RDFaを使えます。

JSON-LDで表す仮例は次のようになります。

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebSite",
  "url": "https://example.jp/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://example.jp/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>

各propertyの役割は次のとおりです。

property 示す内容
WebSite 検索の対象になるsite
url siteの代表URL
potentialAction siteで実行できる操作
SearchAction site内を検索する操作
target 検索語を入れる検索結果URLの型
query-input targetへ渡す検索語の名前

このmarkupはtop pageへ一つ置きます。記事ごとに同じSearchActionを繰り返す必要はありません。

targetとquery-inputの名前を一致させる

targetの波括弧内にある名前と、query-inputのnameは一致させます。仮例では、どちらもsearch_term_stringです。

target       {search_term_string}
query-input  name=search_term_string

名前だけでなく、置換後のURLも試します。target内の波括弧を実際の検索語へ置き換え、正しい検索結果pageへ到達するかを確認します。

https://example.jp/search?q=wordpress
https://example.jp/search?q=analytics

一つ目だけが動く、空のpageを返す、すべてtop pageへ転送する場合は、構造化データより先にsite内検索を直します。

markupと検索ボックスの表示を分けて考える

WebSiteとSearchActionを置く目的は、自社の検索結果URLをGoogleへ伝えることです。検索結果にサイトリンク検索ボックスを表示するかどうかはGoogleが判断します。

Googleがmarkupを見つけない場合は、従来どおり対応するsite:検索のGoogle検索結果を表示すると案内しています。したがって、markupの有無と、検索ボックス自体の表示有無、自社検索結果への移動を分けて確認します。

状態 判断できること
markupが読める 構文とpropertyをGoogleが確認できる
自社検索URLが動く 検索語を渡して結果pageを返せる
検索ボックスが表示される Googleがその検索結果で表示を選んだ
自社検索へ移動する SearchActionのtargetが使われた

構造化データの試験が通っても、検索ボックスの表示は保証されません。反対に、検索ボックスが見える場合でも、自社の検索結果へ移動するには、動作するsite内検索と正しいmarkupが必要です。

検索機能とmarkupの管理者を決める

site内検索のprogramを直す担当と、top pageの構造化データを直す担当が別の場合は、検索結果URLの形式を共有します。program側がparameter名やURLを変えたのに、targetを残せば移動先が壊れます。

変更記録には、次の四点を残します。

  1. site内検索のURL形式
  2. target内のplaceholder名
  3. query-inputのname
  4. 実際に試した検索語と結果URL

制作会社へmarkupを依頼しても、どの情報を検索対象にするか、検索結果へ何を出してよいかは事業者が決めます。構造化データの設置と、site内検索の公開範囲を同じ作業として丸投げしません。

最初の一手は、現在のsite内検索で異なる検索語を二つ試し、結果URLのどの部分が検索語へ置き換わるかを記録することです。その形式が安定してから、targetとquery-inputを作ります。

戻る