如何使用 Schema.org 将 header/footer 链接识别为网页定义的一部分?

How to use Schema.org to identify header/footer links as being part of a WebPage defintion?

我正在尝试利用微数据来帮助搜索引擎定义我网站的所有内容,因为它旨在被查看。

我有以下标记:

<!DOCTYPE html>
<html lang="en" dir="ltr" itemscope itemtype="http://schema.org/WebPage">
<head>
    <link itemprop="url" href="https://example.com/link-to-canonical-url-of-this-page" />
</head>
<body>

    <div itemprop="isPartOf" itemscope itemtype="https://schema.org/WebSite">
        <link itemprop="url" href="https://example.com" />
    </div>
    <header itemscope itemtype="https://schema.org/WPHeader">
        <ul class="list-unstyled mb-0 pb-0 mt-2" itemprop="citation" itemscope="" itemtype="http://www.schema.org/SiteNavigationElement">
          <li>
          <a title="" itemprop="url" href="/some-uri" class="btn btn-link text-white" style="font-size: larger;">
          <strong itemprop="name">Popular Searches</strong>
          </a>
          <meta itemprop="position" content="1">
          </li>
        </ul>
    </header>
    <main role="main">
    </main>

    <footer itemscope itemtype="https://schema.org/WPFooter">
        <ul class="list-unstyled mb-0 pb-0 mt-2" itemprop="citation" itemscope="" itemtype="http://www.schema.org/SiteNavigationElement">
          <li>
          <a title="" itemprop="url" href="/some-uri" class="btn btn-link text-white" style="font-size: larger;">
          <strong itemprop="name">Popular Searches</strong>
          </a>
          <meta itemprop="position" content="1">
          </li>
        </ul>
    </footer>
</body>
</html>

但是当我在 Structured Data Testing Tool 中查看上面的内容时,它会检测到我想要的所有内容,除了每个元素的位置。

该工具将数据检测为三个不同的节点。由于所有这些节点都是 WebSiteWebPage 的一部分,我希望以某种方式 link WebPage 节点内的页眉和页脚。

如何指示WPHeader and WPFooter are part of the WebPage节点?

更新

我找到了一种将所有 3 个节点合并到主 WebPage 中的方法。但是,我使用了多个 mainContentOfPagemainEntity 来完成。我不确定 mainContentOfPage 是否是正确的方法。它有点与名称相矛盾,因为应该始终有一个页面的主要内容。

这是更新后的 HTML 标记:

<!DOCTYPE html>
<html lang="en" dir="ltr" itemscope itemtype="http://schema.org/WebPage">
<head>
    <link itemprop="url" href="https://example.com/link-to-canonical-url-of-this-page" />
</head>
<body itemprop="mainContentOfPage">
    <div itemprop="isPartOf" itemscope itemtype="https://schema.org/WebSite">
        <link itemprop="url" href="https://example.com" />
    </div>
    <header itemprop="mainContentOfPage" itemscope itemtype="https://schema.org/WPHeader">
        <ul class="list-unstyled mb-0 pb-0 mt-2" itemprop="mainEntity" itemscope="" itemtype="http://www.schema.org/SiteNavigationElement">
          <li>
          <a title="" itemprop="url" href="/some-uri" class="btn btn-link text-white" style="font-size: larger;">
          <strong itemprop="name">Popular Searches</strong>
          </a>
          <meta itemprop="position" content="1">
          </li>
        </ul>
    </header>
    <main role="main">
    </main>
    <footer itemprop="mainContentOfPage" itemscope itemtype="https://schema.org/WPFooter">
        <ul class="list-unstyled mb-0 pb-0 mt-2" itemprop="mainEntity" itemscope="" itemtype="http://www.schema.org/SiteNavigationElement">
          <li>
          <a title="" itemprop="url" href="/some-uri" class="btn btn-link text-white" style="font-size: larger;">
          <strong itemprop="name">Popular Searches</strong>
          </a>
          <meta itemprop="position" content="1">
          </li>
        </ul>
    </footer>
</body>
</html>

您可以使用 hasPart 属性.

<html itemscope itemtype="http://schema.org/WebPage">
  <div itemprop="isPartOf" itemscope itemtype="http://schema.org/WebSite">
  </div>

  <header itemprop="hasPart" itemscope itemtype="http://schema.org/WPHeader">
    <nav itemprop="hasPart" itemscope itemtype="http://schema.org/SiteNavigationElement">
    </nav>
  </header>

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

  <footer itemprop="hasPart" itemscope itemtype="http://schema.org/WPFooter">
    <ul itemprop="hasPart" itemscope itemtype="http://schema.org/SiteNavigationElement">
    </ul>
  </footer>
</html>