Refatorar dados estruturados/microdados em ItemLists para se tornarem ListItem "simples"

O Discourse usa microdados ItemLists com ListItems em diferentes lugares.

Alguns desses ListItems são apenas referências/links para o objeto real e não representam um objeto por si só. Veja ItemLists:

  • Crawler-View: Category-View → “topic-list”
  • Crawler-View: Topic-View → primeiro post → “crawler-linkback-list”

Como esses ListItems são apenas referências, podemos chamar os ItemLists que os envolvem de “resumo”.
Para um “resumo”, o Google recomenda usar uma Lista “simples”:

Veja: Carousel (ItemList) Structured Data | Google Search Central  |  Documentation  |  Google for Developers

O Google pode ver um ListItem “complexo” com mais propriedades definidas como um objeto em si - introduzindo assim novos objetos na página da Lista em vez de apenas referenciar o objeto(-url) original.


por exemplo Crawler-View: Category-View → “topic-list”

Lista “complexa” - estado atual

<div itemscope="" itemtype="http://schema.org/ItemList">
  <meta itemprop="itemListOrder" content="http://schema.org/ItemListOrderDescending">
  <table class="topic-list">
    [...]
    <tbody class="topic-list-body">
        [...]
        <tr class="topic-list-item">
          <td class="main-link topic-list-data" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
            <meta itemprop="name" content="Remove wrong structured data from every subpage – add &quot;Sitelinks Search Box&quot; to the homepage only">
            <meta itemprop="url" content="https://meta.discourse.org/t/remove-wrong-structured-data-from-every-subpage-add-sitelinks-search-box-to-the-homepage-only/219299">
              <meta itemprop="image" content="https://d11a6trkgmumsb.cloudfront.net/optimized/3X/6/8/68d84f5836ecc992fe21d08e05225eb57e47da38_2_1024x778.png">
            <meta itemprop="position" content="2">
            [...]
        </tr>
        [...]
    </tbody>
  </table>
</div>

Lista “simples” - pseudo código

<div itemscope="" itemtype="http://schema.org/ItemList">
  <table class="topic-list">
    [...]
    <tbody class="topic-list-body">
        [...]
        <tr class="topic-list-item">
          <td class="main-link topic-list-data" itemscope="" itemtype="http://schema.org/ListItem">
            <meta itemprop="url" content="https://meta.discourse.org/t/remove-wrong-structured-data-from-every-subpage-add-sitelinks-search-box-to-the-homepage-only/219299">
            <meta itemprop="position" content="2">
            [...]
        </tr>
        [...]
    </tbody>
  </table>
</div>
2 curtidas

Estou certamente aberto a melhorar as coisas aqui, teria interesse em ver um PR.

1 curtida

PR para Crawler-View: Category-View → “topic-list”

1 curtida

PR para Crawler-View: Topic-View → primeiro post → “crawler-linkback-list”


Estado atual - veja https://search.google.com/test/rich-results/result?id=rZ2rScT4qsLi5K8uwJDtUQ&hl=en

Com o PR implementado - veja https://search.google.com/test/rich-results/result?id=lJrsyBggKH6Cx5FPH65rXg&hl=en

O Google reclassifica o tipo real DiscussionForumPosting - Schema.org Type para seu tipo pai Article:
ThingCreativeWorkArticleSocialMediaPostingDiscussionForumPosting

Os 18 Articles “faltando” são, na verdade, referências apenas a Articles e estão listados no novo Carousel agora.
Por exemplo, veja Kanban Board

1 curtida