我有一个网页,它在W3C Validator中返回为完全验证(绿色)。
但当我在许多SEO测试网站上检查同一个URL时,它失败了,告诉我它失败的错误:
元素
a
上属性rel
的值v:url
错误:字符串v:url
不是已注册的关键字。
它所指的相对代码是面包屑的模式标记:
<div id="breadcrumbs">
<span prefix="v: http://rdf.data-vocabulary.org/#">
<span typeof="v:Breadcrumb"><a href="http://www.bellavou.co.uk" rel="v:url" property="v:title"><span class="fa fa-home"><span class="breadcrumb_first">Home</span></span></a></span>
<span class="fa fa-angle-right"></span>
<span typeof="v:Breadcrumb"><a href="http://www.bellavou.co.uk/contact-us/" rel="v:url" property="v:title">Contact Us</a></span>
</span>
</div>
同样值得注意的是,标记在谷歌的结构化数据测试工具中完全有效。
为什么它没有在第三方网站检查中进行验证,但更重要的是,为什么它在实际的W3C网站中显示为有效?
您的网页是有效的,这就是W3C验证器告诉您这一点的原因。
但是许多SEO工具不理解父span
标记中的prefix
,因此期望rel
的值是典型的链接类型之一(alternate、nofollow等),而不接受您正在使用的链接类型(v:url
)。
Nethen-j.riano-的答案是正确的(+1):这是有效的HTML+RDFa,只是这些"SEO测试网站"不好(即,他们似乎不在乎/认可你使用RDFa)。
当然,你可以保持这样的标记(你可能想考虑停止咨询这样的SEO检查器)。
无论出于何种原因,如果您不希望他们报告此"错误",您可以通过更改RDFa:来省略rel
属性
- 将
property="v:title"
移动到仅包含标题的span
- 将
rel="v:url"
重命名为property="v:url"
简化示例:
<div prefix="v: http://rdf.data-vocabulary.org/#">
<span typeof="v:Breadcrumb">
<a property="v:url" href="http://www.bellavou.co.uk/">
<span property="v:title">Home</span>
</a>
</span>
<span typeof="v:Breadcrumb">
<a property="v:url" href="http://www.bellavou.co.uk/contact-us/">
<span property="v:title">Contact Us</span>
</a>
</span>
</div>