0

站点设置

我有一个完全客户端的单页 web 应用程序,它在客户端动态更新和路由。我重定向任何 #! 向无头服务器发出请求,该服务器使用执行的 javascript 呈现请求并将最终的 html 返回给机器人。该网站的负责人还包含:

<meta name="fragment" content="!">

在 Google 工作时获取

使用 Fetch as Google 网站管理员工具,在 Fetch Status 页面中,我可以看到我用来更新 og:title、og:image 和 og:description 的 jQuery 已执行并替换了默认值。一切看起来都不错,如果我将鼠标悬停在 URL 上,屏幕截图是正确的。

但是,对于 Google Plus 按钮,无论 og:title、og:image 和 og:description 标签更新为什么值,共享弹出窗口始终使用默认/初始值。

尝试使用

每次更新站点内容、重新路由和更新 og 元内容后,我都会调用它。

gapi.plusone.render("plusone-div");

我假设如果这种方法适用于 Googlebot,它也应该适用于 +1 按钮。Googlebot 与 +1 用于检索网站元数据的任何内容之间是否有区别?

编辑:传递一个包含 #! 导致“找不到网站”

gapi.plusone.render("plusone-div", {"href" : 'http://www.site.com/#!city/Paris');
4

2 回答 2

2

Google 抓取工具不会在呈现 +1 按钮时呈现代码段,而是在用户单击 +1 按钮(或分享按钮)时呈现。您应该尝试确定您的服务器在此用户启动和 Google 爬虫异步加载期间向 Googlebot 发送的内容。

您可以使用以下cURL命令来模拟它:

curl -A "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google (+https://developers.google.com/+/web/snippet/)" http://myurl.com/path/to/page

您可以通过添加命令将该命令输出到文件-o testoutput.html中。

这将使您了解 Google 抓取工具在遇到您的页面时看到的内容。结构化数据测试工具也可以给你提示。

您可能会看到的是,除非您在静态文件或服务器端进行代码段准备,否则您可能无法获得所需的代码段。

如果您可以提供真实的 URL 进行测试,我可能会提供更具体的反馈。

于 2013-10-17T04:43:37.577 回答
2

Google+ 使用 _escaped_fragment_ 查询参数但不使用等号来获取页面。

所以,它会获取http://www.site.com/?_escaped_fragment而不是https://www.site.com?_escaped_fragment_=

谷歌搜索爬虫仍然使用带等号的片段,这只是针对谷歌加爬虫。

于 2014-01-28T00:34:10.627 回答