我有一个关于RDFa和Microdata的快速问题.
我目前的理解是RDFa是在HTML中实现的RDF,但对于像我这样的新开发人员来说很复杂,Microdata看起来非常容易和快速实现.
围绕这两种语义格式的其他优点和缺点是什么?
即使在谷歌搜索几个小时后,我还没有找到一个明确和更新的答案,所以这里:
我知道Microdata和JSON-LD的优点和缺点.我也知道Microdata是从W3C(以及因此来自浏览器的API)中删除的.我不确定的是它将如何影响Microdata专门用于SEO目的的任何网站.
Google是否支持SERP的JSON-LD?它建议使用什么格式?我正在寻找更新的答案 - 不是从2011年或2012年(如果它们仍然适用,请随时发布).
什么更适合具有大量内容的动态网站(想想:50000个视频,图像等):JSON-LD,Microdata还是RDFa?为什么?
我在电子商务产品页面上同时拥有Micro Data和JSON-LD,描述了同样的事情(在我的情况下是产品).由于超出此问题范围的原因,我无法删除这两种格式中的任何一种.我想知道:
这对谷歌来说是个问题吗?结构化数据测试工具确实显示两个项目(产品)而不是一个.
如果一个属性(假设产品的名称)在两种格式之间略有不同,那么两种格式中的任何一种,例如JSON-LD是否优先?
到目前为止,HTML5 似乎几乎不支持使用 RDFa 或微格式进行语义标记。我已经阅读了一些内容,但是如果我现在开始使用 HTML5,我可以做些什么来支持语义标记(例如微格式)和语义 Web 技术(例如 RDFa)?如果我现在想利用这些技术,我应该坚持使用 XHTML 吗?
下面的微数据标记效果很好,谷歌的结构化数据测试工具显示了一个CollectionPage
和WebSite/WebPage
作为孩子。
<body itemscope itemtype="https://schema.org/CollectionPage">
<span itemscope itemtype="https://schema.org/WebSite" itemprop="hasPart">
<a href="https://springfield-xxxx.us" itemprop="url">Official site of Springfield</a>
</span>
<span itemscope itemtype="https://schema.org/WebPage" itemprop="hasPart">
<a href="https://facebook.com/group/XXXX" itemprop="url">Local events in Springfield</a>
</span>
<span itemscope itemtype="https://schema.org/WebPage" itemprop="hasPart">
<a href="https://news.us/city/springfield-xxxx" itemprop="url">Latest news in Springfield</a>
</span>
</body>
Run Code Online (Sandbox Code Playgroud)
但是,当我添加 JSON-LD 时,Google 的结构化数据测试工具会分别显示对象CollectionPage
,WebPage/WebSite
就像它们没有连接一样。这是一个带有 JSON-LD 的示例:
<!DOCTYPE html>
<html>
<head>
<script type="application/ld+json">
{
"description": "...",
"author": {"@type":"Person", "name": "Homer J. Simpson"},
"@type": "CollectionPage",
"url": "http://my-springfield.us/sites",
"publisher": {
"@type": "Organization",
"logo": …
Run Code Online (Sandbox Code Playgroud) 因此,我刚刚遇到了schema.org的组织类型的“ sameAs”,它使您可以链接自己的社交资料。我的问题是我的网址和徽标位于一个位置(页眉),而社交链接位于另一个位置(页脚)。
<div class="container custom-top" itemscope itemtype="http://schema.org/Organization">
<a class="custom-logo" itemprop="url" href="/">
<img itemprop="logo" alt="sitename" height="40" src="/assets/img/logo-main.png" width="161">
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我的社交链接与以下位置完全不同:
<ul class="list-inline">
<li>
<a href="https://www.facebook.com/site" data-window="external" data-placement="top" rel="tooltip" title="Facebook"></a>
<a href="https://twitter.com/site" data-window="external" data-placement="top" rel="tooltip" title="Twitter"></a>
<a href="https://plus.google.com/site" data-window="external" data-placement="top" rel="tooltip publisher" title="Google+"></a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在一个完美的世界中,诸如此类的东西都是物品类型的孩子,但是由于我的设计,这是不可能的。
<span itemscope itemtype="http://schema.org/Organization">
<a itemprop="url" href="/">
<img itemprop="logo" src="/assets/img/logo-main.png"
</a>
<a itemprop="sameAs" href="http://www.facebook.com/your-company">FB</a>
<a itemprop="sameAs" href="http://www.twitter.com/YourCompany">Twitter</a>
</span>
Run Code Online (Sandbox Code Playgroud)
因此,除了将所有内容放在同一位置之外,是否还有其他方法可以解决此问题?我了解itemref
并链接了项目,但在使用Google的结构化数据测试工具进行测试时无法使其正常工作。
请不要告诉我让div保持打开状态,并且基本上将整个页面与单位itemtype一起使用。我希望这有一个干净的方法。Schema.org不能期望所有内容都能在每个网页上很好地聚集在一起。
最近,我读了很多有关使用schema.org标记结构化数据的信息,第一个问题是,建议完全使用它json-ld
吗?因为它似乎是新的,尚未得到完全支持。我的第二个问题是在主页或存档页面(通常是其中包含多个文章或产品或博客文章的页面)上,我如何使用schema.org?例如这样的页面:
<!DOCTYPE html>
<html>
<head>
<title>Blog Home Page</title>
</head>
<body>
<h1>Blog title</h1>
<!-- this needs schema.org -->
<article>
<h2>Article title</h2>
Writtem by <span>Authorname</span> on <time datetime="">21 april</time>
<p>
Some text
</p>
Rated :
<div class="star-rate">
<span class="star full">
<span class="star full">
<span class="star full">
<span class="star half">
<span class="star empty">
</div>
By <span>5</span> users.
</article>
<article>
<h2>Article title</h2>
Writtem by <span>Authorname</span> on <time datetime="">21 april</time>
<p>
Some text
</p>
Rated :
<div class="star-rate">
<span class="star full">
<span class="star …
Run Code Online (Sandbox Code Playgroud)