Предварительный просмотр статей и нетекстовые типы в мета-тегах


Я пытаюсь понять, как реализовать Schema.org верно, и с самого начала я столкнулся с некоторыми проблемами, и я был бы очень рад, если бы вы прояснили это для меня.

Прежде всего, базовая структура главной страницы:

<body>
  <main>
    <article>
      <h2><a href="/title_1.html">Title #1</a></h2>
      <img>
      <p>Excerpt</p>
    </article>
    <article>
      <h2><a href="/title_2.html">Title #2</a></h2>
      <img>
      <p>Excerpt</p>
    </article>
    <article>
      <h2><a href="/title_3.html">Title #3</a></h2>
      <img>
      <p>Excerpt</p>
    </article>
    <footer>Pagination 1..2..3</footer>
  </main>
  <aside>
    <div>banners and widgets</div>
  </aside>
</body>

Таким образом, домашняя страница в основном представляет собой набор предварительных просмотров статей с изображениями, заголовками и коротким абзацем + некоторые дополнительные вещи, которые опущены в примере.

Дело в том, что, если я все правильно понял, я не должен подавать заявление подробная схема с заголовками, изображениями, выдержками, но я должен просто указать URL-адрес, где находится полная статья, верно? Поэтому я сделал что-то вроде этого:

<body itemscope itemtype="https://schema.org/WebPage">
  <main itemprop="mainEntity">
    <article itemscope itemtype="https://schema.org/Article">
      <link itemprop="mainEntityOfPage" href="/title_1.html">
      <h2><a href="/title_1.html" itemprop="url">Title #1</a></h2>
      <img>
      <p>Excerpt</p>
    </article>
    <article itemscope itemtype="https://schema.org/Article">
      <link itemprop="mainEntityOfPage" href="/title_2.html">
      <h2><a href="/title_2.html" itemprop="url">Title #2</a></h2>
      <img>
      <p>Excerpt</p>
    </article>
    <article itemscope itemtype="https://schema.org/Article">
      <link itemprop="mainEntityOfPage" href="/title_3.html">
      <h2><a href="/title_3.html" itemprop="url">Title #3</a></h2>
      <img>
      <p>Excerpt</p>
    </article>
    <footer>Pagination 1..2..3</footer>
  </main>
  <aside>
    <div>banners and widgets</div>
  </aside>
</body>

Инструмент структуры Google всплывает с кучей ошибок: отсутствует автор, заголовок, изображение, дата публикации и так далее. Мало того, что у меня нет этой информации на главной странице, но если я попытаюсь установить ее вручную с помощью мета-тега, я столкнусь с проблемой. тип "автор" может принимать тип "Лицо" или "Организация", но не текст, итак

<meta itemprop="author" content="Author Name">

Будет неверно. Поэтому я понятия не имею, как настроить все поля в соответствии с требованиями Google.

Author: unor, 2017-03-07

1 answers

О ваших HTML+микроданных

Вы не можете использовать свойство mainEntity подобным образом. Он должен принимать элемент (с itemscope) в качестве значения, но вы даете ему текстовое содержимое элемента main в качестве значения. Основной сущностью на вашей странице, по-видимому, является список тизеров статей, поэтому вы можете использовать ItemList тип:

<main itemprop="mainEntity" itemscope itemtype="http://schema.org/ItemList">

Чтобы добавить каждый элемент (т.Е. каждый тизер статьи) в этот список, вам необходимо предоставить дополнительные свойства (см. Свойства типа ItemList страница).

Вы, конечно, могли бы также опустить свойство mainEntity.


Вместо предоставления элемента link для свойства mainEntityOfPage, вы можете использовать существующий элемент a и придать ему оба свойства:

<a href="/title_1.html" itemprop="mainEntityOfPage url">Title #1</a>

Ваши вопросы

Дело в том, что, если я правильно понял, я не должен применять подробную схему к заголовкам, изображениям, выдержкам, но я должен просто указать URL-адрес, где находится полная статья, верно?

Нет. Лучший практика заключается в том, чтобы помечать контент, который вы предоставляете. Поэтому, если тизер содержит изображение, вы можете использовать подходящее свойство и т. Д.

Предоставление только свойства url может иметь смысл, если вас интересует размер файла или если вам нужно отредактировать разметку вручную, и вы предпочитаете обновлять ее только в одном месте (т.Е. На фактической странице статьи).

Инструмент Google Structure всплывает с кучей ошибок

Это не настоящие ошибки. Это всего лишь необходимые свойства для одного из богатых результатов Google. Ничего плохого не произойдет, если вы их не предоставите, за исключением того, что вы, конечно, не получите богатого результата для этой страницы.

Обратите внимание, что Google все равно не показывает результаты, богатые статьями, для тизерных страниц, даже если вы предоставите все необходимые свойства.

Если вы хотите указать автора для тизера, но не хотите показывать имя автора (не очень хорошая практика, но возможно), самый простой способ - использовать span и meta элементы (по умолчанию визуально скрытые):

<span itemprop="author" itemscope itemtype="http://schema.org/Person">
  <meta itemprop="name" content="" />
</span>
 1
Author: unor, 2017-03-08 15:29:21