ページにはすでに JSON-LD コードが追加されているのに、google schema testing tool を開くと「構造化データが検出されません」と表示される場合、すぐにマークアップ全体を書き直す必要はありません。この結果は通常、Schema が必ずしも無効であることを意味するものではなく、より一般的には、検出ツールが取得したページ内容がブラウザで表示される内容と一致していない、またはマークアップの配置方法、コード構文、ページのアクセス状態に問題があることを示します。
実際の運用では、誤判定につながりやすいケースとして、開発者がテスト環境ではコードが正常に表示されることを確認していても、公開後にはツールが取得できない場合があります。また、サイト管理画面に商品、パンくずリスト、記事などの項目がすでに保存されていても、フロントエンドのページで実際に構造化データが出力されていないこともあります。対処する際は、まず「ツールが取得した HTML にマークアップが含まれているか」を確認し、次にマークアップが解析可能かを確認し、最後にタイプとプロパティが要件を満たしているかを判断してください。
「データが検出されない」と「データは検出されたが警告がある」は別の問題です。前者は、ツールが現在のページから認識可能な Microdata、RDFa、または JSON-LD を解析できていないことを示します。後者はマークアップ自体は存在しているものの、一部の推奨項目が不足していることを示しており、基本的な認識に必ずしも影響するとは限りません。
Google の従来の Structured Data Testing Tool はすでに保守を終了しています。現在調査する際は、目的に応じてリッチリザルトテストツールを使用し、ページが Google に対応したリッチリザルト表示条件を満たしているかを確認するか、Schema Markup Validator を使用して Schema.org の構文と階層を確認できます。あるツールで結果が表示されないからといって、ページ上のすべての構造化データが無効だと直ちに判断しないでください。ツールごとに、対応タイプ、JavaScript レンダリング、検証ルールで重視する点は完全には同じではありません。
まず、テスト対象の URL をシークレットウィンドウで開き、直接アクセスできること、正常なページが返されること、ログイン、CAPTCHA、地域制限、特別な Cookie が不要であることを確認してください。テストツールは、ブロックされたコンテンツ、異常なリダイレクト先、またはアクセス制限のあるコンテンツを読み取れません。
サイトによっては、訪問者の言語、IP、または User-Agent に応じて異なるバージョンを返すことがあります。ブラウザで正常にアクセスできるからといって、クロールツールが正常な HTML を取得できるとは限りません。この場合は、サーバーログ、CDN の保護ルール、またはページ取得結果で、リクエストがブロックされていないかを確認してください。

ブラウザの「要素を検証」だけで探さないでください。開発者ツールに表示されるのは、ページが JavaScript を実行した後の DOM であり、検出ツールが必ずしも同じ方法でスクリプトを実行するとは限りません。「ページのソースを表示」を使用し、application/ld+json、schema.org、itemtype、または itemscope を検索してください。
JSON-LD では、一般的に内容を<script type="application/ld+json"> タグ内に配置します。ソースコードにこの内容がなく、動的 DOM にのみ表示される場合、問題の多くはフロントエンドでの非同期挿入に起因します。特にシングルページアプリケーション、絞り込みページ、ポップアップの商品詳細ページでは、構造化データが API の応答後に生成される場合があり、クロールのタイミングが異なると google schema testing tool で検出されないことがあります。
より確実な方法は、主要ページの JSON-LD を初期 HTML とともに出力するか、信頼性の高いサーバーサイドレンダリングまたはプリレンダリング方式を採用することです。商品詳細、記事詳細、カテゴリーページの主要情報は、本来、初期レスポンスで優先的に読み取れるべきであり、ユーザー操作後の読み込みに完全に依存すべきではありません。
コードをコピーする際、全角引用符、末尾のカンマ、エスケープされていない二重引用符、不完全な括弧が混入しやすくなります。JSON の解析に失敗すると、ツールは通常、データ全体を無視します。コードが Schema のように見えても、有効な JSON であるとは限りません。
@context が https://schema.org であるか、@type のスペルが正しいかも確認してください。プロパティ値はページ上で表示される内容と一致させる必要があります。たとえば、商品価格、在庫、評価、公開日などは、マークアップ内に長期間、期限切れの情報やページ上に存在しない情報を残してはいけません。ツールが解析できることは、検索エンジンがその情報を表示に採用することを意味するものではありません。
サイト構築システムや CMS を使用している場合、管理画面で「構造化データを有効化」にチェックを入れても検出されないときは、Schema タイプの選択ミスではなく、テンプレートが対応するコンポーネントを呼び出していないことがよくあります。たとえば、記事テンプレートがタイトルと本文を出力していても、Article Schema モジュールが抜けている場合があります。商品データが商品システムに入力されていても、現在の商品詳細ページでカスタムテンプレートが使われているため、関連項目が渡されていないこともあります。
もう一つ頻繁にある問題はキャッシュです。ページ更新後、管理画面の設定は変更されていても、CDN、ページキャッシュ、オブジェクトキャッシュが古い HTML を返し続けていることがあります。確認の順序は、設定を保存してページを公開し、サイトキャッシュと CDN キャッシュを削除し、最終公開 URL でソースコードを確認してから、再度検出を実行することです。管理画面のプレビューページで新しいコードが見えただけでは、公開ページが更新された証明にはなりません。
テーマに標準搭載された SEO マークアップ、EC プラグインのマークアップ、サードパーティ製 SEO プラグインを同時に有効にしているサイトでは、1 つの商品ページに 2 つの Product、2 つの Offer が出力され、価格や在庫まで一致しないことがあります。このようなページで必ずしも「検出されません」と表示されるわけではありませんが、その後の診断を複雑にし、マークアップの信頼性を低下させる可能性もあります。
ページの役割に応じて主要エンティティを残すことを推奨します。記事詳細ページでは Article または BlogPosting を中心とし、商品詳細ページでは Product を中心とし、ナビゲーション領域には BreadcrumbList を補足できます。まず重複する出力元を削除または無効化してから、もう一度テストしてください。Organization、WebSite などのサイト全体のエンティティについても、名称、URL、Logo などの情報を統一し、異なるプラグインがそれぞれ異なるバージョンを生成しないようにしてください。
最後に、判断の境界を明確にしておく必要があります。構造化データが検証を通過したことは、機械がページ情報の一部を理解できることを示すだけで、リッチリザルト表示を必ず獲得できることを保証するものではありません。逆に、ある種の Schema がリッチリザルトツールに表示されないからといって、そのマークアップに価値がないことを必ずしも意味しません。「データが検出されない」という問題については、ページのアクセス可能性、初期 HTML の出力、JSON 構文、キャッシュバージョンを優先的に特定するほうが、項目を繰り返し追加するよりも通常は効果的です。
関連記事
関連製品