SEO для нашего домена страдает

Я вижу несколько проблем в коде

1. Неправильное размещение свойства url

      <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
        <meta itemprop='url' content='/u/elvis'>
        <a href='/u/elvis' itemprop='item'>
          <span itemprop='image'>
            <img width="45" height="45" class="avatar" src="https://sea1.discourse-cdn.com/flex001/user_avatar/forum.reflex.dev/elvis/45/31_2.png">
          </span>
          <span itemprop='name'>
            elvis
              - elvis
          </span>
        </a>
      </div>

itemListElement представляет собой ListItem.

У ListItem есть свойство item, которое является Thing.
ListItem не может иметь свойство url.
Это свойство может быть у Thing. См. ListItem - Schema.org Type

Поэтому строку <meta itemprop='url' content='/u/elvis'> следует перенести на две строки ниже, внутрь значения свойства item.

      <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
        <a href='/u/elvis' itemprop='item'>
          <meta itemprop='url' content='/u/elvis'>
          <span itemprop='image'>
            <img width="45" height="45" class="avatar" src="https://sea1.discourse-cdn.com/flex001/user_avatar/forum.reflex.dev/elvis/45/31_2.png">
          </span>
          <span itemprop='name'>
            elvis
              - elvis
          </span>
        </a>
      </div>

2. Отсутствует свойство position

Здесь ситуация чуть более субъективна. Google указывает здесь Carousel (ItemList) Structured Data | Google Search Central  |  Documentation  |  Google for Developers, что это свойство обязательно.

Таким образом, Google говорит: «это обязательно».
Это означает «Google требует этого», а не «это требуется схемой».

3. Неисправный валидатор Schema.org

Не знаю, что именно он делает, но он не проводит проверку корректно. Он должен был обнаружить проблему №1.

2 лайка