wordpressを使ったサイトで構造化データエラーが出たらJSON-LDマークアップで即解決。
構造化データの突然のエラー発生とその影響
ある日突然、wordpressを使っているWebサイトでsearch consoleの構造化データがエラーの大量発生。

ほぼ毎日Analyticsを見ていてここ最近突然アクセス数が緩やかに落ち込んでいたのでなぜかと思っていたら、これが原因なのかもしれません。まぁ、手を打ってしばらく時間が経たないとわかりませんが。

ということで手っ取り早くschema.orgとJSON-LDでの改善を試みます。
“schema.org”ボキャブラリって何?
検索エンジンがクロールしたwebサイトを意味的に理解するのを助ける仕様としてschema.orgというボキャブラリを使います。
このボキャブラリは名札のようにタイトルが付けられて、書いた人が誰であるとか、いつ書かれたのかとか、それぞれのラベルに対して内容が書かれるシンプルなもの。
その記述方法(シンタックス)としてはいくつかあります。
- Microdata
- RDFa
- RFDa Lite
- JSON-LD
JSON-LDで構造化データを追記
今回、シンタックスは直接まとめて記述できるのでわかりやすい「JSON-LD」の方法を使います。
他のシンタックスの記述方法だとページ内にあちこち散らばって、仕様変更などがあった場合面倒です。
json形式でheadタグ内にまとめて管理できる「JSON-LD」がオススメです。
実際の追記の内容はこんな感じ。
「</head>」タグの直前に記述しました。
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "NewsArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "<?php the_permalink(); ?>" }, "headline": "<?php echo get_the_title(); ?>", "image": { "@type": "ImageObject", "url": "<?php echo $src; ?>", "height": "<?php echo $height; ?>", "width": "<?php echo $width; ?>" }, "datePublished": "<?php echo get_the_date(DATE_ISO8601); ?>", "dateModified": "<?php if ( get_the_date() != get_the_modified_time() ){ the_modified_date(DATE_ISO8601); } else { echo get_the_date(DATE_ISO8601); } ?>", "author": { "@type": "Person", "name": "<?php the_author_meta('nickname'); ?>" }, "publisher": { "@type": "Organization", "name": "<?php bloginfo('name'); ?>", "logo": { "@type": "ImageObject", "url": "https://blog.tachibanacraftworks.com/wp-content/uploads/2016/12/1505412_593783524026201_1257298085_n.png", "width": "400px", "height": "400px" } }, "description": "<?php echo get_post_meta($post->ID, _aioseop_description, true); ?>" } </script>
※今回はロゴ画像のサイズが決まっているので、画像サイズをそのまま記述しています。
wordpressを想定していますのでそれぞれのデータを呼び出す「<?PHP … ?>」が所々入っています。
プラグイン「All in One SEO」を使っていればこのままコピペするだけで問題ないと思います。
追記したらSearch Consoleのテストツールで対象ページのアドレスを入力して確認してみましょう。

wordpressのサイトでエラーの修正が反映されない
search consoleの構造化データテストツールを使って確認してみるとなぜかエラーが出たまま。

そこでwordpressの管理画面から怪しそうなところを見てみました。
プラグイン「All in One SEO」の[一般設定]をみてみるとそれらしきものがありました。
「schema.orgマークアップを使用」のチェックマークを外して[設定を更新≫]をクリックします。
テストツールの左側の窓にhtmlのソースが表示されてますがエラーを示す箇所が追記した部分ではなくて、なぜか「htmlタグ」を指していたので自動で挿入されるものが重複したエラーとして捉えているのかもしれません。
プラグインの設定を変更したのち、再び構造化データテストツールで確認するとすべてのエラーが消えていました。
修正が完了しても「構造化データ」のページではエラー表示になってますが、Googleのインデックスではすぐに反映されないのでエラーが表示されます。
構造化データは中3日程度で更新されているので、一・二週間くらい待てば修正の効果が確認できるかと思います。

後日、修正の影響を確認・・・しました
「結果は後日・・・」ということで、先月エラーの対策までで終わっていました。
あれこれ修正した結果しっかり反映されて、下の画像のようにエラーが減少しました。
Analyticsなどを見ていると、微増ですが急激な落ち込み前のアクセス数に少しづつ戻っている感じがします。

あとは投稿ページ以外のカテゴリーのトップページやその他のページの残りのエラーを完全な状態にすればOKというところです。
こういった細かい部分の修正がペナルティ対策含めてアクセス数に少なからず影響してくるので、常に監視は必要だなと実感した次第でございますyo。
いつも読んでくれてありがとね!