Как использовать Schema.org для определения ссылок верхнего / нижнего колонтитула как части определения веб-страницы? - PullRequest
1 голос
/ 06 октября 2019

Я пытаюсь использовать микроданные, чтобы помочь поисковым системам определить все содержимое моего веб-сайта так, как оно предназначено для просмотра.

У меня есть следующая разметка:

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

Нокогда я смотрю на вышеприведенное в Инструмент тестирования структурированных данных , он обнаруживает все, что я задумал, за исключением положения каждого элемента.

Инструмент обнаруживает данные как три разных узла. Поскольку все эти узлы являются частью WebSite или WebPage, я надеюсь как-то связать верхний и нижний колонтитулы внутри узла WebPage.

Как я могу указать, что WPHeader и WPFooter являются частью WebPage узла?

Обновление

Я нашел способ объединить все 3 узла в основной WebPage. Однако для этого я использовал несколько mainContentOfPage или mainEntity. Я не уверен, если 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>

1 Ответ

1 голос
/ 07 октября 2019

Вы можете использовать свойство 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...