ItemLists의 구조화 데이터/마이크로데이터를 "단순한" ListItem으로 리팩토링

Discourse는 다양한 위치에 microdata ItemList와 ListItem을 사용합니다.

이중 일부 ListItem은 실제 객체에 대한 참조/링크일 뿐, 자체적으로 객체를 표현하지 않습니다. ItemList 예시:

  • Crawler-View: Category-View → “topic-list”
  • Crawler-View: Topic-View → 첫 번째 게시물 → “crawler-linkback-list”

이 ListItem들이 단순 참조이기 때문에, 이를 감싸고 있는 ItemList를 "요약(summary)"이라고 부를 수 있습니다.
"요약"의 경우 Google은 “단순(simple)” List 사용을 권장합니다:

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

Google은 더 많은 속성이 설정된 “복잡한(complex)” ListItem을 자체 객체로 인식할 수 있으며, 이는 원본 객체(-url)에 대한 참조가 아니라 List 페이지에 새로운 객체를 도입하는 결과를 초래할 수 있습니다.


예: Crawler-View: Category-View → “topic-list”

“복잡한” List - 현재 상태

<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://global.discourse-cdn.com/meta/optimized/3X/6/8/68d84f5836ecc992fe21d08e05225eb57e47da38_2_1024x778.png">
            <meta itemprop="position" content="2">
            [...]
        </tr>
        [...]
    </tbody>
  </table>
</div>

“단순한” List - 의사 코드

<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>

여기서 개선할 부분이 있다면 당연히 환영합니다. PR을 올려주시면 확인해 보겠습니다.

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

Crawler-View용 PR: Topic-View → 첫 번째 게시물 → “crawler-linkback-list”


현재 상태 - https://search.google.com/test/rich-results/result?id=rZ2rScT4qsLi5K8uwJDtUQ&hl=en 참조

PR 적용 후 - https://search.google.com/test/rich-results/result?id=lJrsyBggKH6Cx5FPH65rXg&hl=en 참조

Google은 실제 유형인 https://schema.org/DiscussionForumPosting을 상위 유형 Article으로 재분류합니다:
Thing → CreativeWork → Article → SocialMediaPosting → DiscussionForumPosting

“누락된” 18개의 Article은 실제로 Article에 대한 참조일 뿐이며, 이제 새로운 Carousel에 나열됩니다.
예를 들어 Kanban Board 참조