wordpress

【更新】構造化エラーで確認しておくこと


構造化データをマークアップ

構造化エラーの修正については一番下に記載しています。まず、構造化データのマークアップについて記載します。

「構造化データのマークアップ」とは、ブログの記事にどのような情報があるかをマークアップすることです。誰がいつ、どのような事を書いたかを伝えることは重要です。

マークアップとは

人の言葉が認識できない機械に対しマークアップ言語で様々な情報を記述し、認識できるようにすること。例えば、HTMLはタグを要素で囲むことによって、要素をマークアップします。

構造化データとは?

ブログの記事にどのような情報があるかをGoogleなどの検索エンジンに伝えるためのデータです。

microdata マイクロデータ

検索エンジンに送られる情報をmicrodataと言います。microdataは以下の5つの属性からなっています。

  • itemsope ココからココまでがマイクロデータであることを示す
  • itemtype マイクロデータのタイプ
  • itemprop マイクロデータのプロパティ
  • itemref
  • itemid

itempropの例

itemprop はマイクロデータのプロパティ(項目)です。

  • itemprop=”name” 名前・タイトル
  • itemprop=”author” 著者
  • itemprop=”description”  概要

<title itemprop=”name”>タイトル</title>
<meta itemprop=”description” content=”概要テキスト” />
<link itemprop=”author”href=”*******” />

schema.org スキーマとは?

検索エンジン、Google、Microsoft、Yahoo! が、ユーザーが求めている情報を適切に検索結果に表示できるように、共同で進めているマークアップの方法です。schema.orgを使うことにより、検索エンジンに、より細かく言葉の意味を伝えることができ、それにより検索エンジンは有用な情報を検索する人々に提供することができます。schema.org のマークアップの書き方はどのようなものでしょうか?

1.schema.org で構造化データをマークアップ

検索エンジンにschema.org で構造化データを伝えることはわかりましたが、実際どのように伝えるのでしょうか?

schema.orgの書き方 属性itemscopeとitemtypeとitemtype

属性itemscopeとitemtypeとitemtypeの使い方

  • ココからココまでがマイクロデータであることを示すitemscope属性で記載します。
  • itemtype属性でマイクロデータのタイプを示します。
  • itemprop属性で項目を示します。

例 ココからココまでは評価です。著者はももたです。

<div itemscope itemtype=”//schema.org/Review”>

~レビュー(評価)~

<span itemprop=”author”>ももた</span>

</div>

上記の説明

  • itemtype属性でマイクロデータのタイプの種類はURLで示します。(下記、「評価」「映画」「本」「その他」参照)
  • itemprop属性(項目)は<span>~<span>タグで記載します。著者はももたであることを示しています。
  • //schema.org/Reviewの項目はschema.org Reviewで確認できます。

itemtype属性でマイクロデータのタイプの種類はURLで示す。

評価 //schema.org/Review
映画 //schema.org/Movie
本 //schema.org/Book

その他様々なタイプがあります。

  • 参照→//schema.org/docs/schemas.html
  • 日本語訳→//schema-ja.appspot.com/docs/schemas.html

2.microfomats.orgで構造化データをマークアップ

microfomats.orgは、イベントの情報、連絡先の詳細、場所などをマークアップする方法です。class属性やrel、rev属性を使います。マークアップにより、オンラインデータを収集するアプリケーション(ウェブクローラ)や電子メールクライアントやスケジュール管理ソフトなどに情報を伝えることができます。

microfomatsの構成

class属性の要素は「hCard」や「hentry」などがあります。

  • hCard 連絡先情報
  • hentry エントリーの情報
  • hCalendar イベント情報
  • hAtom 標準のHTML内にAtomフィードをつくる

その他→microformats.org/wiki/Main_Page#Exploratory_Discussions

Atomフィード

  • コンテンツを配信するフォーマットで、更新情報の配信などを行う
  • ウェブ上のコンテンツを編集するフォーマットで、ウエブ上のコンテンツ(ブログなど)をディスクトップ上やモバイル機器で編集などが可能となる

hCard 連絡先情報

hCardのclass名は vcard で、hCardの必須プロパティは「fn」か「n」です。

  • fn 名前(family-name)

  • n 名前

その他任意のプロパティとして「url」や「tel」「photo」などがあります。

