サイトリンク検索ボックスは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を残せば移動先が壊れます。
変更記録には、次の四点を残します。
- site内検索のURL形式
target内のplaceholder名query-inputのname- 実際に試した検索語と結果URL
制作会社へmarkupを依頼しても、どの情報を検索対象にするか、検索結果へ何を出してよいかは事業者が決めます。構造化データの設置と、site内検索の公開範囲を同じ作業として丸投げしません。
最初の一手は、現在のsite内検索で異なる検索語を二つ試し、結果URLのどの部分が検索語へ置き換わるかを記録することです。その形式が安定してから、targetとquery-inputを作ります。
関連記事

