構造化データマークアップに関する記事として、これまでに
- ・パンくずリストをJSON-LD形式で構造化データマークアップする方法
[WordPress]JSON-LDでパンくずリストを構造化データマークアップする方法 - ・ハウツー(HowTo)系の記事を、JSON-LD形式で構造化データマークアップする方法
[JSON-LD]構造化データを記述して、検索結果をリッチリザルトにする方法[ “@type”: “HowTo” の場合] - ・よくある質問をリッチリザルト化する方法
[JSON-LD]構造化データを記述して、よくある質問をリッチリザルト化する方法[“@type”: “FAQPage” の場合] - ・Webページ内にある動画情報を検索エンジンに伝える方法
[SEO施策]構造化データマークアップをして、Webページ内にある動画情報を検索エンジンに伝える方法[構造化, Webサイト制作] - ・うちのWebサイトのロゴはこれ!と、検索エンジンに伝える方法
[SEO施策]うちのWebサイトのロゴはこれ!と、構造化マークアップで検索エンジンに伝える方法[構造化, Webサイト制作] - ・画像のライセンス情報を検索エンジンに伝える方法
[SEO施策]構造化データマークアップをして、画像のライセンス情報を検索エンジンに伝える方法[構造化, Webサイト制作]
について書いてきました。
今回は、上記のシリーズの記事と同様に「JSON-LD」という記述法を使って、
お店やサービスの情報について、検索エンジンに明示する方法を書いていきます。
「構造化データマークアップって何? JSON-LDとは?」 という方は、こちらの記事:
[WordPress]JSON-LDでパンくずリストを構造化データマークアップする方法をご覧ください。 構造化データマークアップの基本的な仕組みや考え方について、パンくずリストの構造化を例にして書いてあります。
早速コードをご紹介
お店やサービスの情報を検索エンジンに明示するコードは、次の様になります。
"@type" : "LocalBusiness"
を使用します。
<script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "LocalBusiness", "name" : "Your Service Name", "address" : "M県S市M町1-2-3", "priceRange" : "¥800,000~¥1,000,000", "telephone" : "+8103********", "image" : "https://example.com/photos/16x9/thumbnail-16by9.jpg" } </script>
解説など
上記のコードが、Googleが提供してくれている公式の構造化データマークアップ検証ツール( リッチリザルトテスト に通して、エラーが出ない最小限の構成になります。
ざっくりと何を記述しているかを書きます。
3~4行目は、いつも通りの、JSON-LD形式で構造化データマークアップを行う際の基本的な形です。
ここで、この構造化データマークアップが「何に対しての構造化データなのか」ということを定義していることになります。
今回はお店やサービスの情報を構造化したいので、"@type" : "LocalBusiness",
を指定。
5行目では店名、サービスの名称を指定。
6行目は、お店やサービスの所在地を指定。(便宜上、サンプルのアドレスを載せています)
こちらの所在地の情報については、緯度経度の情報など、もっと細かく指定することも可能です。
詳しくは、後述するGoogle公式のLocalBusiness構造化の解説ページを参照ください。
7行目は、お店やサービスの大まかな価格帯を設定。
この、価格帯を表す表記方法については定義が曖昧で、githubの、schemaorgのIssue上でも議論を引き起こしていた様です。
英語圏で大体の価格レンジを示す $(安価)~$$$$$(高価) の$マークを重ねて記述することによる表示方法、または実際の価格での範囲表示が有効な模様です。
8行目は、お店やサービスの電話番号を指定。(便宜上、サンプルの電話番号を載せています)
電話番号は、Google公式のLocalBusiness構造化の解説ページで「電話番号には必ず国番号と市外局番を含めてください。」と記載がありますので、先頭に日本を示す国番号+81をつけています。
9行目は、文字通りお店やサービスの画像URLを指定します。
以上の内容を記述しておけば、最小限ですが、お店やサービスの情報を、構造化データマークアップする事ができた、ということになります。
なお、上記は本当に最小限の構成で、リッチリザルトテスト に通して、エラーが出ずに認識される構成となります。
もちろん、以下の公式のガイドに沿って情報を加えていくことで、より詳細に情報を
検索エンジンに伝えることが可能になることでしょう。
Local Business Structured Data | Google Search Central
(ちなみに、なぜ英語版のリンクを載せているかというと、このあと書きます…)
必須項目で挙げられている @id について
日本語版の公式解説ページには、必須の指定項目として挙げられている @id という項目があります。
しかし、公式のサンプルコード内には @id の指定がなく、これを省略しても、特にリッチリザルトテストでもエラーは出ません。
なぜなのか…
と長らく疑問に思っていたのですが、次のリンクに答えがありました。
最新のドキュメントの更新情報 | 検索セントラル | Google Developers
↑このリンク先の、2021年7月22日のアップデート情報に以下の様に記載がありました。
ローカル ビジネスのドキュメントから @id プロパティを削除しました。これは、url プロパティのみでローカル ビジネスを十分に識別できるためです。
※日本語のドキュメントにはまだ反映されていない様ですが、英語版ドキュメントでは、たしかに必須項目から消えていることが確認できました。
…なるほど。そういうことだったんですね。納得しました。
構造化データマークアップを記述する位置
このセクションは、構造化関連の記事では毎回書いていますが、割と重要な点でもあるので
今回も書いておきます。
「ページ内の、どこに構造化データを書いたらいいの?」という疑問についてになります。
この、構造化データマークアップの記述位置についてですが、
Google公式の例を見ると、headタグ内に記述されている例をよく見かけます。
ただし、head内でなくても、動作自体はしてくれるようです。
WordPressなどのCMSで、構造化マークアップ用のテンプレートを用いて、
bodyタグの終了直前にまとめてscriptを読み込むような場合でも、公式の検証ツールで正しく検出されます。
この記述位置に関する疑問に関しては、Googleが見解を以下の動画で配信してくれています。
JSON-LD Structured Data: Where to Insert in a Page?
↑上記動画の0:51あたりから「答えは “Yes”」「ページのheadや、body内に入れることができるよ」
くらいのニュアンスの回答を言ってくれているようですね。
リッチリザルトの、Google公式の検証ツールなど
こちらも、以前から書いている構造化データマークアップについてのシリーズ記事と同様のご紹介になりますが、
構造化マークアップが正しく記述できているかどうかを検証する際は、このGoogle公式のツールが便利です。
この記事のまとめ
今回は、
JSON-LD形式で、お店やサービスの情報を構造化データマークアップすることにより、
検索エンジンにそれを明示して伝える方法について、ご紹介しました。
今回の "@type": "LocalBusiness"
の他にも、
ユーザーにより優れた検索体験をしてもらうための
さまざまなリッチリザルトが公式に存在しており、
日々、Google検索の結果に反映されています。
今後も、おもしろそうなリッチリザルト機能をみつけたら、
また構造化についての記事を書いていきます。
※この記事は随時、品質の向上を目的として内容の修正、更新を行う可能性があります。