Google Search Console から、『サイト https://codeisle.info/blog/ で「パンくずリスト」の問題が新たに検出されました』というタイトルのメールが届きました。
警告は、サイトの改善のための推奨項目です。警告によっては、検索結果での表示に影響がある場合がございます。また、警告が今後エラーになることも考えられます。貴サイトでは、以下の警告が検出されました。
data-vocabulary.org schema deprecated
上記の問題をできる限り解決されることをおすすめいたします。こうした問題を解消することで、サイトのエクスペリエンスや Google 検索結果での表示を最適化できます。
Google Search Console Team
パンくずリストの構造化データに data-vocabulary.org が使われていたので引っ掛かったようです。「Google 検索結果での表示を最適化」するためには修正を行う必要がありそうです。
詳しくは Google Webmaster Central Blog のこちらの記事で説明されています。
data-vocabulary.org を schema.org に置き換える
エラーを解消し、推奨されるマークアップに変更するには、以下の例のように data-vocabulary.org を schema.org に置き換えます。
data-vocabulary.org
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb "> <a href="http://codeisle.info/blog" itemprop="url"><span itemprop="title">ブログ</span></a> </div> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb "> <a href="http://codeisle.info/blog/category" itemprop="url"><span itemprop="title">カテゴリー</span></a> </div>
schema.org
<ul itemscope itemtype="http://schema.org/BreadcrumbList"> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a href="http://codeisle.info/blog" itemprop="item"><span itemprop="name">ブログ</span></a> <meta itemprop="position" content="1" /> </li> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a href="http://codeisle.info/blog/category" itemprop="item"><span itemprop="name">カテゴリー</span></a> <meta itemprop="position" content="2" /> </li> </ul>
WordPressテーマを修正する
WordPressテーマのパンくずリストに data-vocabulary.org が使われていれば、この要領でコードを修正します。
従来のコード
<?php //カテゴリ用のパンくずリスト $cat = is_single() ? get_the_category() : array(get_category($cat)); if($cat && !is_wp_error($cat)){ $echo = null; $par = get_category($cat[0]->parent); ?> <ul class="breadcrumbs"> <li itemtype="http://data-vocabulary.org/Breadcrumb" itemscope="" class="item"><a href="<?php echo home_url(); ?>" itemprop="url"><span itemprop="title"><?php echo get_theme_text_breadcrumbs_home(); ?></span></a></li> <?php while($par && !is_wp_error($par) && $par->term_id != 0){ $echo = '<li itemtype="http://data-vocabulary.org/Breadcrumb" itemscope="" class="item"><a href="'.get_category_link($par->term_id).'" itemprop="url"><span itemprop="title">'.$par->name.'</span></a></li>'.$echo; $par = get_category($par->parent); } echo $echo.'<li itemtype="http://data-vocabulary.org/Breadcrumb" itemscope="" class="item"><a href="'.get_category_link($cat[0]->term_id).'" itemprop="url"><span itemprop="title">'.$cat[0]->name.'</span></a></li>'; ?> </ul> <?php } ?>
親カテゴリーがある場合は、文字列の加算で左にコードを足していく、という仕組みになっています。
schema.org
各アイテムに階層を表わす potision の数字を振っていきたいので、親カテゴリーの処理を変更する必要がありました。
<?php //カテゴリ用のパンくずリスト $cat = is_single() ? get_the_category() : array(get_category($cat)); if($cat && !is_wp_error($cat)){ $par = $cat[0]; $cat_list = []; while($par && !is_wp_error($par) && $par->term_id != 0){ array_unshift( $cat_list, '<a href="'.get_category_link($par->term_id).'" itemprop="item"><span itemprop="name">'.$par->name.'</span></a>'); $par = get_category($par->parent); } ?> <ul itemscope itemtype="http://schema.org/BreadcrumbList" class="bread-crumbs"> <li itemprop="itemListElement" itemtype="http://schema.org/ListItem" itemscope class="item"><a href="<?php echo home_url(); ?>" itemprop="item"><span itemprop="name"><?php echo get_theme_text_breadcrumbs_home(); ?></span></a><meta itemprop="position" content="1"/><li> <?php foreach( $cat_list as $key => $val ) { $pos = $key + 2; echo '<li itemprop="itemListElement" itemtype="http://schema.org/ListItem" itemscope class="item">'.$val.'<meta itemprop="position" content="'.$pos.'" /></li>'; } ?> </ul> <?php } ?>
リッチリザルト テストをする
こちらのサイトを利用して、パンくずリストの新しいコードが Google検索結果に反映されるコードになっているかチェックできます。
生成されたパンくずリストのhtmlコードをサイトのコード欄にコピペして…
ちゃんとできていますね!
あとは Google Search Console で問題のメッセージを開いて、検証をかければOKです。
コメント