サーチコンソールでエラー「data-vocabulary.org schema deprecated」の解決方法

サーチコンソールでエラー「data-vocabulary.org-schema-deprecated」の解決方法

2020年1月のある日、サーチコンソールに以下のようなエラーメッセージが…

サーチコンソールのパンくずリストへの警告メールの内容キャプチャ

全く意味が分からないので、とりあえずサーチコンソールで見てみるとこんな感じで「パンくずリスト」という項目に警告ステータスが大量に増加してました↓

サーチコンソールの「パンくずリスト」には「data-vocabulary.org schema deprecated」という項目の警告が100件以上増加しているのが分かる

data-vocabulary.org schema deprecated」?

これは一体どういうエラーなんだろう…

まず「data-vocabulary.org schema deprecated」の意味が分からないので調べてみると、どうやらGoogle側でのパンくずリストの推奨が変更されたらしいです。

deprecated=非推奨という意味なので、直訳で「data-vocabulary.org」というschemaが非推奨という事らしい。

例えば自分の警告がきたサイトのパンくずリストのHTMLを見るとこんな感じになってます↓

このサイトのパンくずリストのHTML構造(schema.org )

確かにパンくずリストのHTMLには「data-vocabulary.org」が入っていて、これがGoogle的には非推奨になったという事らしいです。(googleが推奨しているのは「schema.org」というマークアップ)

どうすればいい?パンくずリストのマークアップを「data-vocabulary.org」から推奨マークアップ「schema.org」へ書き換えればOK

という事で原因が分かったので解決方法に。

自分のサイトの警告が出た時点のパンくずリストのHTMLは以下↓

<ul>
  <li itemscope itemtype="//data-vocabulary.org/Breadcrumb">
    <a href="トップページのURL" itemprop="url">
      <i class="fa fa-home"><span itemprop="title">HOME</span>
    </a>
  </li>
  <li itemscope itemtype="//data-vocabulary.org/Breadcrumb">
    <a href="カテゴリページのURL" itemprop="url">
      <i class="fa fa-home"><span itemprop="title">(カテゴリ名)</span>
    </a>
  </li>
  <li>
    (記事タイトル)
  </li>
</ul>

これをGoogle推奨のマークアップである「schema.org」に書き換えるとこんな感じにっぽいです↓

  1. HOME
  2. (カテゴリ名)
  3. (記事タイトル)

まず</ul>ではなく</ol>にするのと、itempropも微妙に違います。

パンくずリストの構造はワードプレスのテーマによって違う可能性があるので、自分の場合はこんな感じに変えてみました。

で、ワードプレスのどこを書き換えればいいのか

自分の場合は「stoak」というワードプレスのテーマを使っているんですが、パンくずリストの記述は「function.php」にあったのでそこを書き換えました。

「外観」>「テーマエディタ」にあるのだが、phpとかよく分からない人はあまり触らない方がいいかも。

Stoakのパンくずリストのコードはfunction.phpに記載されている

一応編集するときは、バックアップを取っておいて、最悪の場合はサーバのFTPから元のコードに戻せばいいと思う。

正直合っているのか自信は無いですが、こんな感じに修正してみましたよ↓

/*********************
パンくずナビ
*********************/
if (!function_exists('breadcrumb')) {
	function breadcrumb($divOption = array("id" => "breadcrumb", "class" => "breadcrumb inner wrap cf")){
	    global $post;
	    $str ='';
	    if(!get_option('side_options_pannavi')){
		    if(!is_home()&&!is_front_page()&&!is_admin() ){
		        $tagAttribute = '';
		        foreach($divOption as $attrName => $attrValue){
		            $tagAttribute .= sprintf(' %s="%s"', $attrName, $attrValue);
		        }
		        $str.= '';
		        $str.= '
    '; $str.= '
  1. HOME
  2. '; if(is_category()) { $cat = get_queried_object(); if($cat -> parent != 0){ $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' )); foreach($ancestors as $ancestor){ $str.='
  3. '. get_cat_name($ancestor) .'
  4. '; } } $str.='
  5. '. $cat -> name . '
  6. '; } elseif(is_single()){ $categories = get_the_category($post->ID); $cat = $categories[0]; if($cat -> parent != 0){ $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' )); foreach($ancestors as $ancestor){ $str.='
  7. '. get_cat_name($ancestor). '
  8. '; } } $str.='
  9. '. $cat-> cat_name . '
  10. '; $str.= '
  11. '. $post -> post_title .'
  12. '; } elseif(is_page()){ if($post -> post_parent != 0 ){ $ancestors = array_reverse(get_post_ancestors( $post->ID )); foreach($ancestors as $ancestor){ $str.='
  13. '. get_the_title($ancestor) .'
  14. '; } } $str.= '
  15. '. $post -> post_title .'
  16. '; } elseif(is_date()){ if( is_year() ){ $str.= '
  17. ' . get_the_time('Y') . '年
  18. '; } else if( is_month() ){ $str.= '
  19. ' . get_the_time('Y') . '年
  20. '; $str.= '
  21. ' . get_the_time('n') . '月
  22. '; } else if( is_day() ){ $str.= '
  23. ' . get_the_time('Y') . '年
  24. '; $str.= '
  25. ' . get_the_time('n') . '月
  26. '; $str.= '
  27. ' . get_the_time('j') . '日
  28. '; } if(is_year() && is_month() && is_day() ){ $str.= '
  29. ' . wp_title('', false) . '
  30. '; } } elseif(is_search()) { $str.='
  31. 「'. get_search_query() .'」で検索した結果
  32. '; } elseif(is_author()){ $str .='
  33. 投稿者 : '. get_the_author_meta('display_name', get_query_var('author')).'
  34. '; } elseif(is_tag()){ $str.='
  35. タグ : '. single_tag_title( '' , false ). '
  36. '; } elseif(is_attachment()){ $str.= '
  37. '. $post -> post_title .'
  38. '; } elseif(is_404()){ $str.='
  39. ページがみつかりません。
  40. '; } else{ $str.='
  41. '; } $str.='
'; $str.='