【问题标题】:google plus doesn't show meta information snippet from xhtml documentsgoogle plus 不显示来自 xhtml 文档的元信息片段
【发布时间】:2012-09-07 17:47:02
【问题描述】:

我已经为此奋斗了一段时间,但我什至无法弄清楚为什么它不起作用。使用这个简单的 XHTML 测试源代码:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>foobar</title>
        <meta name="description" content="baz" />
    </head>
    <body vocab="http://schema.org/" typeof="Article">
        <h1 property="headline">Some title</h1>
        <p property="description">some arbitrary text</p>
        <p>and even more of it</p>
    </body>
</html>

(用google plus测试,这也是temporarily available here,在这里你可以找到plain html version

如果您将 XHTML 版本的链接粘贴到 g+,您会发现它根本无法解析它。它只会显示链接。然而,HTML 版本似乎已被解析。两者都在rich snippet tester from google 中解析得很好。此外,我们有证据表明我们的 XHTML 网站丰富的 sn-ps 用于 google 搜索。

xhtml 版本的内容类型正确宣布为application/xhtml+xml,我无法找出任何其他问题。我已经尝试省略 xml 声明并使用 XHTML 1.1 严格的文档类型,但没有任何成功。

所以我的问题:

  1. 为什么在 XHTML 版本中 g+ 根本不为这个文件显示 sn-p ,尽管 facebook 显示?
  2. 能否在不删除 XHTML 的情况下以某种方式更正此问题,如果可以,如何解决?

【问题讨论】:

  • 更新:我仍在等待 google 的回复——目前我们通过尝试向 google-plus 客户端提供 HTML 来解决此问题,尽管它宣传与 xhtml 的兼容性。
  • 我也遇到了同样的问题 - 有没有得到解决?如果不是,您如何识别 Google 机器人以提供 HTML?
  • 不,我知道没有其他解决方案。 google bot 可以被识别为类似于 Firefox 版本 6 的东西。您应该可以通过查找 Firefox/6. 来匹配它(也许还有 Gecko/6.——我不记得确切了,而且抽象太多了在 UA 解析和代码库中的解决方法之间确定)在用户代理字符串中。

标签: xhtml google-plus schema.org rdfa


【解决方案1】:

我猜 g+ 使用的解析器可能不支持 XHTML,如果它不能处理 application/xhtml+xml MIME 媒体类型,它可能会退出。上次我听说 g+ 和 Google Rich Snippet 测试工具没有使用相同的工具链,所以很有可能在 Rich Snippet 测试工具中工作的东西可能在其他地方无法工作,但如果它在测试工具中工作,这是一个好兆头.我认为未来 Google 会将其所有产品与丰富的 sn-p 测试工具的功能相结合。

您有什么特别的理由使用 XHTML 而不是 HTML 或 HTML5 作为 text/html?

【讨论】:

  • 除了最近的浏览器搞乱了没有 XHTML 的网站渲染(因为它们将完美的 HTML5 块元素从其他块元素中移出),我更喜欢 XHTML5。此外,我使用的 Web 框架根据用户代理发送的 Accept 标头提供 XHTML 与 HTML,但有一些例外。此外,它在请求中明确 指定application/xhtml+xml;q=1.00。他们不可能那么邪恶,不是吗? (更不用说工具链是 XHTML+XSL,因此提供 HTML 是服务器的额外负担,因为需要转换)
【解决方案2】:

您示例中的微数据似乎不是预期的格式。您可以在以下位置生成必要的微数据:https://developers.google.com/+/plugins/snippet/

注意缺少的 itemprop、itemscope 和类似属性:

<body itemscope itemtype="http://schema.org/Product">
  <h1 itemprop="name">Shiny Trinket</h1>
  <img itemprop="image" src="{image-url}" />
  <p itemprop="description">Shiny trinkets are shiny.</p>
</body>

【讨论】:

  • 我用的是RDFa,在HTML版本中也能完美识别。我不能使用微数据,因为它不适用于 XHTML。也就是说,谷歌支持 RDFa(Lite 和 non-lite),所以这似乎是错误信息。
猜你喜欢
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
相关资源
最近更新 更多