Googleウェブマスターツールの構造化データのエラーを回避

Googleウェブマスターツールの構造化データの画面を確認すると、大量にエラーが出力されていました。Twenty ThirteenのデフォルトのHTML出力が、HTMLの規約に沿っていない部分があるためとのことですが、きちんと対応するのは難しい模様。とりあえず、Googleウェブマスターツールで検知した構造化データのエラーを回避を試みます。
using_webmastertool_031

はじめに

Googleウェブマスターツールで検知された、以下の構造化データのエラーを回避します。
・「updatedがありません」
・「authorがありません」
・「ノードが空です」
※構造化データテストツールを使用すると、「updatedがありません」、「ノードが空です」ではなく、以下の「ノードが空です」のエラーが表示されます。
using_webmastertool_034
以下のテンプレートを変更して、構造化データのエラーを回避します。
・テンプレート(functions.php)の変更
・テンプレート(page.php)の変更

テンプレート(functions.php)の変更

テンプレート「functions.php」を変更して、固定ページと投稿ページで作成日と修正日を出力するようにします。修正日は、class名を「updated」にして出力します。

<修正日を表示>

	if ( ! has_post_format( 'link' ) && ( 'post' == get_post_type() || 'page' == get_post_type() ) ){
		echo '作成日 :';
		twentythirteen_entry_date();
		echo '<br />';
		echo '修正日 :';
		twentythirteen_entry_update();
	}

<作成者を修正>※クラス名「url fn n」を「url fn」に修正します。

	// Post author
	if ( 'post' == get_post_type() || 'page' == get_post_type() ) {
		echo '<br />';
		echo '作成者 :';
		printf( '<span class="author vcard"><a class="url fn" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
			esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
			esc_attr( sprintf( __( 'View all posts by %s', 'twentythirteen' ), get_the_author() ) ),
			get_the_author()
		);
		echo get_the_author();
	}

<修正日を取得>※twentythirteen_entry_date関数をコピーして、twentythirteen_entry_update関数を新規に作成します。修正日は、get_the_modified_date関数で取得します。

if ( ! function_exists( 'twentythirteen_entry_update' ) ) :
/**
 * Print HTML with update information for current post.
 *
 * Create your own twentythirteen_entry_update() to override in a child theme.
 *
 * @since Twenty Thirteen 1.0
 *
 * @param boolean $echo (optional) Whether to echo the date. Default true.
 * @return string The HTML-formatted update date.
 */
function twentythirteen_entry_update( $echo = true ) {
	if ( has_post_format( array( 'chat', 'status' ) ) )
		$format_prefix = _x( '%1$s on %2$s', '1: post format name. 2: date', 'twentythirteen' );
	else
		$format_prefix = '%2$s';

	$date = sprintf( '<span class="updated"><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a></span>',
		esc_url( get_permalink() ),
		esc_attr( sprintf( __( 'Permalink to %s', 'twentythirteen' ), the_title_attribute( 'echo=0' ) ) ),
		esc_attr( get_the_modified_date( 'c' ) ),
		esc_html( sprintf( $format_prefix, get_post_format_string( get_post_format() ), get_the_modified_date() ) )
	);

	if ( $echo )
		echo $date;

	return $date;
}
endif;

テンプレート(page.php)の変更

固定ページでも文書情報(作成日/修正日/作成者等)を表示するように、テンプレート「page.php」にtwentythirteen_entry_meta関数を追加します。

					<footer class="entry-meta">
						<hr class="hr-article-info-top" />
						<div class="article-info">
							<?php twentythirteen_entry_meta(); ?>
							<?php edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); ?>
						</div><!-- .article-info -->
						<hr />
					</footer><!-- .entry-meta -->

結果は・・・

以下のグラフの赤線が示す通り、時間をかけてゆっくりと減っていきました。ページがクロールされるタイミング減っていくようです。
using_webmastertool_035

おわりに

文書情報(作成日/修正日/作成者等)の出力を修正して、Googleウェブマスターツールで検知された、構造化データのエラーを回避しました。

関連記事(目次)

  1. インターネットで情報発信!

コメント記入欄

※メールアドレス(任意入力)は非公開です。コメントはお気軽にどうぞ!

内容を確認して、「コメント送信」ボタンを押してください。

post date*

※日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)