"mainEntityOfPage" 和 "CreativeWork" 在 "Organization" 类型的网页上的用法
"mainEntityOfPage" and "CreativeWork" usage on a web page of type "Organization"
我对 mainEntityOfPage
的正确使用有疑问,在这种情况下:
- 站点的主页是
Organization
类型,包含名称、公司描述、phone、地址等
- 在这个页面的底部,我有 3 个摘录到这家公司发表的 3 篇不同的文章。
- 所以,我试图声明
Organization
类型的主页,作为网页的主题。另外,我想使用 Schema.org 声明该公司已经撰写了 3 篇不同的文章,这些文章位于他们自己的网页上。这些片段由文章标题、介绍段落、图片和 "read more" 按钮组成。
我使用以下代码:
<body itemscope itemtype="http://schema.org/Organization" >
<a href="https://testsite.com/index.html" itemprop="url">
<img src="https://testsite.com/img/logo.jpg" itemprop="logo" alt="Company logo" />
</a>
<p itemprop="name">Company name</p>
<p itemprop="description">Company description</p>
<div itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="thumbnailUrl" content="https://testsite.com/img/article-1-picture.jpg" />
<p itemprop="headline">Article 1 headline</p>
<p itemprop="description">Article 1 first paragraph.</p>
<a itemprop="url" href="https://testsite.com/url-article-1.html">Read more</a>
</div>
<div itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="thumbnailUrl" content="https://testsite.com/img/article-2-picture.jpg" />
<p itemprop="headline">Article 2 headline</p>
<p itemprop="description">Article 2 first paragraph.</p>
<a itemprop="url" href="https://testsite.com/url-article-2.html">Read more</a>
</div>
<div itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="thumbnailUrl" content="https://testsite.com/img/article-3-picture.jpg" />
<p itemprop="headline">Article 3 headline</p>
<p itemprop="description">Article 3 first paragraph.</p>
<a itemprop="url" href="https://testsite.com/url-article-3.html">Read more</a>
</div>
</body>
上面的代码生成以下架构:
该代码对结构化数据测试工具有效。
恐怕在这里使用3次mainEntityOfPage
来介绍文章片段会导致搜索引擎错误地认为我的页面类型为CreativeWork
而不是Organization
类型,才是本网页真正的主题。
所以,这段代码告诉搜索引擎该页面是 Organization
,在不同的页面上有 3 篇文章,或者只有 CreativeWork
类型?
您的结构化数据未传达您打算传达的内容。意思是 Organization
是三个 CreativeWork
上的主要实体。
So, I am trying to declare the homepage of Organization
type, being the main topic of the web page.
为此,您需要一个 WebPage
代表主页的项目。
<body itemscope itemtype="http://schema.org/Organization">
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
<link itemprop="url" href="https://example.com/" /> <!-- the canonical URL of your homepage -->
</div>
</body>
I would like to declare using Schema.org that this company has written 3 different articles which are located on their own web pages.
为此,您需要说明公司与文章¹ 之间关系的属性,例如:
请注意,例如,publisher
仅针对一个方向定义(一篇文章有出版商),而不是针对另一个方向(某个组织已发表文章)。² 所以你必须提供这个 属性 在 Article
里,不在 Organization
.
里
<article itemscope itemtype="http://schema.org/Article">
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/ItemPage">
<link itemprop="url" href="https://example.com/url-article-1.html" /> <!-- the canonical URL of the article page -->
</div>
<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<link itemprop="url" href="https://example.com/" /> <!-- the canonical URL of the organization’s homepage -->
</div>
</article>
¹ 如果它们实际上是 articles,您应该使用 Article
类型而不是父类型 CreativeWork
² 微数据(与 RDFa 和 JSON-LD 相比)仅提供了一种非标准化的方式来从另一个方向使用这些属性:see this answer
我对 mainEntityOfPage
的正确使用有疑问,在这种情况下:
- 站点的主页是
Organization
类型,包含名称、公司描述、phone、地址等 - 在这个页面的底部,我有 3 个摘录到这家公司发表的 3 篇不同的文章。
- 所以,我试图声明
Organization
类型的主页,作为网页的主题。另外,我想使用 Schema.org 声明该公司已经撰写了 3 篇不同的文章,这些文章位于他们自己的网页上。这些片段由文章标题、介绍段落、图片和 "read more" 按钮组成。
我使用以下代码:
<body itemscope itemtype="http://schema.org/Organization" >
<a href="https://testsite.com/index.html" itemprop="url">
<img src="https://testsite.com/img/logo.jpg" itemprop="logo" alt="Company logo" />
</a>
<p itemprop="name">Company name</p>
<p itemprop="description">Company description</p>
<div itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="thumbnailUrl" content="https://testsite.com/img/article-1-picture.jpg" />
<p itemprop="headline">Article 1 headline</p>
<p itemprop="description">Article 1 first paragraph.</p>
<a itemprop="url" href="https://testsite.com/url-article-1.html">Read more</a>
</div>
<div itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="thumbnailUrl" content="https://testsite.com/img/article-2-picture.jpg" />
<p itemprop="headline">Article 2 headline</p>
<p itemprop="description">Article 2 first paragraph.</p>
<a itemprop="url" href="https://testsite.com/url-article-2.html">Read more</a>
</div>
<div itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="thumbnailUrl" content="https://testsite.com/img/article-3-picture.jpg" />
<p itemprop="headline">Article 3 headline</p>
<p itemprop="description">Article 3 first paragraph.</p>
<a itemprop="url" href="https://testsite.com/url-article-3.html">Read more</a>
</div>
</body>
上面的代码生成以下架构:
该代码对结构化数据测试工具有效。
恐怕在这里使用3次mainEntityOfPage
来介绍文章片段会导致搜索引擎错误地认为我的页面类型为CreativeWork
而不是Organization
类型,才是本网页真正的主题。
所以,这段代码告诉搜索引擎该页面是 Organization
,在不同的页面上有 3 篇文章,或者只有 CreativeWork
类型?
您的结构化数据未传达您打算传达的内容。意思是 Organization
是三个 CreativeWork
上的主要实体。
So, I am trying to declare the homepage of
Organization
type, being the main topic of the web page.
为此,您需要一个 WebPage
代表主页的项目。
<body itemscope itemtype="http://schema.org/Organization">
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
<link itemprop="url" href="https://example.com/" /> <!-- the canonical URL of your homepage -->
</div>
</body>
I would like to declare using Schema.org that this company has written 3 different articles which are located on their own web pages.
为此,您需要说明公司与文章¹ 之间关系的属性,例如:
请注意,例如,publisher
仅针对一个方向定义(一篇文章有出版商),而不是针对另一个方向(某个组织已发表文章)。² 所以你必须提供这个 属性 在 Article
里,不在 Organization
.
<article itemscope itemtype="http://schema.org/Article">
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/ItemPage">
<link itemprop="url" href="https://example.com/url-article-1.html" /> <!-- the canonical URL of the article page -->
</div>
<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<link itemprop="url" href="https://example.com/" /> <!-- the canonical URL of the organization’s homepage -->
</div>
</article>
¹ 如果它们实际上是 articles,您应该使用 Article
类型而不是父类型 CreativeWork
² 微数据(与 RDFa 和 JSON-LD 相比)仅提供了一种非标准化的方式来从另一个方向使用这些属性:see this answer