ビボロク。どこかで誰かのためになるWebのTIPS・ノウハウ。備忘録として残しておきます
   
           

リッチリザルトテストで「検出されません」エラー。原因と対応

  • 投稿日/更新日
  1. home
  2. Knowledge

解決法

Googleのリッチリザルトテストは一部のデータ形式しか対応していません。Googleのドキュメント「検索ギャラリー」を確認して、対応している形式にしてみましょう。私の場合は、ページ自体のタイプをWebPageにしていたのが原因でした。

解説

SEOとしてリッチリザルト対応すなわち構造化データを用意しておくことはもはや常識ですが、テストツールとしてはGoogleのリッチリザルトテストが有名です。さて、このテストツールでチェックしていたところ、とある現象に出くわしました。

「アイテムが検出されませんでした。
この URL ではリッチリザルトは検出されませんでした。」
イエモンの歌詞っぽい。

書き方が悪かったのかな? URLがおかしいのかな? それとも「,」を入れ忘れたのかな? Googleの機嫌が悪いのかな? いろいろ検証したのですが、全く検出されません。文法のエラーや警告が出ることはよくありますが、このような構造データ自体が無いという現象は初めてでした。

Googleの仕様だった

Googleはドキュメントで下記のように言っています。

検索用の構造化データでは主に schema.org のボキャブラリが使用されていますが、Google 検索の動作の定義には、schema.org のドキュメントではなく Google 検索セントラルのドキュメントを使用してください

https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data

Schema.orgが用意している様々なプロパティをGoogleはすべて対応しておらず、一部しか見てませんよということです。それは分かっとります。でも動かんぞ…といろいろ探っていたところ原因が判明しました。

NG例

  "@type": "WebPage",

OK例

  "@type": "BlogPosting",

今回、現象の原因となった記述は @type”:”WebPage” 。ただこのTYPEはmainEntityOfPageプロパティの中でも使用しており、こちらは認識されています。どうやらGoogleとしては、ページ自体の主たるTYPEに「WebPage」を使用しても認識しないということにしているようです。そんなぁ。

先述の通り、Googleは一部のTYPEしか認識しないので、検索ギャラリーで掲載しているものから類似のものでTYPEを設定するしかないようです。たとえばブログであれば、「Article」にあたりますので、Articleスターターガイドページを見ると、「Article、NewsArticle、BlogPostingいずれかを記述」と書いてあります。ということで今回私はBlogPostingをチョイスしました。

よく似た「WebSite」タイプに関してはこんなドキュメントも有りました。

https://developers.google.com/search/docs/advanced/structured-data/sitelinks-searchbox

「サイトリンク検索ボックス」機能のために「WebSite」TYPEは利用できるけど、それ以外はどうもできないようです。うーんそれってどうなんですかねぇ…。

今回はリッチリザルトテストで検出されない事態になりましたが、Schema.orgのスキーママークアップ検証ツールでは@type":"WebPage"でもエラーはでてきません。なので当面は両方のツールで確認しておいた方が良さそうですね。

ちなみに、どうしてもWebpageが使いたい、でもリッチリザルトテストでも確認したいという場合は、並列記述することでテストできる場合があります。これは私が発見した裏技ですが、意外にアリかもしれません。

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": ["WebPage","BlogPosting"]

                   

備忘録として残しておきます。