我有一个完全客户端的单页webapp,它在客户端动态更新和路由。我重定向任何#!请求无头服务器,使用javascript执行呈现请求,并将最终的html返回给机器人。该网站的负责人还包含:
<meta name="fragment" content="!">
使用Fetch as Google网站管理员工具,在“获取状态”页面中,我可以看到用于更新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');
答案 0 :(得分: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抓取工具在遇到您的网页时所看到的内容。 structured data testing tool也可以给你提示。
您可能会看到的是,除非您在静态文件或服务器端进行代码段准备,否则您可能无法获得所需的代码段。
如果您可以提供真实的网址进行测试,我可以提供更具体的反馈。
答案 1 :(得分:2)
Google+使用_escaped_fragment_查询参数获取网页,但没有等号。
因此,它会获取http://www.site.com/?_escaped_fragment
而不是https://www.site.com?_escaped_fragment_=
Google搜寻抓取工具仍然使用带有等号的片段,这仅适用于Google plus抓取工具。