先日『「パンくずリスト」の問題が新たに 検出されました』というタイトルで、Google Search Consoleから、多くサイトにメールが届いているようです。

今回はこちらの対応について解説して行きたいと思います。

Google Search Consoleからのメール内容

今回、多くのサイトで届いているメールの内容としては、下記のような内容です。

メールのスクリーンショット

Search Console により、貴サイトに影響する「パンくずリスト」関連の問題が 1 件検出されました。
主な警告
警告は、サイトの改善のための推奨項目です。警告によっては、検索結果での表示に影響がある場合がございます。また、警告が今後エラーになることも考えられます。貴サイトでは、以下の警告が検出されました。
data-vocabulary.org schema deprecated
上記の問題をできる限り解決されることをおすすめいたします。こうした問題を解消することで、サイトのエクスペリエンスや Google 検索結果での表示を最適化できます。

なんだかヤバそうな内容に見えますが、『警告』と書かれるとドキッとしてしまうのは僕だけでしょうか(笑)

原因は構造化データ

Googleは 2020 年 2 月 21 日に、data-vocabulary.org によるリッチリザルトの表示を終了するという発表をしました。
data-vocabulary.org のサポート終了は 2020 年 4 月 6 日だということです。

https%3A%2F%2Fwebmasters.googleblog.com%2F2020%2F01%2Fdata vocabulary
favicons?domain=webmasters.googleblog Sunsetting support for data-vocabulary
Official news on crawling and indexing sites for the Google index

構造化データとは、検索エンジンなどのロボットが、コンテンツや、その文字列の意味を理解するためのマークアップ方法のことです。
data-vocabulary.org というのは、構造化データのマークアップ方法の一つで、マークアップの仕方としては、古いものでした。

今回、Google がこれをリッチリザルトの表示のヒントにすることを終了するというお話です。

Google は、構造化データを参考にし、『リッチリザルト』という、検索結果での特殊な表示を作ることがあります。
詳しくは、Googleの公式ページを見ていただきたいのですが、クチコミの星やサムネイル画像、パンくずリストやカルーセル表示など、様々な表示方法があります。

リッチリザルトってなんだよ!って方は、確認してみてください。

https%3A%2F%2Fsupport.google
favicons?domain=support.google Google 検索の視覚要素ギャラリー | Google 検索セントラル  |  ドキュメント  |  Google for Developers
Google 検索の最も一般的な UI 要素に関するイラスト付きガイドをご確認ください。要素の外観と要素の名前を示し、各要素向けにウェブサイトを最適化できるかどうかについて説明します。

対応策としては Schema.org への移行が必要

今回、サポート終了日までに data-vocabulary.org の使用をやめ、 Schema.org への移行をして欲しいということです。

Schema.org も、構造化データのマークアップ方法の一つですが、現時点で最も普及している方法です。

サイトのHTMLに記述されている、 data-vocabulary.org を削除し、 Schema.org の記述に修正する必要する必要があります。

対応しなかった場合考えられること

data-vocabulary.org から Schema.org への変更の対応を行わなかった場合、何が起こるのでしょうか。

もし、 data-vocabulary.org のまま構造化データをおいておいた場合、リッチリザルトの表示の恩恵を受けていたのであれば、通常の表示に戻ってしまう可能性があります。

これがウェブサイトの流入にどの程度の影響があるかは状況によって様々でしょうが、検索結果で目立たなくなるため、クリック率が低下する可能性が考えられます。

可能な限り対応した方がいいでしょう。

具体的な修正方法

今回、警告メールを受けたサイトの Google Search Console のパンくずリストページを確認すると、『data-vocabulary.org schema deprecated』のメッセージが表示されていました。

サーチコンソール上でのエラー

ソースコードを確認すると、下記のような記述がされていました。

data-vocabulary.org のパンくずリストソースコード
<ul>
  <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <a href="https://example.com" itemprop="url">
      <span itemprop="title">ホーム</span>
    </a>
  </li>
  <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <span itemprop="title">サービス</span>
  </li>
</ul>Code language: HTML, XML (xml)

itemtype=”http://data-vocabulary.org/Breadcrumb” と書かれており、 data-vocabulary.org が使われていることがわかると思います。

これを schema.org の書き方にすると、このようになります。

Schema.org に修正したパンくずリストソースコード
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
  <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
    <a itemprop="item" href="https://example.com">
      <span itemprop="name">ホーム</span>
    </a>
    <meta itemprop="position" content="1" />
  </li>
  <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
    <span itemprop="name">サービス</span>
    <meta itemprop="position" content="2" />
  </li>
</ol>Code language: HTML, XML (xml)

少し難しくなりましたね。

可能であれば JSON-LD という記述方法での実装がおすすめ

構造化データの書き方には JSON-LD という書き方もあって、実は Google は JSON-LD での記述を勧めています。

