Rich Resultsを表示させる方法|構造化データの実装・確認・改善手順
Google検索で自社ページを目立たせたい場合、タイトルや説明文だけを調整するのではなく、検索エンジンがページの内容を正確に理解できる状態を作ることが重要です。その手段の一つが構造化データであり、適切に実装されたページは、価格、在庫状況、評価、開催日時、画像、パンくずリストなどを含むRich Resultsとして表示される可能性があります。
ただし、構造化データを追加すれば必ずRich Resultsが表示されるわけではありません。Google公式ガイドでも、構造化データはRich Resultsの表示資格を得るための情報であり、正しく実装されていても、検索語句、端末、地域、ページ品質、検索結果全体の構成などによって通常の検索結果が選ばれる場合があると説明されています。
本記事では、Rich Resultsの仕組みから、構造化データの種類、記述形式、具体的なコード、公開前の検証、Search Consoleでの確認、表示されない場合の修正方法までを順番に解説します。単にコードを貼るだけではなく、ページ上の情報と構造化データを一致させ、継続的に運用するための実務的な方法を確認していきましょう。
1. Rich Resultsとは
Rich Resultsとは、Google検索結果において、通常のタイトルリンクや説明文に加え、画像、評価、価格、在庫、日付、開催場所などの補足情報が表示される検索結果です。検索利用者がページを開く前に内容を把握しやすくなるため、検索結果上での視認性や情報伝達力を高められます。
1.1 Rich Resultsの表示内容
Rich Resultsには、商品価格、星評価、イベント日時、レシピの調理時間、記事画像など、ページの種類に応じた情報が表示されます。すべてのページに同じ装飾が付くわけではなく、Googleが対応している構造化データの種類と、実際のページ内容によって表示候補が変わります。
たとえば、商品販売ページには価格や在庫状況、イベントページには開始日時や開催場所、記事ページには記事名、公開日、著者、画像などを記述できます。Googleは構造化データを利用してページの内容を理解し、検索利用者に役立つと判断した場合に、通常より情報量の多い検索結果を表示します。
1.2 構造化データとの関係
構造化データとは、ページ内の情報が何を意味しているかを、検索エンジンが処理しやすい形式で伝える記述です。画面に「4,980円」と表示されているだけでは、その数字が価格なのか、商品番号なのか、閲覧数なのかを機械が完全に判断できないことがあります。
構造化データで商品名、価格、通貨、在庫状況を個別に指定すると、Googleはそれぞれの意味を明確に把握できます。Googleは構造化データの語彙として主にSchema.orgを利用していますが、Google検索での表示条件については、Schema.orgだけでなくGoogle検索セントラルの各機能ガイドを優先して確認する必要があります。
1.3 表示資格と表示保証の違い
正しい構造化データを追加し、Rich Results Testで有効と判定されても、検索結果への表示が保証されるわけではありません。テストに合格することは、対象ページが技術上の表示資格を満たしている可能性を示すものであり、実際の検索結果への採用を確約するものではないからです。
Googleは検索履歴、所在地、端末、検索語句、ページとの関連性などを考慮して、検索利用者に適した表示方法を選択します。そのため、同じページであっても、ある検索語句ではRich Resultsが表示され、別の検索語句では通常のテキスト結果になることがあります。
1.4 検索順位への影響
構造化データを追加したことだけを理由に、検索順位が直接上昇するわけではありません。構造化データはページ内容をGoogleへ伝える補助情報であり、検索順位を操作するための記述ではありません。
一方で、検索結果に価格や画像、評価などが表示されれば、利用者がページ内容を理解しやすくなり、クリックされる可能性が変化することはあります。したがって、構造化データは順位を直接上げる施策としてではなく、検索結果上の情報を正確かつ魅力的に伝える施策として扱うべきです。
1.5 2026年時点の対応状況
Googleが対応するRich Resultsの種類は固定ではなく、追加、変更、終了が行われます。2025年には、書籍操作、詳細な講座情報、事実確認、推定給与、学習動画、特別告知、車両情報など、一部の構造化データ表示が段階的に終了しました。
2026年に実装する場合は、古いSEO記事や過去の設定例だけを参考にせず、Google検索セントラルの検索ギャラリーに現在掲載されている種類を確認してください。検索ギャラリーには、記事、パンくずリスト、商品、イベント、求人、地域事業者、レシピ、動画、プロフィールページなど、現在サポートされる主な機能が掲載されています。
2. Rich Resultsが表示されるまでの流れ
Rich Resultsは、構造化データを設置した直後に自動表示されるものではありません。ページ内容の作成、構造化データの実装、Googleによるクロール、インデックスへの反映、表示方式の選択という複数の段階を経て検索結果に反映されます。
2.1 ページ上の情報を完成させる
最初に行うべきことは、検索利用者が閲覧するHTML本文を完成させることです。商品名、価格、開催日時、著者名などを構造化データだけに記述し、画面上には表示しない実装は、Googleの品質ガイドラインに反する可能性があります。
構造化データは、存在しない情報を追加するための場所ではありません。ページ上に掲載されている情報を機械が理解できる形式で表現するものなので、本文、見出し、商品情報欄、店舗情報欄などに必要な情報を掲載してから記述を作成します。
2.2 ページに合う種類を選ぶ
次に、ページの主要な目的に合う構造化データを選びます。記事ページには記事情報、商品ページには商品情報、イベント詳細ページにはイベント情報というように、ページの中心的な内容と種類を一致させる必要があります。
料理とは関係のないページをレシピとして記述したり、通常の記事を商品ページとして記述したりすると、ページ内容と構造化データが一致しません。Googleは、ページの中心的な内容を正しく表現していない構造化データをRich Resultsの対象から除外することがあります。
2.3 構造化データを記述する
ページの種類を決めたら、Googleが指定する必須項目と推奨項目を確認し、構造化データを記述します。Googleは、可能であればJSON-LD形式を使用することを推奨しています。
必須項目が不足すると、Rich Results Testで重大なエラーが表示され、表示資格を得られないことがあります。推奨項目は不足しても有効になる場合がありますが、情報量が少なくなり、表示候補や表示品質に影響する可能性があるため、ページ上に存在する情報はできるだけ記述します。
2.4 クロールとインデックスを待つ
構造化データを公開した後、Googlebotがページをクロールし、変更後の内容を認識する必要があります。テストツールで有効と表示されても、検索インデックスが古いページ内容を保持している間は、検索結果に変更が反映されません。
重要なページを更新した場合は、Search ConsoleのURL検査を使い、公開済みURLをGoogleが取得できるか確認します。問題がなければインデックス登録をリクエストできますが、再クロールや再処理には数日以上かかる場合があります。
2.5 Googleが表示方式を選択する
クロールとインデックス処理が完了した後、Googleは検索語句ごとに表示方式を判断します。構造化データが有効でも、通常のテキスト結果のほうが検索利用者に適していると判断されれば、Rich Resultsは表示されません。
検索結果の外観は、パソコンとスマートフォン、地域、言語、検索語句などによって変化します。特定の端末だけで確認して「表示されていない」と判断するのではなく、Search Consoleの検索での見え方や表示回数も確認しながら判断する必要があります。
3. Rich Resultsと似た検索表示の違い
Google検索には、Rich Results以外にも強調スニペット、ナレッジパネル、サイトリンクなどの表示があります。見た目が通常の検索結果と異なるため混同されやすいものの、生成方法や管理方法は同じではありません。
3.1 Rich Resultsとリッチスニペットの違い
リッチスニペットは、以前から星評価、価格、調理時間などが付いた検索結果を表す言葉として広く使われてきました。現在のGoogle公式資料では、より幅広い検索体験を含む名称としてRich Resultsが使用されています。
両者は実務上ほぼ同じ意味で使われる場合もありますが、Rich Resultsには視覚的な補足情報だけでなく、カルーセルや操作可能な検索体験も含まれます。SEO記事を作成する場合は、主要名称としてRich Resultsまたはリッチリザルトを使用するほうが、現在のGoogle公式表現に近くなります。
| 比較項目 | Rich Results | リッチスニペット |
|---|---|---|
| 現在の公式表現 | 主に使用される | 以前から使われる表現 |
| 対象範囲 | 補足情報や操作型表示を含む | 主に説明文周辺の補足情報 |
| 実務での扱い | 現在の総称として使う | 旧称または慣用表現として使う |
| 主な実現方法 | 対応する構造化データ | 対応する構造化データ |
3.2 Rich Resultsと強調スニペットの違い
強調スニペットは、検索語句への回答として、ページ本文の一部が検索結果上部などに抜き出される表示です。文章、一覧、手順、表などが選ばれる場合がありますが、専用の構造化データを追加して表示を申請する仕組みではありません。
Rich Resultsは構造化データが重要な要素になるのに対し、強調スニペットでは本文の分かりやすさや検索意図との一致が重要です。構造化データを追加したからといって、強調スニペットに選ばれるわけではありません。
| 比較項目 | Rich Results | 強調スニペット |
|---|---|---|
| 主な情報源 | 構造化データとページ内容 | ページ本文 |
| 専用記述 | 対応種類ごとに存在する | 専用記述はない |
| 主な表示 | 価格、評価、画像、日時など | 質問への回答文、一覧、手順など |
| 管理方法 | コードとページ情報を管理する | 本文構成と回答品質を改善する |
3.3 Rich Resultsとナレッジパネルの違い
ナレッジパネルは、人物、企業、店舗、場所、作品などの情報をまとめて表示する領域です。Googleが複数の情報源やナレッジグラフを利用して生成するため、サイト運営者が一つの構造化データを追加するだけで表示を自由に制御できるものではありません。
OrganizationやLocalBusinessの構造化データは、Googleが組織や店舗情報を理解する手掛かりになります。ただし、ナレッジパネルの表示内容は、自社ページの構造化データだけではなく、Googleビジネスプロフィールや外部の信頼できる情報なども含めて判断されます。
| 比較項目 | Rich Results | ナレッジパネル |
|---|---|---|
| 表示位置 | 通常の検索結果内や専用領域 | 検索結果の目立つ情報領域 |
| 主な対象 | 個別ページ | 人物、企業、店舗、場所など |
| 情報源 | ページと構造化データ | 複数の公開情報や登録情報 |
| 運営者の制御 | 記述内容を管理しやすい | 完全には制御できない |
3.4 Rich Resultsとサイトリンクの違い
サイトリンクは、主要な検索結果の下に、同一サイト内の関連ページが複数表示される仕組みです。会社名やサービス名など、特定サイトを探す意図が強い検索で表示されることがあります。
パンくずリストや内部リンク、分かりやすいページ名、適切なサイト構造はGoogleの理解を助けますが、サイトリンク専用の構造化データを追加して表示を指定することはできません。Rich Resultsと同様に検索結果を目立たせますが、生成の仕組みは異なります。
| 比較項目 | Rich Results | サイトリンク |
|---|---|---|
| 主な目的 | ページ内容の補足 | サイト内の主要ページへの案内 |
| 表示単位 | 個別ページの情報 | 同一サイト内の複数ページ |
| 専用構造化データ | 対応種類ごとに存在する | 表示指定用の記述はない |
| 主な改善方法 | 正確な構造化データ | サイト構造、内部リンク、ページ名 |
3.5 Rich Resultsと通常のテキスト結果の違い
通常のテキスト結果は、サイト名、URL、タイトルリンク、説明文などを中心に構成されます。構造化データがないページでも、クロールとインデックスが可能で、検索語句との関連性があれば表示されます。
Rich Resultsは通常のテキスト結果を完全に置き換えるものではなく、検索結果に追加情報が付く表示と考えると分かりやすいでしょう。Googleは同じページについて、検索状況に応じて通常表示と情報量の多い表示を使い分けます。
| 比較項目 | Rich Results | 通常のテキスト結果 |
|---|---|---|
| 表示情報 | 価格、評価、画像、日時などを含む場合がある | タイトルと説明文が中心 |
| 構造化データ | 重要な表示条件になる | 必須ではない |
| 視認性 | 情報量が増える可能性がある | 標準的な表示 |
| 表示保証 | ない | インデックスされても表示保証はない |
4. 構造化データの記述形式を選ぶ方法
Googleが対応する構造化データの記述形式には、JSON-LD、Microdata、RDFaがあります。どの形式でも正しく記述できれば処理されますが、保守性や実装方法に違いがあります。Googleは、サイトの仕組み上問題がなければJSON-LDを推奨しています。
4.1 JSON-LDを使用する
JSON-LDは、HTML本文とは分けて、script要素の中に構造化データをまとめる方法です。既存の画面表示用HTMLを大きく変更せずに追加できるため、デザインや文章の修正による影響を受けにくい特徴があります。
WordPress、商品管理システム、独自のテンプレートなどから動的に出力しやすく、大量ページにも適用しやすい形式です。ただし、本文とは別の場所に記述されるため、商品価格や在庫を更新した際に構造化データだけが古いまま残らないよう、同じデータベースから生成する必要があります。
コード例:最小構成のJSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "構造化データの実装方法",
"url": "https://example.com/structured-data/"
}
</script>
4.2 Microdataを使用する
Microdataは、画面に表示するHTML要素へ属性を追加し、その要素が何を表しているかを指定する方法です。表示内容と構造化データが同じHTML内にあるため、情報の対応関係を確認しやすい場合があります。
一方で、商品情報や記事情報が複雑になるほど属性が増え、HTMLが読みにくくなります。デザイン変更によって要素を移動または削除した際に、構造化データの属性まで失われる可能性があるため、開発と運用の体制を考えて採用してください。
コード例:商品名をMicrodataで示す
<div itemscope itemtype="https://schema.org/Product">
<h1 itemprop="name">軽量ビジネスバッグ</h1>
<img
itemprop="image"
src="https://example.com/images/bag.jpg"
alt="軽量ビジネスバッグ"
>
</div>
4.3 RDFaを使用する
RDFaは、HTML要素に属性を追加して情報の意味や関係を表現する方法です。既存のHTMLに組み込める点はMicrodataと似ていますが、関連情報や語彙を柔軟に表現できる特徴があります。
Google検索だけを目的とする一般的なサイトでは、保守しやすいJSON-LDが選ばれることが多いでしょう。すでにRDFaを利用しているシステムや、複数のデータ利用先を想定した設計では、既存形式を維持する選択肢もあります。
コード例:組織名をRDFaで示す
<div vocab="https://schema.org/" typeof="Organization">
<span property="name">株式会社サンプル</span>
<a property="url" href="https://example.com/">公式サイト</a>
</div>
4.4 複数形式の重複を避ける
一つのページに複数形式を記述すること自体が直ちに問題になるわけではありませんが、同じ対象を異なる値で重複記述すると、検索エンジンがどの情報を採用すべきか判断しにくくなります。たとえば、JSON-LDでは4,980円、HTML内のMicrodataでは5,980円となっている状態は避けるべきです。
プラグインとテーマの両方が構造化データを出力する環境では、意図せず同じ商品、記事、パンくずリストが二重に生成されることがあります。ソースコードと検証結果を確認し、どの機能が各記述を生成しているかを把握してください。
| 判断項目 | スクリプト記述型 | 要素埋め込み型 | 属性拡張型 |
|---|---|---|---|
| 本文との分離 | しやすい | しにくい | しにくい |
| 保守のしやすさ | 比較的高い | 複雑になりやすい | 設計知識が必要 |
| 大量ページへの適用 | 行いやすい | テンプレート依存 | テンプレート依存 |
| Googleの推奨 | 推奨されている | 対応している | 対応している |
4.5 記述場所と文字の扱いを確認する
JSON-LDは通常、HTMLのheadまたはbody内に配置します。構造化データがページの内容を説明しており、Googlebotが取得できる状態であれば処理対象になります。
動的に文字列を出力する場合は、商品名や記事名に含まれる引用符、改行、制御文字などを適切に処理しなければなりません。文字列を単純連結してJSONを作るのではなく、利用している言語のJSON変換機能を使い、正しい構文を生成してください。
コード例:PHPで安全に出力する
<?php$data = [ '@context' => 'https://schema.org', '@type' => 'Article', 'headline' => $articleTitle, 'datePublished' => $publishedAt,];
echo '<script type="application/ld+json">';echo json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP);echo '</script>';?>
5. ページに合う構造化データを選定する
構造化データは、実装できる種類をすべて追加すればよいわけではありません。ページの中心的な内容に合うものを選び、画面上に存在する事実だけを記述する必要があります。
5.1 記事ページにはArticleを使う
ニュース、ブログ、解説記事、スポーツ記事などには、Article、NewsArticle、BlogPostingなどを利用できます。記事名、著者、公開日、更新日、代表画像などを伝えることで、Googleが記事情報をより正確に理解できるようになります。
GoogleのArticleガイドでは、固定された必須項目は設定されていませんが、ページに該当する推奨項目をできる限り追加するよう案内されています。記述項目を減らすのではなく、実際に表示されている著者や日付、画像を正確に追加することが重要です。
5.2 商品ページにはProductを使う
商品ページではProductを使用し、商品名、画像、価格、通貨、在庫状況、評価などを記述できます。販売ページか、商品を紹介・評価するページかによって、求められる情報が異なります。
Googleでは、直接購入できない商品紹介向けの表示と、購入可能な販売ページ向けの表示が区別されています。販売ページでは、価格や在庫だけでなく、配送、返品、商品識別情報、種類違いなども含め、実際の販売情報を詳しく提供できます。
5.3 階層を示すページにはBreadcrumbListを使う
パンくずリストは、現在のページがサイト内のどこに位置しているかを示します。カテゴリーや下位カテゴリーを持つサイトでは、検索利用者と検索エンジンの両方がページ階層を理解しやすくなります。
構造化データだけを追加するのではなく、可能であれば画面上にもパンくずリストを表示してください。ページ上の階層と構造化データ内の階層が異なると、利用者と検索エンジンに異なる情報を伝えることになります。
5.4 店舗やイベントには専用種類を使う
店舗、病院、飲食店、美容室などの所在地や営業時間を掲載するページには、LocalBusinessまたは適切な下位種類を利用します。イベント詳細ページにはEventを利用し、開催日時、会場、チケット情報などを記述します。
一つのページに複数店舗や複数イベントを掲載する一覧ページでは、個別詳細ページと同じ考え方で記述できるとは限りません。Googleの各機能ガイドを確認し、詳細ページのURL、開催場所、販売ページなどを正しく指定してください。
5.5 制限または終了した種類を確認する
過去の記事では、FAQPageやHowToを追加することで検索結果が大きく展開されると紹介されていることがあります。しかし、FAQのRich Resultsは、現在では主に信頼性の高い政府機関や医療関連サイトに限定されています。一般企業サイトが記述しても、通常は検索結果に表示されません。
また、2025年にサポートが終了した種類もあります。構造化データ自体をSchema.orgの用途として残せる場合はありますが、Google検索での視覚的な表示を目的に実装する場合は、現在の検索ギャラリーに掲載されているかを確認してください。
6. 記事ページでRich Resultsを目指す方法
記事ページでは、本文の品質に加え、記事名、著者、日付、画像などの情報を一貫して提示することが重要です。構造化データだけを正しくしても、ページ上の日付や著者情報が曖昧であれば、Googleが内容を判断しにくくなります。
6.1 記事情報をページ上に表示する
記事タイトル、著者名、公開日、更新日などは、構造化データだけではなく、読者が確認できる場所にも表示します。著者ページがある場合は、著者名からプロフィールページへリンクし、執筆者の専門性や所属を確認できるようにします。
公開日と更新日を表示する場合は、それぞれの意味が分かる表記にしてください。内容を変更していないにもかかわらず更新日だけを毎日変更するような処理は、読者に誤解を与えるため避けるべきです。
6.2 Articleの種類を使い分ける
一般的な解説記事ではArticleまたはBlogPosting、報道記事ではNewsArticleなど、内容に近い種類を選択します。種類の名称だけで検索順位が変わるわけではありませんが、ページの性質を正しく示すことが大切です。
企業のサービスページをBlogPostingとして記述したり、商品カテゴリーをNewsArticleとして記述したりする必要はありません。ページの中心が読み物であるか、商品購入であるか、企業情報であるかを確認して選択します。
6.3 代表画像を適切に設定する
記事の代表画像には、記事内容と直接関係する画像を使用します。構造化データで指定した画像URLは、Googlebotがアクセスでき、インデックス可能な状態でなければなりません。
画像を会員専用領域に置いたり、画像取得をrobots.txtで禁止したりすると、検索結果で利用できません。複数の縦横比の画像を用意できる場合は、正方形、横長などの候補を配列で指定すると、検索表示面に応じて利用しやすくなります。
6.4 公開日と更新日を正確にする
datePublishedには初回公開日時、dateModifiedには最後に実質的な内容を更新した日時を設定します。日時は国際標準形式で記述し、日本時間の場合は+09:00などの時間帯情報も含めます。
HTML本文、サイトマップ、構造化データ、管理画面などで異なる日付が出力されると、Googleがどの日時を採用すべきか判断しにくくなります。記事テンプレート全体で同じ公開情報を参照する設計が必要です。
6.5 Articleのコードを追加する
ArticleのJSON-LDは、記事ページごとにタイトル、URL、画像、日付、著者を動的に出力します。複数記事に同じ固定タイトルや同じ公開日を出力しないよう、テンプレート変数を確認してください。
コード例:記事ページ
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://example.com/seo/rich-results/" }, "headline": "Rich Resultsを表示させる方法", "description": "構造化データの実装方法と確認手順を解説します。", "image": [ "https://example.com/images/rich-results-1x1.jpg", "https://example.com/images/rich-results-4x3.jpg", "https://example.com/images/rich-results-16x9.jpg" ], "datePublished": "2026-07-10T09:00:00+09:00", "dateModified": "2026-07-17T14:30:00+09:00", "author": { "@type": "Person", "name": "山田 太郎", "url": "https://example.com/authors/taro-yamada/" }, "publisher": { "@type": "Organization", "name": "株式会社サンプル", "logo": { "@type": "ImageObject", "url": "https://example.com/images/logo.png" } }}</script>
コードを追加した後は、Rich Results Testで検証し、実際のページに表示される記事名、日付、著者、画像と一致しているかを確認します。テスト結果にエラーがなくても、存在しない著者や不正確な更新日を記述すれば品質上の問題になるため、構文と内容の両方を確認してください。
7. 商品ページでRich Resultsを目指す方法
商品ページでは、検索結果に価格、在庫状況、評価、配送情報などが表示される可能性があります。購入判断に直結する情報であるため、古い価格や誤った在庫状況を配信しない仕組みが特に重要です。
7.1 販売ページと商品紹介ページを区別する
自社サイトで直接購入できるページと、商品を比較・評価するだけのページでは、適切な記述内容が異なります。販売ページでは購入可能な価格、在庫、販売URLなどを明確にします。
商品レビュー記事では、実際に販売していないにもかかわらず自社販売価格として記述しないよう注意します。Googleは商品スニペット向けと販売者向けの情報を区別しているため、ページの役割に合う仕様を確認してください。
7.2 価格と通貨を一致させる
構造化データ内の価格は、ページ上に表示されている購入価格と一致させます。税込価格を表示しているページで税抜価格を記述したり、期間限定価格が終了した後も古い値を残したりしないようにします。
通貨には日本円を示す値を指定し、価格には通貨記号を含めず数値を記述します。複数通貨に対応するサイトでは、URLごとに表示通貨と構造化データを一致させる必要があります。
7.3 在庫状況を自動更新する
在庫状況は、商品データベースまたは販売管理システムと連動させて出力します。売り切れ商品を在庫ありとして記述すると、検索利用者がサイトを訪問した後に購入できず、信頼性を損ないます。
予約受付中、取り寄せ、販売終了など、実際の状態に近い値を選択してください。商品ページを削除する必要がない場合は、販売終了を明記し、関連商品への案内を用意する方法もあります。
7.4 評価とレビューを正しく扱う
星評価を表示させるために、実在しない評価や運営者が作成した高評価を記述してはいけません。評価値、評価件数、レビュー内容は、ページ上で利用者が確認できる実際の情報と一致させます。
第三者の商品を評価する編集記事と、自社商品ページの購入者レビューでは、利用できる記述方法が異なる場合があります。評価を追加する前に、Googleのレビュースニペットと商品向けガイドを確認してください。
7.5 Productのコードを追加する
商品ページではProductの中にOfferを含め、商品名、画像、説明、商品番号、ブランド、価格、通貨、在庫、販売URLなどを記述します。商品ごとに異なる情報をテンプレートから出力してください。
コード例:販売商品ページ
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Product", "name": "軽量ビジネスバッグ", "image": [ "https://example.com/images/business-bag-front.jpg", "https://example.com/images/business-bag-side.jpg" ], "description": "重さ650グラムの撥水ビジネスバッグです。", "sku": "BAG-2026-001", "brand": { "@type": "Brand", "name": "サンプルバッグ" }, "offers": { "@type": "Offer", "url": "https://example.com/products/business-bag/", "priceCurrency": "JPY", "price": "4980", "priceValidUntil": "2026-12-31", "availability": "https://schema.org/InStock", "itemCondition": "https://schema.org/NewCondition" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "128" }}</script>
この例の評価情報は、実際のページに128件の評価と平均4.6が表示されている場合に限って使用できます。レビュー機能がないサイトでは評価部分を削除し、存在する情報だけで構造化データを作成してください。
8. サイト情報とパンくずリストを伝える方法
個別ページの種類だけでなく、運営組織、サイト名、ロゴ、ページ階層などを構造化して伝えることも重要です。これらは商品価格のように毎回目立って表示されるとは限りませんが、Googleがサイト全体を理解する手掛かりになります。
8.1 Organizationで運営組織を示す
企業や団体の公式サイトでは、トップページなどにOrganizationを追加し、正式名称、公式URL、ロゴ、問い合わせ先、公式アカウントなどを記述できます。複数の名称や略称がある場合でも、ページ上の正式表記と合わせます。
架空の所在地、関係のない公式アカウント、第三者のロゴなどを記述してはいけません。組織情報はサイト上の会社概要や問い合わせ情報と一致させ、変更時には両方を更新します。
8.2 WebSiteでサイト名を示す
WebSiteは、サイト全体の名称やURLなどを示すために利用できます。検索結果のサイト名は構造化データだけで確定するものではありませんが、Googleがサイトを認識するための情報として役立ちます。
会社名とサービス名が異なる場合は、検索結果でどの名称をサイト名として扱いたいかを決め、ロゴ、タイトル、ヘッダー表記などと一貫させてください。ページごとに異なるサイト名を出力すると、ブランドの識別が不安定になります。
8.3 BreadcrumbListで階層を示す
BreadcrumbListでは、トップページ、カテゴリー、現在のページという順序を指定します。各階層に連続した位置番号を付け、それぞれの名称とURLを記述します。
検索結果では、長いURLの代わりにパンくず形式の階層が表示される場合があります。画面上のパンくず、内部リンク、正規URL、構造化データの階層をそろえることで、サイト構造を明確に伝えられます。
8.4 正規URLと識別子を統一する
同じ組織やページを複数の構造化データから参照する場合は、@idを使って同一対象であることを示せます。たとえば、記事の発行者とサイト運営組織に同じ識別子を指定すれば、別の組織として分断されにくくなります。
URLには、計測用の不要なパラメーターや一時的な確認URLではなく、公開中の正規URLを使用します。HTTPSとHTTP、末尾のスラッシュの有無なども、サイトの正規化方針に合わせてください。
8.5 複数の情報を一つのグラフにまとめる
JSON-LDの@graphを利用すると、WebSite、Organization、BreadcrumbListなどの複数対象を一つのスクリプト内に記述できます。関連する対象を識別子で接続できるため、テンプレート管理がしやすくなります。
コード例:組織・サイト・パンくずリスト
<script type="application/ld+json">{ "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://example.com/#organization", "name": "株式会社サンプル", "url": "https://example.com/", "logo": { "@type": "ImageObject", "url": "https://example.com/images/logo.png" } }, { "@type": "WebSite", "@id": "https://example.com/#website", "url": "https://example.com/", "name": "サンプルSEO研究所", "publisher": { "@id": "https://example.com/#organization" } }, { "@type": "BreadcrumbList", "@id": "https://example.com/seo/rich-results/#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "ホーム", "item": "https://example.com/" }, { "@type": "ListItem", "position": 2, "name": "SEO", "item": "https://example.com/seo/" }, { "@type": "ListItem", "position": 3, "name": "Rich Resultsを表示させる方法", "item": "https://example.com/seo/rich-results/" } ] } ]}</script>
一つのスクリプトにまとめる場合でも、ページと無関係な対象を大量に入れないようにします。サイト全体の共通情報とページ固有情報を区別し、各ページに必要な内容だけを出力してください。
9. 店舗・イベント・レシピ・動画を実装する方法
店舗やイベントなどの情報は、名称だけでなく、住所、日時、営業時間、画像などの詳細が重要です。これらの情報は変更されやすいため、公開後の更新体制まで含めて設計する必要があります。
9.1 店舗ページにLocalBusinessを追加する
LocalBusinessでは、店舗名、住所、電話番号、営業時間、緯度経度、価格帯などを記述できます。飲食店であればRestaurant、美容室であればHairSalonなど、ページ内容に合うより具体的な種類を選びます。
コード例:店舗ページ
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Restaurant", "name": "サンプル食堂 渋谷店", "image": "https://example.com/images/shibuya-store.jpg", "url": "https://example.com/stores/shibuya/", "telephone": "+81-3-1234-5678", "priceRange": "1000円〜3000円", "address": { "@type": "PostalAddress", "postalCode": "150-0002", "addressRegion": "東京都", "addressLocality": "渋谷区", "streetAddress": "渋谷1-2-3", "addressCountry": "JP" }, "geo": { "@type": "GeoCoordinates", "latitude": 35.6595, "longitude": 139.7005 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "11:00", "closes": "22:00" } ]}</script>
店舗情報はGoogleビジネスプロフィール、公式サイト、予約ページなどで統一してください。移転、休業、営業時間変更が発生した場合は、一部の情報源だけを更新するのではなく、利用者が確認するすべての情報を更新します。
9.2 イベントページにEventを追加する
Eventでは、イベント名、開始日時、終了日時、開催場所、出演者、チケット価格、販売URLなどを記述できます。各イベントに固有の詳細URLを用意し、そのページ上に同じ情報を掲載します。
コード例:会場開催イベント
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Event", "name": "SEO実践セミナー2026", "startDate": "2026-09-20T13:00:00+09:00", "endDate": "2026-09-20T16:30:00+09:00", "eventStatus": "https://schema.org/EventScheduled", "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode", "location": { "@type": "Place", "name": "サンプルホール", "address": { "@type": "PostalAddress", "streetAddress": "丸の内1-1-1", "addressLocality": "千代田区", "addressRegion": "東京都", "postalCode": "100-0005", "addressCountry": "JP" } }, "image": [ "https://example.com/images/seo-seminar-2026.jpg" ], "description": "構造化データと検索表示の改善方法を解説するセミナーです。", "offers": { "@type": "Offer", "url": "https://example.com/events/seo-seminar-2026/tickets/", "price": "5000", "priceCurrency": "JPY", "availability": "https://schema.org/InStock", "validFrom": "2026-07-20T10:00:00+09:00" }, "organizer": { "@type": "Organization", "name": "株式会社サンプル", "url": "https://example.com/" }}</script>
延期、中止、オンライン開催への変更が発生した場合は、古いイベントを削除して新規作成するだけでなく、状態や日時を正しく更新します。会場名とイベント名を混同せず、場所には実在する会場情報を記述してください。
9.3 レシピページにRecipeを追加する
Recipeでは、料理名、画像、材料、調理時間、手順、栄養情報、評価などを記述できます。一般的な読み物記事にRecipeを付けるのではなく、実際に料理を作るための材料と手順が掲載されているページに使用します。
コード例:レシピページ
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Recipe", "name": "簡単トマトパスタ", "image": [ "https://example.com/images/tomato-pasta.jpg" ], "author": { "@type": "Person", "name": "佐藤 花子" }, "datePublished": "2026-06-15", "description": "20分で作れるトマトパスタです。", "prepTime": "PT5M", "cookTime": "PT15M", "totalTime": "PT20M", "recipeYield": "2人分", "recipeIngredient": [ "パスタ 200グラム", "トマト缶 1缶", "にんにく 1片", "オリーブオイル 大さじ2" ], "recipeInstructions": [ { "@type": "HowToStep", "name": "パスタをゆでる", "text": "鍋に湯を沸かし、パスタを表示時間どおりにゆでます。" }, { "@type": "HowToStep", "name": "ソースを作る", "text": "にんにくを炒め、トマト缶を加えて煮込みます。" }, { "@type": "HowToStep", "name": "混ぜ合わせる", "text": "ゆでたパスタをソースと混ぜ合わせます。" } ]}</script>
材料や手順を構造化データ内にだけ記述せず、読者がページ上で同じ内容を確認できるようにします。調理時間や人数を誇張せず、実際のレシピ内容に合わせて設定してください。
9.4 動画ページにVideoObjectを追加する
VideoObjectでは、動画名、説明、サムネイル、公開日時、動画ファイル、埋め込み先、再生時間などを記述できます。動画がページの主要内容であり、Googlebotがサムネイルや動画情報へアクセスできることが重要です。
コード例:動画解説ページ
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "VideoObject", "name": "Rich Results Testの使い方", "description": "構造化データを検証する手順を動画で解説します。", "thumbnailUrl": [ "https://example.com/video/rich-results-test-thumbnail.jpg" ], "uploadDate": "2026-07-10T09:00:00+09:00", "duration": "PT8M35S", "contentUrl": "https://example.com/video/rich-results-test.mp4", "embedUrl": "https://example.com/video/player/rich-results-test/", "publisher": { "@type": "Organization", "name": "株式会社サンプル" }}</script>
動画が削除済みで再生できない状態や、サムネイルが取得できない状態では、検索結果に利用されにくくなります。公開後も再生URL、埋め込みURL、サムネイル、公開状態を定期的に確認してください。
9.5 複数種類を必要に応じて組み合わせる
レシピ記事に動画が掲載されている場合は、RecipeとVideoObjectを関連付けられます。記事ページにパンくずリストや組織情報を追加することも可能です。
ただし、種類を増やすこと自体を目的にしてはいけません。ページ上で確認できる情報だけを記述し、それぞれの対象が同じページ内でどのように関連しているかを明確にします。Googleは一つのページ内に複数対象が存在する場合の記述を認めていますが、すべての対象がページ内容を正確に表している必要があります。
10. WordPressや各種管理システムで実装する方法
管理システムを利用しているサイトでは、すべてのページに手作業でコードを貼るより、テンプレートや拡張機能から自動生成するほうが効率的です。ただし、自動生成された内容が正しいとは限らないため、出力結果を確認する必要があります。
10.1 WordPressの拡張機能を利用する
WordPressでは、SEO向けの拡張機能や構造化データ専用の拡張機能から、記事、パンくずリスト、商品、組織などを出力できます。管理画面から設定できるため、コードを直接編集しなくても実装しやすい方法です。
一方で、テーマと複数の拡張機能が同時にArticleやBreadcrumbListを出力し、重複することがあります。導入後はページソースとRich Results Testを確認し、同じ対象が不自然に複数生成されていないかを調べてください。
10.2 テーマ内のテンプレートから生成する
独自テーマを利用している場合は、記事テンプレートや商品テンプレートにJSON-LD生成処理を追加できます。投稿タイトル、公開日、画像、著者などを管理画面の情報から取得することで、ページごとに自動出力できます。
テーマを更新または変更すると、構造化データの処理が失われる可能性があります。子テーマや独自機能として分離するほか、変更履歴とテスト手順を残し、更新後に必ず確認してください。
10.3 通販管理システムの自動出力を確認する
通販管理システムでは、商品名、価格、在庫、ブランドなどからProductが自動生成される場合があります。追加作業なしで利用できることもありますが、すべての推奨項目が出力されるとは限りません。
商品種類違い、セール価格、在庫切れ、予約販売など、通常商品とは異なる状態を重点的に確認します。管理画面の値がページ表示と構造化データの両方に反映されるか、実際の商品URLを使ってテストしてください。
10.4 ヘッドレス型の管理システムで生成する
表示部分と管理画面が分離された構成では、画面を生成するアプリケーション側で構造化データを組み立てます。記事情報や商品情報を取得し、サーバー側でHTMLへ埋め込む方法が安定しやすいでしょう。
ブラウザ側でのみ構造化データを生成する場合は、Googleが描画後のコードを取得できるか確認する必要があります。初期HTML、描画後HTML、URL検査でGoogleが確認したHTMLを比較してください。
10.5 ページ単位の例外設定を用意する
自動生成では、多数のページへ同じ仕組みを適用できますが、一部のページに必要情報が不足することがあります。著者が存在しない記事、価格が未定の商品、会場が決まっていないイベントなどを無理に出力すると、不正確な記述になります。
必要項目がない場合は、その項目または対象全体を出力しない条件分岐を用意してください。空文字、仮の価格、共通のダミー画像などを出力するより、正確に提供できる情報だけを記述するほうが安全です。
11. JavaScriptで構造化データを生成する方法
JavaScriptを利用して構造化データを生成することも可能です。ただし、処理の実行タイミング、外部情報の取得失敗、画面表示との不一致など、静的HTMLとは異なる問題が発生する可能性があります。
11.1 サーバー側で初期HTMLに含める
可能であれば、サーバー側または事前生成処理でJSON-LDを作り、最初に返されるHTMLへ含めます。Googlebotが追加の描画処理を待たなくても構造化データを取得できるため、動作確認がしやすくなります。
記事名や価格を画面表示と同じデータから生成すれば、内容の不一致も防ぎやすくなります。表示用と構造化データ用に別々の情報を登録する設計は、更新漏れを起こしやすいため避けます。
11.2 ブラウザ側で挿入する
ブラウザ側のJavaScriptでscript要素を作成し、構造化データを挿入することもできます。ページ表示後に取得する商品情報や利用者の選択内容を利用する場合などに使われます。
ただし、処理エラー、通信失敗、読み込み時間などによって、Googleが期待する情報を取得できない可能性があります。公開前にはコード入力だけでなく、実際の公開URLとURL検査の結果を確認してください。
11.3 タグ管理機能だけに依存しない
タグ管理機能を利用して構造化データを追加する方法もありますが、ページ固有の情報を正確に取得できる設計が必要です。すべての商品ページに同じ価格や商品名を出力する設定は利用できません。
また、同意管理、タグの発火条件、JavaScriptエラーなどによって、構造化データが実行されないことがあります。主要な構造化データは、可能であればページ生成処理に組み込み、タグ管理機能は補助的に使用するほうが管理しやすくなります。
11.4 画面表示と同じ情報源を利用する
JavaScriptで商品価格を取得する場合は、画面に表示する価格と構造化データに使う価格を同じ応答データから生成します。異なる接続先や別の更新処理を使用すると、表示価格と記述価格がずれる可能性があります。
在庫、日時、評価件数など、頻繁に変化する情報も同様です。情報を一元管理し、画面表示、構造化データ、商品情報配信などで同じ値を参照する設計にします。
11.5 JavaScriptでJSON-LDを挿入する
JavaScriptで挿入する場合は、オブジェクトを作成してからJSON.stringifyで文字列化します。手作業でJSON文字列を連結すると、引用符や改行による構文エラーが発生しやすくなります。
コード例:JavaScriptによる挿入
<script> const productData = { "@context": "https://schema.org", "@type": "Product", "name": "軽量ビジネスバッグ", "image": [ "https://example.com/images/business-bag.jpg" ], "offers": { "@type": "Offer", "url": window.location.href, "priceCurrency": "JPY", "price": "4980", "availability": "https://schema.org/InStock" } };
const structuredData = document.createElement("script"); structuredData.type = "application/ld+json"; structuredData.textContent = JSON.stringify(productData); document.head.appendChild(structuredData);</script>
挿入後は、ブラウザの開発者機能だけで確認を終えず、Schema.orgの検証ツールとGoogleのRich Results Testで確認してください。Schema.orgの検証ツールはJavaScriptで挿入された記述も抽出できますが、Google検索固有の表示資格はRich Results Testで確認します。
12. 公開前に構造化データを検証する方法
構造化データは、見た目に表示されないコードであるため、構文エラーや値の不足に気付きにくい特徴があります。公開前と公開後の両方で、目的の異なる検証手段を使い分ける必要があります。
12.1 Rich Results Testで確認する
Rich Results Testは、Google検索で対応しているRich Resultsを生成できる可能性があるかを確認する公式ツールです。公開URLのほか、作成中のコードを直接入力して検証できます。
Google向けの重大なエラー、警告、検出された対象を確認でき、機能によっては検索結果の外観も確認できます。Googleは、構造化データの検証を始める際にRich Results Testを利用するよう案内しています。
12.2 Schema.orgの検証ツールで確認する
Schema.orgの検証ツールは、Google検索で表示されるかどうかに限定せず、JSON-LD、Microdata、RDFaの構文やデータ構造を確認できます。GoogleがRich Resultsとして対応していないSchema.orgの種類も検出できます。
そのため、Rich Results Testで対象外と表示されたからといって、構文自体が間違っているとは限りません。Google固有の表示資格はRich Results Test、一般的な構造や構文はSchema.orgの検証ツールというように使い分けます。
12.3 URL検査でGoogleの取得状態を確認する
公開済みページでは、Search ConsoleのURL検査を使い、Googleがページを取得できるか確認します。robots.txt、noindex、認証画面、サーバーエラーなどでアクセスできなければ、正しい構造化データがあっても処理されません。
公開中のURL検査だけでなく、ライブテストを使って現在のページ状態を確認します。修正前のインデックス情報と、修正後の公開ページを混同しないようにしてください。
12.4 エラーと警告を区別する
重大なエラーは、必須項目の欠落や不正な値など、Rich Resultsの表示資格に影響する問題です。公開前に修正し、対象が有効と判定される状態を目指します。
警告は推奨項目の不足などで表示されることがあり、警告が残っていても有効になる場合があります。ただし、ページ上に該当情報が存在するなら、警告を放置せず追加することで、Googleへより詳しい情報を提供できます。
| 表示内容 | 意味 | 対応 |
|---|---|---|
| 重大なエラー | 表示資格を得られない可能性が高い | 公開前に修正する |
| 警告 | 推奨情報が不足している | 追加可能な情報を確認する |
| 有効 | 技術上の条件を満たしている | 内容の正確性も確認する |
| 未対応 | Google検索の対象外である可能性 | 現在の対応種類を確認する |
12.5 複数の実ページを検証する
テンプレートを一ページだけ確認して問題がなくても、すべてのページが正しいとは限りません。画像がない記事、価格未定の商品、終了済みイベントなど、異なる条件を持つページを抽出して検証します。
公開前には通常ページ、情報不足ページ、最大項目数を持つページ、特殊状態のページを確認します。公開後も定期的に複数URLを抽出し、システム変更による出力崩れがないか確認してください。
13. Search Consoleで表示状況を確認する方法
公開後の確認では、検索画面を手作業で検索するだけでは不十分です。検索結果は利用者、地域、端末などによって変わるため、Search Consoleのレポートを利用してGoogle側の認識と実績を確認します。
13.1 拡張レポートを確認する
対応する構造化データが検出されると、Search Consoleに商品、パンくずリスト、イベントなどのレポートが表示される場合があります。レポートでは、有効な対象、無効な対象、問題の種類、影響URLを確認できます。
すべての構造化データ種類に専用レポートが用意されているわけではありません。また、機能の終了に伴ってレポート自体が削除されることもあるため、現在の画面と公式案内を基準にしてください。
13.2 検索での見え方を確認する
検索パフォーマンスレポートでは、利用可能な場合、検索での見え方を絞り込み、Rich Resultsに関連するクリック数や表示回数を確認できます。通常の検索結果を含むページ全体の数値だけを見るより、表示形式ごとの変化を把握しやすくなります。
ただし、すべてのRich Resultsが独立した絞り込み項目として表示されるわけではありません。URL、検索語句、端末、国なども組み合わせ、導入前後の傾向を確認してください。
13.3 レポート反映の時間差を考慮する
構造化データを修正しても、Search Consoleのレポートが即時更新されるとは限りません。再クロール、再処理、レポート更新までに時間がかかるため、修正直後はライブテストとレポート結果が異なる場合があります。
緊急性のあるエラーは公開URLを直接テストし、現在の出力を確認します。そのうえでインデックス登録をリクエストし、数日後にレポートの変化を確認してください。
13.4 手動による対策を確認する
誤解を招く記述、偽のレビュー、ページに存在しない情報などが検出されると、構造化データに対する手動による対策が行われる場合があります。その場合、ページ自体は通常の検索結果に残っても、Rich Resultsの表示資格を失う可能性があります。
Search Consoleの手動による対策を確認し、問題があれば対象ページとテンプレートを修正します。修正後は影響範囲を確認してから再審査を申請してください。
13.5 導入前後の成果を比較する
構造化データの効果を評価する場合は、導入前後のクリック数、表示回数、クリック率、掲載順位などを比較します。季節性や順位変動の影響を受けるため、数日だけで判断せず、一定期間のデータを確認します。
Googleは、構造化データ未導入の複数ページへ実装し、Search Consoleで導入前後を比較する方法を案内しています。対象ページの内容や時期が大きく変わらない条件を選び、構造化データ以外の変更を同時に行いすぎないようにします。
14. Rich Resultsが表示されない原因
構造化データが有効でもRich Resultsが表示されない場合は、コードだけでなく、対応状況、クロール、ページ品質、情報の一致、検索需要などを確認します。一つの原因に決めつけず、順番に切り分けることが重要です。
14.1 Googleが対応していない種類を使っている
Schema.orgに存在する種類が、すべてGoogle検索のRich Resultsに対応しているわけではありません。Schema.orgの検証に合格しても、Googleの検索ギャラリーに掲載されていない種類は、専用の視覚表示が行われないことがあります。
まずRich Results Testで対象として検出されるか確認し、検索ギャラリーで現在の対応状況を調べます。過去に対応していた種類が終了している可能性もあるため、古い記事だけを根拠に判断しないでください。
14.2 ページ内容と記述内容が一致していない
構造化データに記述した価格、評価、著者、開催日時などがページ上に表示されていない場合、品質ガイドラインに反する可能性があります。画面上では4,980円、構造化データでは3,980円という不一致も問題です。
テストツールは構文上の問題を検出できますが、情報が誤解を招くか、ページの中心内容を正しく表しているかを完全には判断できません。エラーがない場合でも、人がページとコードを比較してください。
14.3 Googlebotがページを取得できない
robots.txt、noindex、ログイン制限、接続エラーなどがあると、Googleはページや構造化データを取得できません。画像URLだけが取得禁止になっている場合、画像を利用した表示に影響することもあります。
Search ConsoleのURL検査とライブテストを使い、HTML、画像、必要なJavaScriptが取得可能か確認します。テスト用環境では成功していても、本番環境の制限設定によって失敗することがあるため、必ず公開URLを検証してください。
14.4 検索結果で選択されていない
技術条件と品質条件を満たしていても、Googleが通常のテキスト結果を選ぶことがあります。検索語句に対して追加情報が有用ではない場合や、別の表示形式が適切と判断された場合などです。
この状態では、コードを何度も変更しても必ず表示されるとは限りません。対象検索語句、端末、地域、期間を広げ、Search Consoleの表示実績を確認してください。
14.5 情報が古いまたは無効になっている
終了済みイベント、期限切れ価格、販売終了商品、古い営業時間など、時間に依存する情報が更新されていない場合、Rich Resultsに利用されない可能性があります。Googleは、関連性を失った時間依存情報を表示しないと案内しています。
期限のある情報には更新処理を用意し、イベント終了後、在庫変更後、価格改定後などに自動更新されるようにします。更新できないページでは、古い構造化データを残すのではなく、現在の状態へ修正してください。
15. Rich Resultsを継続運用する方法
構造化データは、一度実装して終了する施策ではありません。ページ内容、商品情報、Googleの対応機能、管理システムの仕様が変わるため、定期的な確認と修正が必要です。
15.1 ページ種類ごとに仕様書を作る
記事、商品、店舗、イベントなど、ページ種類ごとに出力する構造化データと項目を決めます。どの管理項目がどの構造化データへ使われるかを記録すれば、更新時の影響を把握しやすくなります。
必須項目、推奨項目、出力条件、情報源、テスト用URLを仕様書へ記載してください。担当者が変わっても同じ品質で運用できる状態を作ることが重要です。
15.2 定期的な自動検査を導入する
主要ページのHTMLを定期取得し、構造化データが存在するか、JSONとして解析できるか、重要項目が空になっていないかを自動検査できます。商品価格や在庫については、画面表示と構造化データの値を比較する処理も有効です。
自動検査ですべての品質問題を判断することはできませんが、突然の出力停止、構文崩れ、空文字、固定値の混入などを早期発見できます。自動検査と人による内容確認を組み合わせてください。
15.3 変更時の担当範囲を明確にする
商品価格を変更する担当者、ページを編集する担当者、テンプレートを管理する開発者など、複数部門が関係する場合があります。誰がどの情報を更新するかが不明確だと、画面表示だけが変更され、構造化データが古いまま残ります。
価格、在庫、営業時間、開催日時などの変更フローに、構造化データの確認を含めてください。特に手作業で記述しているページでは、更新チェック項目を明文化する必要があります。
15.4 成果指標を決める
Rich Resultsの成果は、表示されたかどうかだけではなく、表示回数、クリック数、クリック率、対象ページの流入、購入や問い合わせなどで評価します。検索順位が変わっている場合は、その影響も分けて考えます。
クリック率が上がらない場合でも、表示される価格が競合より高い、画像が分かりにくい、商品名が検索意図と合っていないなど、構造化データ以外の原因があります。検索結果の情報とページ内容を一体として改善してください。
15.5 Google公式情報を定期確認する
構造化データの対応種類、必須項目、推奨項目、レポートは変更されます。過去に有効だった実装が、現在も同じ検索表示を生成するとは限りません。
少なくとも四半期ごと、または大規模なサイト更新前後に、Google検索セントラルの検索ギャラリーと各機能ガイドを確認してください。機能終了の案内が出た場合は、不要な監視や開発工数を見直し、現在サポートされる種類へ優先順位を移します。
おわりに
Rich Resultsを表示させるためには、ページに合う構造化データを選び、画面上の情報と一致する内容を正しい形式で記述する必要があります。JSON-LDの構文だけを整えるのではなく、ページ本文、画像、価格、日時、著者、URLなどを一貫させることが重要です。
実装後はRich Results Test、Schema.orgの検証ツール、Search ConsoleのURL検査を使い、それぞれ異なる観点から確認してください。有効と判定されても表示は保証されないため、検索結果の手作業確認だけで判断せず、Search Consoleの表示回数やクリック数を継続的に確認します。
Google検索の対応機能は今後も変更される可能性があります。現在の公式ガイドを基準にしながら、正確なページ情報、クロール可能な環境、保守しやすい生成処理、定期的な検証を組み合わせることが、Rich Resultsを安定して運用するための最も確実な方法です。
EN
JP
KR