WordPress構造化エラーは解消しておいたほうがよさそう。Twenty TwelveとTwenty Fourteenで直す!

| 1件のフィードバック

WordPressのテーマを使ったサイトだと、Webマスターツールで「構造化エラー」というものが発生します。
風のうわさで、直さないと評価が下がるらしいなど不穏な話を聞いたため、その真偽の程を調べたあたりの話と、実際の直し方をお話します。

構造化データって何?エラーって?

構造化データは、これを利用することでGoogleなど検索エンジンに対しサイトコンテンツの情報を容易に伝えることができます。
HTMLにマークアップして使用します。
代表的なものとして、Googleの「リッチ スニペットと構造化データについて」に書いてある以下三種があります。

  • microdata
  • microformats
  • RDFa

このうちWordPressのテーマで使われているのはmicroformatsの一種である「henty」という方式です。
microformatsは、HTMLのclass属性を使ってマークアップする方式です。
hentryで言うと、最低でも以下3つのclassをページ内で持っていないといけないことになります。

  • entry-title
  • updated
  • author

「entry-content」などoptionalのものはなくても大丈夫そうですね。

WordPressのtwenty twelveやfourteenを使った時にWebマスターツールで発生する「構造化エラー」とは、このhentryの必須3つのプロパティがページ内で定義されていないために起こっている問題です。
(なんで公式テーマでいつまでも直さないのでしょうかね…)

サイトの評価が下がる・・・ということはないらしいけど

一部記事でこのエラーが出てからアクセスが下がったということが書かれているようですが、色々他調べた結果、アクセスが下がったのは他の原因ではないかとされています。
ウェブマスターツールのフォーラムの「構造化データエラーについて」のスレッドで、

「順位下落の要因にはならない」
「その情報が利用されないだけ」
「このフォーラムでも海外のフォーラムでも構造化エラーの問題があまり話題になっていないので、このエラーでアクセスが激減することは無いと思います。」

と書かれていますので、極端に心配する必要は無いようですね。
確かに最後の1文は説得力あります。どうも海外サイトでそのような情報はあまり見当たりません。

ただ・・・エラーが起こっている箇所の情報が正しく検索エンジンに伝えられていないということは事実なので、確かにエラーが起こるとその情報が使えない分アクセスが下がることもありえそうだよなぁ・・・などとも思ったり。
逆にちゃんと直すことで正しく情報が伝わりユーザーが情報を見つけやすくなり、結果としてアクセスが上がる・・・などということもありえそうだよなぁ・・・とも思ったり。
あくまで個人的な印象です。
というわけで何にしろ、エラーは解消した方がよいに越したことはありません。
直しましょう。

直し方

Twenty TwelveとTwenty Fourteenでの直し方をご紹介します。

Twenty Twelveの場合

Twenty Twelveのfunctions.phpに記載されている「twentytwelve_entry_meta」functionをコピーし、子テーマのfuncions.phpに貼り付けます。
そしてtimeタグの「entry-date」クラスが定義されているところに「updated」クラスを挿入。

Twenty Twelveの子テーマのfunctions.php

function twentytwelve_entry_meta() {
    ...(省略)...
    $date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date updated" datetime="%3$s">%4$s</time></a>',
        esc_url( get_permalink() ),
        esc_attr( get_the_time() ),
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date() )
    );
    ...(省略)...
}

直接親テーマを編集するとテーマのバージョンアップが来た時に困りますので、子テーマで定義しましょう。

Twenty Fourteenの場合

[Twenty Fourteenルートフォルダ]/inc/template-tags.phpの「twentyfourteen_posted_on」関数をコピーし、子テーマのfunctions.phpに貼り付けます。
同様にtimeタグの「entry-date」クラスが定義されているところに「updated」クラスを挿入。

Twenty Fourteenの子テーマのfunctions.php

function twentyfourteen_posted_on() {
    if ( is_sticky() && is_home() && ! is_paged() ) {
        echo '<span class="featured-post">' . __( 'Sticky', 'twentyfourteen' ) . '</span>';
    }'<br /><br />';   // Set up and print post meta information.
    printf( '<span class="entry-date"><a href="%1$s" rel="bookmark"><time class="entry-date updated" datetime="%2$s">%3$s</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="%4$s" rel="author">%5$s</a></span></span>',
        esc_url( get_permalink() ),
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date() ),
        esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
        get_the_author()
    );
}

検索エンジンへの反映には少し時間がかかるかもしれませんが、構造化エラーが解消されたかどうかは以下のツールで確認できます。
構造化テストツール

まとめ
ウェブマスターツールでエラーが出るとは盲点ですね。見なければずっと気づかないところでした。
本家で対応して直していただきたいところです。

参考

WordPress構造化エラーは解消しておいたほうがよさそう。Twenty TwelveとTwenty Fourteenで直す!」への1件のフィードバック

  1. ピンバック: Twenty Fourteenの構造化データのエラーを無くす | みなラボ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>