リッチリザルトテストで『項目「author」がありません』という警告
最近,リッチリザルトテストで構造化データのテストをした時に「記事」(Article, NewsArticle, BlogPosting) の項目で author がないという警告が出ることに気づいた.
最近(2021/10/19) Google から出された「品質評価ガイドライン」にも「作成者の評判が極端に低く,信頼できないとみなす場合,最低の評価になる」ということが書いてあるようだ.
その作成者がどれだけ信頼できるかというのはリンクや wikipedia を参考にするらしいが,ページではなく,その作成者がどれだけ信頼できるかというのをネットだけで見破れるのか,少し難しい気もする.
つまり信頼できる作成者の名前や組織でなければ書いても意味がなさそうに思える.
しかし,警告を出されるので明確にしろとは思っているようだ.
その上で「こいつダメだ」と認定された場合は検索順位が落ちるということか.
いずれにしても作成者を隠す必要もないので警告が出ないように修正することにする.
記事の構造化データの仕様について
記事の構造化データの書き方は以下のURLにある.
https://developers.google.com/search/docs/advanced/structured-data/article?hl=ja
上記ページのArticle オブジェクトを見ると,AMP と 非AMP に分かれている.
非AMP のタブを見てみると,author が推奨プロパティに入っていない.
このサイトは 非AMP なのだが,警告が出ている.
そうは言っても警告が出るのは気持ちが悪いので,author を入れることにした.
このサイトは「記事」の構造化データは microdata で記述している.つまり,通常の HTML に属性を追加することによって構造化データにしている.
author は microdata では書けない?
しかし,Schema.org の author の箇所を見てみると,JSON-LD はあるのだが,microdata の欄は TODO となっている.
入れ子(ネスト)になっているから microdata では書けないという意味ではないのか?将来書けるようになるの?と疑ってしまう.
どちらにしても,今のままでは警告は消せないことになる.
記事を JSON-LD で表示
仕方ないので記事(BlogPosting)の構造化データは JSON-LD で書くことにした.
実際に書くと下記のようになる.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://www.rectus.co.jp/archives/4102"
},
"headline": "リッチリザルトテストで author がないという警告",
"dateModified": "2021-11-05T16:04:28+09:00",
"datePublished": "2021-11-05T16:04:32+09:00",
"image": "",
"author": {
"@type": "Organization",
"name": "株式会社レクタス",
"url": "https://www.rectus.co.jp/"
}
}
</script>
WordPress で自動的に記述する場合
WordPress の場合は footer.php に以下のスクリプトを挿入すると現時点でリッチリザルトテストで警告されない記事の構造化データを作成することが出来る.
<?php if ( is_single()) {
$ps_thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full'); ?>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "<?php the_permalink(); ?>"
},
"headline": "<?php the_title(); ?>",
"dateModified": "<?php the_modified_date('c') ?>",
"datePublished": "<?php echo get_the_date('c'); ?>",
"image": "<?php echo $ps_thumb[0]; ?>",
"author": {
"@type": "Organization",
"name": "組織名",
"url": "組織URL"
}
}
</script>
<?php } ?>
ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.