为什么我的页面在W3C验证器中显示为已验证,而在使用SEO检查工具时却没有



我有一个网页,它在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属性

  1. property="v:title"移动到仅包含标题的span
  2. 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>

最新更新