我知道这里有类似问题的答案写得非常好How to implement "mainEntityOfPage" to this specific site?,但我仍然很困惑,可以使用一些帮助。
因此,我正在建立的网站是本地企业的企业网站,它有许多不同的部分 - 其中一个是文章区域(新闻,功能,白皮书等)。
现在,这是我第一次使用Schema,所以请耐心等待。
我已将其设置为整个网站本身位于LocalBusiness
内(通过我页面模板标题内的一些明智的元标记)。一切都在这方面有效,并且它在Google Validator(即结构化数据测试工具)上完美检查。
我的问题是,对于ARTICLE页面,我有一个特殊的内容模板。因此,文章页面本身的内容在<div itemscope itemtype="http://schema.org/Article">
范围内,并且我已经能够成功编码好Article
所需的所有其他元数据。
我唯一担心的是Google建议我拥有mainEntityOfPage
属性。
根据我的理解,此标记会告诉抓取工具,虽然页面上可能有多种主要类型(在本例中为LocalBusiness
和Article
),但优先级最高。
我做对了吗?
如果我这样做,那我该怎么用呢?我是否在meta
内容区域中添加了新的link
或Article
代码?
我看到推荐的方法是添加<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
标记。这是如何运作的?我应该将它放在Article
项目范围内(即在文章内容模板中)吗?那么URL应该指向这个相同的页面?
请帮忙!
答案 0 :(得分:0)
就像Article
可以有name
或description
一样,它可以有mainEntityOfPage
。所以是的,它必须在Article
的范围内,否则当然不会是该项目的mainEntityOfPage
。
要在其范围内添加它,您可以将元素添加为后代,或者如果要将元素放在其他位置,则可以使用itemref
属性。
<article itemscope itemtype="http://schema.org/Article">
<link itemprop="mainEntityOfPage" href="/articles/42" />
</article>
<link id="page-url" itemprop="mainEntityOfPage" href="/articles/42" />
<article itemscope itemtype="http://schema.org/Article" itemref="page-url">
</article>
是的,在文章页面上,mainEntityOfPage
属性的值将是当前的URL。
根据我的理解,此标记会告诉抓取工具,虽然页面上可能有多种主要类型(在本例中为
LocalBusiness
和Article
),但优先级最高。
类似的东西,但不一定是“优先”。 mainEntityOfPage
传达的是:
“此 Article
是 URL下可用页面上描述的主要实体。”
此信息的作用取决于抓取工具。虽然人们通常很容易理解页面上的主要和次要内容(例如,主栏中的全文文章与侧栏中的相关文章),但对于机器人来说这不一定容易。使用mainEntity
/ mainEntityOfPage
解决方案可以在Schema.org中明确传达这一点。