【SEO】data-vocabulary.orgスキーマのサポートをGoogleが終了したのでschema.orgへ移行してみた
Google Search Console のURL検査にて、「パンくずリスト」に設定されていたdata-vocabulary.orgスキーマへ警告を受けたので、行った対策方法を備忘録としてポストします。
対策方法はWordpressのテーマ(STINGER Plus+)の編集となります。
Google Search Consoleでの警告
警告内容
2020年1月22日に、以下のようなメッセージが届きました。
↑ 「data-vocabulary.org スキーマのサポートは終了します」とあります
私のサイトの一番人気の記事であるページのURLにて検査をすると以下のような結果になりました。
↑ 概要。2件の有効なアイテムを検出
↑ 詳細。やはり「data-vocabulary.org スキーマのサポートは終了します」とのこと。ふむふむ。
原因の調査
ということで調査。以下のサイト様を参照しました。
どうやらGoogleの内部の仕様で、data-vocabulary.orgが使用できなくなるのが原因のようです。
対策として「schema.org」のものを使用しなさい、とのことです。
WordPressテーマ内のパンくずリストへの警告の対策方法
秀丸エディタでの検索
ちなみにこのサイトはWordpressで作成し、テーマは現在は無料でのダウンロードが終了している「STINGER Plus+」を使用しています。
このページを読んでいる人とはテーマが違い、HTMLタグの構成が異なると思いますので『この通りに処理すれば全く問題ない』というものでもないので、必要な箇所を自分のテーマに合わせて読み替えてください。
では、みんな大好き、私も大好きな「秀丸エディタ」を使い、テーマ内の警告を受けているところを検索(grep)し、どのファイルを編集すればよいかを調査します。
秀丸エディタには、ディレクトリ(フォルダ)内の全てのhtmlやphpなどのテキストで作成されているファイルを横断検索してくれる「grep」という機能があるので、それを使用します。
(子)テーマのディレクトリを開き、任意のファイル(今回はfunctions.php)を秀丸エディタにて開き、検索 → grepの実行 を行います。
↑ 検索 → grepの実行とたどる
検索する文字列へ『data-vocabulary.org』と入力。
検索するフォルダの[...]ボタンを押し、(子)テーマが収められているフォルダを選択し「OK」ボタンをクリック。
↑ 一応、サブフォルダも検索というチェックもONにしておきます
結果は以下のようになりました。
↑ grepの結果
- archive.php
- category.php
- index.php
- single.php
にて『data-vocabulary.org』という文字列が使用されているようです。
ちなみにファイル名の横にある数字は行数です。
archive.phpだと、8行目と32行目に使用されています、ということです。
対象ファイルを調査したところ、「STINGER Plus+」ではパンくずリストはリストタグではなくdivタグにて作成されており、内容は全て同じ記述がされていました。
テーマの編集
対象ファイルが絞り込めたので、それぞれのファイルを編集します。
編集前のファイルのバックアップを忘れず、いつでももとに戻せる準備をしておくのが鉄則です。
私が調査したところ、「STINGER Plus+」の場合は以下のように書き換えれば問題なさそうです。
変更前
1 2 3 4 5 |
<?php foreach ( $allcats as $catid ): ?> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="<?php echo esc_url( get_category_link( $catid ) ); ?>" itemprop="url"><span itemprop="title"><?php echo esc_html( get_cat_name( $catid ) ); ?></span> </a> > </div> <?php endforeach; ?> |
変更後
1 2 3 4 |
<?php foreach ( $allcats as $catid ): ?> <div itemscope itemtype="http://schema.org/BreadcrumbList"> <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="<?php echo esc_url( get_category_link( $catid ) ); ?>" itemprop="item"> <span itemprop="name"><?php echo esc_html( get_cat_name( $catid ) ); ?></span> </a><meta itemprop="position" content="1" /></span> ></div> <?php endforeach; ?> |
↑ <span>タグで括るよう少し構造を変えてアップしています。
記述方法の詳細は https://schema.org/BreadcrumbList にて解説されていますので、転載します。
123456789101112 <ol itemscope itemtype="http://schema.org/BreadcrumbList"><li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" href="https://example.com/dresses"><span itemprop="name">Dresses</span></a><meta itemprop="position" content="1" /></li><li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" href="https://example.com/dresses/real"><span itemprop="name">Real Dresses</span></a><meta itemprop="position" content="2" /></li></ol>
編集後はこちらのサービスにてチェックを行います。
リッチリザルト テスト - Google Search Console
https://search.google.com/test/rich-results?hl=ja
修正した結果
2020年3月7日に修正し、Googleへ修正した旨を申請しましたが、3月21日現在、60件がいまだエラーとして認識されている状態です。
↑ 60件がエラーとなっています
↑ 詳細
エラーではないポストと(構造的に)どこが違うのかよく分からず、少しお手上げ状態です。
なお、2020年3月現在は放っておいてもSEO的には問題ないとのことなので、しばらく様子を見たいと思います。
参考にしたサイト様
https://seopack.jp/internal-seo/crawler-measures/breadcrumbs-structured-data.php