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

Why is my page showing as validated in the W3C validator, but not when using SEO checking tools?

我有一个网页 returns 在 W3C Validator 中被完全验证(并且是绿色的)。

但是当我 运行 在许多 SEO 测试网站中检查相同的 URL 时,它失败并告诉我它失败的错误:

Bad value v:url for attribute rel on element a: The string v:url is not a registered keyword.

此处引用的相关代码是面包屑的架构标记:

<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>

还值得注意的是,标记在 Google's Structured Data Testing Tool 中完全有效。

为什么它在第三方网站检查中未通过验证,但更重要的是,为什么它在实际 W3C 网站中显示为有效?

您的网页有效,这就是 W3C 验证程序告诉您的原因。

但是许多 SEO 工具不理解父 span 标签中的 prefix,因此期望 rel 的值是典型的 link types 之一](备用、nofollow 等...)并且不接受您正在使用的那个 (v:url)。

Nethen -j.riano-’s answer 是正确的 (+1):它是有效的 HTML+RDFa,只是这些 "SEO testing websites" 是坏的(即,它们似乎不 care/recognize 你使用 RDFa)。

所以您当然可以保持这样的标记(并且您可能想考虑停止咨询此类 SEO 检查器)。

如果出于某种原因,您不希望他们报告此 "error",您可以通过更改 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>