web-dev-qa-db-ja.com

構造化データを使用する個人ブログが発行者の検証に失敗する

私は個人的なブログで、個人的なブログを運営しています。ブログの背後には組織も利益もありません。

Googleウェブマスターツールは、評価を改善するために構造化データを追加するよう指示しています。申し分なく、公正です。そこで、提供されている構造データマークアップヘルプツールを使用します。私はすべてのボックスにチェックマークを付け、要求するものすべてにマークを付け、何も空のままにしません。

次に、構造化データ検証ツールを使用しますが、エラーがあることがわかります。これらのほとんどはすぐに自分自身を修正しました。 (しかし、奇妙なことに、マークアップヘルプツールはこれらの追加を要求しませんでした。)

とにかく、必須フィールドpublisherに来ると、Schema.orgによるとPersonまたはOrganization、自分で試してみて(Person)、Googleバリデーターはそれが間違っていると教えてくれます。

したがって、publisherは必須であり、Organizationでなければなりません。

偽の組織を作り、そこにあるふりをするべきですか? (Googleが偽物を好まないことを経験から知っているので、この方法は危険なようです。)

または、Schema.orgのルールに従って、Googleバリデーターからの指示を無視する必要があります。publisherPersonになり、それを維持できますか?

 <article itemscope itemtype="http://schema.org/Article" itemref="_author2" class="panel panel-default">
  <header class="panel-heading">
    <h2 class="panel-title"><a href="/2017-10-26/gronsakslasagne"><span itemprop="headline name">Grönsakslasagne</span></a><br><small itemprop="datePublished" content="2017-10-26T08:43:00">2017-10-26 08:43:00</small></h2>
  </header>
  <div class="panel-body">
    <p itemprop="articleBody"><img itemprop="image" src="/img/blog/thumbnails/63-gronsakslasagne-vvdb-se.jpg" alt="Grönsakslasagne vvdb.se" class="pull-left img thumb">[SNIP OUT SOME TEXT]</p>
    <p class="pull-right"><a itemprop="url" href="/2017-10-26/gronsakslasagne">Läs mer <i class="fa fa-arrow-right"></i></a></p>
  </div>
</article>

<!-- Further down -->

VDB.se v 1.4 by <span id="_author2" itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name publisher">Per Jansson</span></span>

ご覧のとおり、最後のpublisheritempropnameとともに追加し、それがうまくいくと考えていますが、Googleウェブマスターツールは「いいえ、いいえpublisherはできないPerson "になります。

2
Per Jansson

構造データマークアップツールを使用してブログを確認しましたが、問題を解決する方法を次に示します。

構造化データスキーママークアップは、基本的にコーディングの形で実世界のエンティティをマップします。 Googleはページ上のコンテンツの「意味」を理解します。

これが、スキーママークアップがauthorpublisherを区別する理由です。

「author」をタイプ「Person」、「publisher」をタイプ「Organization」とみなします。

それは実際には現実に当てはまります。例えば。小説は著者によって書かれ、組織によって発行されます。

schema.orgは、「publisher」が「Person」のタイプであるとは言っていません。それがキャッチです

だからここにあなたの解決策があります:

Googleは 記事の構造化データマークアップ の例を提供しています。マークアップを貼り付けています。

<div itemscope itemtype="http://schema.org/NewsArticle">
  <meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>
  <h2 itemprop="headline">Article headline</h2>
  <h3 itemprop="author" itemscope itemtype="https://schema.org/Person">
    By <span itemprop="name">John Doe</span>
  </h3>
  <span itemprop="description">A most wonderful article</span>
  <div itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
    <img src="https://google.com/thumbnail1.jpg"/>
    <meta itemprop="url" content="https://google.com/thumbnail1.jpg">
    <meta itemprop="width" content="800">
    <meta itemprop="height" content="800">
  </div>
  <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
    <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
      <img src="https://google.com/logo.jpg"/>
      <meta itemprop="url" content="https://google.com/logo.jpg">
      <meta itemprop="width" content="600">
      <meta itemprop="height" content="60">
    </div>
    <meta itemprop="name" content="Google">
  </div>
  <meta itemprop="datePublished" content="2015-02-05T08:00:00+08:00"/>
  <meta itemprop="dateModified" content="2015-02-05T09:20:00+08:00"/>
</div>

最初の質問で説明したように、パブリッシャーに名前を付けたい場合は、最初に次のように組織タイプのパブリッシャーを宣言する必要があります

<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">

次に、発行者の名前を追加します。 (Googleをあなたの価値に置き換えてください)

  <meta itemprop="name" content="Google">

タイプ「Person」を宣言する場合は、次のように「publisher」ではなく「author」を使用する必要があります(「John Doe」を自分の値に置き換えてください)

<h3 itemprop="author" itemscope itemtype="https://schema.org/Person">
<span itemprop="name">John Doe</span>
2
Bhargav Joshi

Schema.orgの観点からすると、Personプロパティの値としてpublisherを使用することはまったく問題ありません。ご指摘のとおり、 publisher property では、値としてOrganizationアイテムまたはPersonアイテムのいずれかが必要です。

GoogleのSDTTはエラーとして報告しますが、Schema.orgまたはMicrodataの実際のエラーではありません。 SDTTが本当に言いたいこと(そうするのはうまくいきません):Google検索で機能Xを取得するには、Yを行う必要があります。

あなたの場合、それは Articles rich result についてです。そのドキュメントは言う:

publisher | Organization; 必須(AMP)、ignored(非AMP)

これが意味するもの:

  • AMP HTMLページの場合、ArticleOrganizationpublisherである場合にのみ、Google検索で記事のリッチな結果を取得できます。

  • AMP以外のHTMLページの場合、publisherの有無にかかわらず、Google検索で記事のリッチな結果を取得できます。1つあれば、それは誰でも構いません。

SDTTの要件をすべて満たすことができない場合、必要に応じて構造化データを保持しても問題ありません。このようなエラーは問題ありません。

Personpublisherとして提供する場合

マークアップに問題があります:publisherプロパティの値としてPersonを指定する代わりに、Personの下にpublisherプロパティを指定しています。

の代わりに

<span id="_author2" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <span itemprop="name publisher">Per Jansson</span>
</span>

そのはず

<span id="_author2" itemprop="author publisher" itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">Per Jansson</span>
</span>
0
unor