例 hCard(連絡先情報)の場合

hCardのXMDPプロファイル(XHTMLメタデータ・プロファイル)は//microformats.org/profile/hcardです。

hcard

  • itemtype //microformats.org/profile/hcard
  • fn ゆきを
  • url //~省略~
  • n itemtype //microformats.org/profile/n

<span class=”vcard”>
<a class=”url fn” href=//~省略~>ゆきを</a>
</span>

hentry エントリーの場合

hentryの必須プロパティ

  • entry-title タイトル
  • updated 更新日時、デザイン、パターンを記載する
  • author 著者 hCard

その他任意のプロパティとして、entry-content(内容)、entry-summary(要約)などがあります。

ウェブマスターツールの構造化データのエラーの理由

WordPressのテーマにpost_class()が使われています。

WordPress テーマ作成者が投稿のスタイル付けを行うために、細かな CSS 制御オプションを利用したい場合、post_class() 関数を利用できます。ループ内の HTML タグに、例えば <div <?php post_class(); ?> > のように post_class 関数を含めると、div タグにいろいろな投稿関連のクラスを表示・追加できます。

post_class()を利用し、post_class 関数を含めると、hentryがclassの要素として追加されます。hentryの必須プロパティは、entry-title(エントリータイトル)とupdated(更新日)とauthor(著者)です。hentryは追加されるのに、必須プロパティは追加されません。この必須プロパティがないためにエラーが起きます。

エラーの内容
Missing required field “entry-title”
Missing required field “updated”
Missing required hCard “author”

ウェブマスターツールの構造化データのエラーの対処

エラーの理由がわかったところで、どう対処するかです。必須プロパティをsingle.phpに記述します。

  • class=”entry-title” を追加
  • updatedを追加

entry-title がありません

<h1><?php echo get_the_title(); ?></h1>

class=”entry-title” を追加します。

/* class=”entry-title”を追加する */

<h1 class=”entry-title”><?php echo get_the_title(); ?></h1>

updated がありません

Microformatsでは投稿日(entry-date)ではなく、更新日(updated)が必須プロパティです。

<time class=”entry-date” datetime=”<?php the_time(‘c’) ;?>”><?php the_time(‘Y/n/j’) ;?></time>

更新日の記載です。

<time class=”updated”><?php the_modified_date(‘Y-n-j’); ?></time>

updatedを追加します。

/* updatedを追加 */

<time class=”updated” datetime=”<?php echo get_the_modified_date( ‘Y-m-d’ ) ?>”>

参考

とてもわかりやすく説明されてます。

参考 //www.crystalsnowman.com/?p=1214

author がありません

authorの書き方

<span class=”vcard author”><span class=”fn”>著者</span></span>

class fnかnは必須プロパティです。

<span class=”vcard”>
<a class=”url fn” href=//~省略~>ゆきを</a>
</span>

著者

<span class=”author”><?php the_author(); ?></span>

この部分を以下に書き換えます。

<span class=”post-author vcard author”>
<span class=”fn”>
<a href=”<?php echo get_author_posts_url( get_the_author_meta( ‘ID’ ) ); ?>”><?php the_author(); ?></a>
</span>
</span>

Search Consoleで構造化エラー対処前に注意すべきこと

構造化エラー、事前に確認することがあります。

wordpress

インデックスされているか確認します。

noindexを確認

カテゴリーのページのソースは「noindex」になっています。

wordpress

1111

All in One SEOを確認

wordpress

カテゴリーでは、「noindex」はデフォルトになっています。

構造化エラーの修正してもnoindex(indexしなくてよい)になっていると、エラーの表示は消えません。SEO的にはカテゴリーをindexする方が良いのかnoindexの方が良いのかわかりませんが、エラー修正後、indexされなければエラーは消えません。

※短時間で閉じられてしまうページ(不必要なページ)はindexされない方がいいのかもしれません。充実したページをindexしてもらう方が良い気がします。デフォルトでは、カテゴリーはnoindexです。

その後の経過、このエラーはなくなりました。


About ゆきを

ジャンルに拘らずに、好きなことを書いてます。 趣味であったり、覚書きであったりします。 むずかしい言葉を使わず、流行りの言葉を使わないように書いてます。