Нове необхідне mainEntityOfPage для структурованих даних про статті


13

Я переглянув структуровані статті, запропоновані Google, і побачив, що є нові необхідні та рекомендовані поля, їх не було на минулому тижні. Ось посилання:

https://developers.google.com/structured-data/rich-snippets/articles

Перша властивість у списку:

  • mainEntityOfPage. @ id (рекомендується)

Я не розумію, якою має бути вартість майна? Що це за властивість? Це посилання на:

.. або посилання на поточну публікацію щоденника, наприклад:

Вони мають це у своєму зразку коду:

<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article" />

Це те, що у мене зараз є, воно ще не відповідає правилам тестового інструменту - я все ще зайнятий додаванням усіх необхідних властивостей і одночасно намагаюся додати і рекомендовані властивості.

<div itemscope itemtype="http://schema.org/BlogPosting">
   <h1 itemprop="headline">
      <a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
   </h1>
   <p>Written by
      <span itemprop="author" itemscope itemtype="http://schema.org/Person">
         <span itemprop="name">Mase Kind</span>
      </span> on
      <time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
      <meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
      <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
         <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
         <meta itemprop="name" content="My Company Name" />
      </div>
   </p>
   <div itemprop="articleBody">
      <p>first article body</p>
   </div>
</div>

Це я також маю в своєму документі:

<body itemscope itemtype="http://schema.org/WebPage">
...
</body>

Чи буде це якимось чином суперечити зразком коду, наданим Google?


Щойно побачив те, що трапилося з моїм сайтом сьогодні вранці, і приземлився на цю тему.
dasickle

Відповіді:


14

mainEntityOfPageВластивість використовується , щоб дати URL сторінки , на якій предмет є основним об'єктом. Це може стати зрозумілішим, якщо ви подивитеся на зворотну властивість mainEntity: це дає головну сутність для сторінки ( див. Приклад ).

Наприклад, для веб-сторінки, яка містить одну публікацію в блозі, ви можете вказати одну з них:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Ці властивості корисні для того, щоб передати основний вміст сторінки (тому що на сторінках можуть бути кілька елементів, наприклад, ItemListіз пов'язаними WebPageелементами, Personописом автора, WebSiteнаданням деяких метаданих тощо).

(Дивіться мою відповідь на переповнення стека для більш детального пояснення.)


Є два способи використання mainEntityOfPage:

  • вкажіть URL-адресу сторінки
  • вставити / посилатися на сторінку сторінки (як правило, а WebPage)

Другий часто не має великого сенсу (ви скоріше використовуєте зворотну властивість mainEntity), і, мабуть, саме тому Google рекомендує / очікує першого.

Для надання URL-адреси ви можете просто використовувати linkелемент:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

Інструмент тестування структурованих даних Google приймає це.

У прикладі статей Rich Snippet Google використовує metaелемент з itemid:

<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

Це недійсний HTML5 + мікродані: Якщо metaелемент має itempropатрибут, він також повинен мати contentатрибут .


Що робити, якщо ми також надамо вміст з URL-адресою в мета, наприклад, <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' /> це підтвердить штраф і не відображатиметься помилок у інструменті перевірки структурованих даних
StarWars

@StarWars: Так, цей спосіб зробити цей metaелемент дійсним. Зауважте, що це contentзначення буде проігноровано, щоб ви могли вказати порожнє значення.
unor

добре, тепер я додав content = "" в метатег.
StarWars

Чому google використовує metaзамість linkсвоїх прикладів? вони підтверджують структурований інструмент тестування даних. Хоча, попередній перегляд інший. Коли linkвін використовується, він має в mainEntityOfPage http://example.com/article-1той час, як у metaньому показано @idта @typeатрибути.
StarWars

@StarWars: Так, саме в цьому різниця: metaспосіб створює новий елемент з типом і URI як ідентифікатором, linkспосіб просто посилається на сторінку. Я поняття не маю, для чого використовується документація Google meta, тим більше, що я вважаю, що linkспосіб простіший.
unor

2

Що це за властивість?

Він доповнює властивості urlта sameAsвластивості, як описано на mainEntityзадньому плані .

Він має ідіосинкратичну назву, оскільки може застосовуватися до всіх типів елементів Thing. Якби воно застосовувалося лише до Articlesнього, можна було б викликати mainTopic/ mainTopicOfArticleі бути більш зрозумілим.

Я не розумію, якою має бути вартість майна?

Очікується, що значення властивості буде типом елемента CreativeWorkабо URLпосиланням, які працюють відповідно до Schema.org. Це означає, що це може бути Articleабо BlogPostingяк ви вже згадали. Однак, якщо ви розробляєте сторінки AMP, значення повинно бути URL-адресою.

Чи буде це якимось чином суперечити зразком коду, наданим Google?

Незважаючи на те, що в Інструменті тестування структурованих даних Google йдеться, їх документація більше не рекомендує використовувати mainEntityOfPageдля сторінок, що не належать до AMP, щоб ви могли пропустити це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.