https%3A%2F%2Fdevelopers.google
favicons?domain=developers.google Intro to How Structured Data Markup Works | Google Search Central  |  Documentation  |  Google for Developers
Google uses structured data markup to understand content. Explore this guide to discover how structured data works, revi…

構造化データの記述方法には Microdata、RDFa、JSON-LD の3つが存在していて、JSON-LD であればHTMLタグ内に構造化データを入れ込む必要がなく、構造化データの導入が簡単になります。

JSON-LD での記述方法は下記のようになります。

JSON-LD のパンくずリストソースコード
<ul>
  <li>
    <a href="https://example.com">ホーム</a>
  </li>
  <li>サービス</li>
</ul>
<script type="application/ld+json">
	{
		"@context": "http://schema.org",
		"@type": "BreadcrumbList",
		"itemListElement": [
		{
			"@type": "ListItem",
			"position": 1,
			"item": {
				"@id": "https://example.com",
				"name": "ホーム",
				"image": "http://example.com/images/icon-home.png"
				}
		},{
			"@type": "ListItem",
			"position": 2,
			"item": {
				"@id": "https://example.com/service",
				"name": "サービス",
				"image": "http://example.com/images/icon-service.png"
			}
		},{
			<p>中略</p>
			}
		}]
	}
</script>Code language: HTML, XML (xml)

このように、HTMLと構造化データを別で書きますので、挿入もメンテナンスもしやすそうですよね。

WordPress で JSON-LD を使ってパンくずリストをマークアップする方法

WordPressをお使いであれば、JSON-LD での構造化データマークアップの導入は比較的簡単で、
一般的には、テーマファイルのfooter.phpの、</body>(bodyの終了タグ)の直前に、対応するコードを貼り付けて実装できます。

このサイトで使っているコードを共有しますが、このコード1つで全てのページで対応ができますので、非常に簡単です。

WordPress JSON-LD 対応のパンくずリストソースコード
<!-- パンくず構造化 -->
<?php
$catarg = get_the_category();
$catname = $catarg[0]->name;
$catslug = $catarg[0]->slug;
?>
<?php if(is_home()): ?>
<?php elseif(is_archive()): ?>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
		{
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@id": "<?php echo site_url(); ?>",
        "name": "HOME"
      }
    }, {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@id": "<?php echo site_url().'/'.$catslug; ?>",
        "name": "<?php echo $catname; ?>"
      }
    }
  ]
}
</script>
<?php elseif(is_single()): ?>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@id": "<?php echo site_url(); ?>",
        "name": "HOME"
      }
    }
, {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@id": "<?php echo site_url().'/'.$catslug; ?>",
        "name": "<?php echo $catname; ?>"
      }
    }
, {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@id": "<?php echo post_permalink(); ?>",
        "name": "<?php echo get_the_title(); ?>"
      }
    }
  ]
}
</script>
<?php elseif(is_page()): ?>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@id": "<?php echo site_url(); ?>",
        "name": "HOME"
      }
    }, {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@id": "<?php echo post_permalink(); ?>",
        "name": "<?php echo get_the_title(); ?>"
      }
    }
  ]
}
</script>
<?php endif; ?>Code language: HTML, XML (xml)

以下のサイトを参考にしています。

https%3A%2F%2Ftedate
favicons?domain=tedate [WordPress]JSON-LDでパンくずリストを構造化データマークアップする方法 - tedate
まずはコードをご紹介: これは、WordPressで作られたWebサイトのパンくずリストに「JSON-LD形式」で構造化データマークアップを行う方法です。 そもそも「構造化データマークアップってなに?」という方は、Goo … "[WordP…

変更が完了したら、リッチリザルト テスト か、構造化データ テストツール で、正しく設置できているか確認することができます。

https%3A%2F%2Fsearch.google
favicons?domain=search.google リッチリザルト テスト - Google Search Console

リッチリザルト テストでは、下記のエラーが表示されなければ問題ありません。

リッチリザルト テストスクリーンショット
https%3A%2F%2Fsearch.google
favicons?domain=search.google 構造化データ テストツール
Use the Rich Result Test to see what Google results can be generated for your pages and the schema markup validator for …

構造化データ テストツールでは、下記のエラーが表示されなければ問題ありません。
(構造化データ テストツールの方がわかりやすい説明ですね。)

構造化データ テストツールスクリーンショット

わからない点はお気軽にご相談ください

急に警告メールが届いて不安に思った方もいらっしゃると思います。

構造化データは、過去のHTMLによるマークアップよりも複雑でわかりづらい点も多いかと思います。
この記事が多少なりとも、お役に立てばと思います。

記事を読んで不明な点等がありましたらお気軽にTwitter(@kaznak_com)などでご質問ください。

ではまた。