Nowa wymagana mainEntityOfPage dla danych o strukturze artykułów


13

Przejrzałem dane strukturalne artykułu zaproponowane przez Google i zobaczyłem, że istnieją nowe wymagane i zalecane pola, których nie było w zeszłym tygodniu. Tutaj jest link:

https://developers.google.com/structured-data/rich-snippets/articles

Pierwsza właściwość na liście to:

  • mainEntityOfPage. @ id (zalecane)

Nie rozumiem, jaka musi być wartość nieruchomości? Co to za właściwość? Czy to link do:

.. lub link do aktualnego postu na blogu, taki jak:

Mają to w swoim przykładowym kodzie:

<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article" />

To, co obecnie mam, nie jest jeszcze zgodne z zasadami narzędzia testowego - wciąż jestem zajęty dodawaniem wszystkich wymaganych właściwości, a jednocześnie próbuję tam również dodać zalecane właściwości:

<div itemscope itemtype="http://schema.org/BlogPosting">
   <h1 itemprop="headline">
      <a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
   </h1>
   <p>Written by
      <span itemprop="author" itemscope itemtype="http://schema.org/Person">
         <span itemprop="name">Mase Kind</span>
      </span> on
      <time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
      <meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
      <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
         <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
         <meta itemprop="name" content="My Company Name" />
      </div>
   </p>
   <div itemprop="articleBody">
      <p>first article body</p>
   </div>
</div>

Mam to również w swoim dokumencie:

<body itemscope itemtype="http://schema.org/WebPage">
...
</body>

Czy w jakikolwiek sposób będzie to kolidować z próbką kodu dostarczoną przez Google?


Właśnie zobaczyłem to samo, co stało się dziś rano na mojej stronie i wylądowałem na tym wątku.
dasickle

Odpowiedzi:


14

mainEntityOfPageWłaściwość jest używana, aby dać adres URL strony, na której rzecz jest głównym podmiotem. Może stać się jaśniejsze, jeśli spojrzysz na właściwość odwrotną mainEntity: daje to główny byt dla strony ( patrz przykład ).

Na przykład dla strony internetowej, która zawiera pojedynczy post na blogu, możesz podać jeden z tych:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Te właściwości są przydatne do przekazania głównej treści na stronie (ponieważ strony mogą zawierać wiele elementów, np. Elementy ItemListpokrewne WebPage, Personopis autora, WebSitepodanie niektórych metadanych itp.).

( Bardziej szczegółowe wyjaśnienie znajduje się w mojej odpowiedzi dotyczącej przepełnienia stosu ).


Istnieją dwa sposoby użycia mainEntityOfPage:

  • podaj adres URL strony
  • osadzić / odwołać się do elementu strony (zazwyczaj a WebPage)

Drugi często nie ma większego sensu (wolisz użyć właściwości odwrotnej mainEntity) i prawdopodobnie z tego powodu Google poleca / oczekuje pierwszego.

Aby podać adres URL, możesz po prostu użyć linkelementu:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

Narzędzie do testowania danych strukturalnych Google akceptuje to.

W przykładzie fragmentu rozszerzonego artykułów Google używa zamiast tego metaelementu z itemid:

<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

To jest nieprawidłowe Mikrodane HTML5 +: Jeśli metaelement ma itempropatrybut, musi również mieć contentatrybut .


co jeśli dostarczymy również treść z adresem URL w meta, np. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' /> Sprawdza poprawność i nie pokazuje błędu w narzędziu do testowania danych strukturalnych
StarWars

@StarWars: Tak, w ten sposób można uczynić ten metaelement prawidłowym. Pamiętaj, że contentwartość zostanie zignorowana, więc możesz podać pustą wartość.
Unor

okej, teraz dodałem content = "" do metatagu.
StarWars,

Dlaczego Google używa metazamiast linkprzykładów? oba sprawdzają się w narzędziu do testowania danych strukturalnych. Chociaż podgląd jest inny. Kiedy linkjest używany, ma mainEntityOfPage http://example.com/article-1podczas gdy metapokazuje @idi @typeatrybuty.
StarWars,

@StarWars: Tak, właśnie taka jest różnica: metasposób tworzy nowy element z typem i identyfikatorem URI jako identyfikatorem, linksposób po prostu prowadzi do strony. Nie mam pojęcia, dlaczego korzysta z dokumentacji Google meta, zwłaszcza że uważam, że linksposób jest prostszy.
lub

2

Co to za właściwość?

Jest to uzupełnienie urli sameAswłaściwości, jak opisano w mainEntitytle .

Ma osobliwą nazwę, ponieważ może być stosowana do wszystkich elementów typu Thing. Gdyby miał zastosowanie tylko do Articlesniego, mógłby zostać nazwany mainTopic/ mainTopicOfArticlei był bardziej przejrzysty.

Nie rozumiem, jaka musi być wartość nieruchomości?

Oczekuje się, że wartość właściwości będzie elementem typu CreativeWorklub URLodnośnikiem działającym zgodnie ze Schema.org. Oznacza to, że może to być również Articlelub, BlogPostingjak wspomniałeś. Jeśli jednak budujesz strony AMP, wartością powinien być adres URL.

Czy w jakikolwiek sposób będzie to kolidować z próbką kodu dostarczoną przez Google?

Pomimo tego, co twierdzi Narzędzie do testowania danych strukturalnych Google, ich dokumentacja nie zaleca już korzystania ze mainEntityOfPagestron spoza AMP, więc możesz je pominąć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.