Googlebot没有看到jquery生成的内容

时间:2011-06-06 06:50:18

标签: jquery ajax googlebot

我使用jQuery通过json请求从数据库中检索内容。然后它将HTML中的通配符(如%title%)替换为实际内容。这很好用,这样我就可以在数据库中维护我的多语言文本,但Googlebot只能看到通配符,而不是实际的内容。我知道Googlebot看到没有javascript的网页,但是有办法解决这个问题吗?谢谢!

3 个答案:

答案 0 :(得分:4)

您应该在Google上仔细阅读this document

讨论了如何启用Googlebot索引:

  • 内容根据网址中#hashfragment值的更改而变化的网页。
  • 内容在加载后立即更改但本身缺少任何特殊#hashfragment的页面。

简而言之,您正在考虑按照“步骤3”中的讨论添加<meta name="fragment" content="!">,并通过传回所有内容来响应服务器端上的特殊请求一下子,你的客户端代码否则会在页面加载后产生。这些特殊请求实际上是URL中?_escaped_fragment_=...的请求,向服务器表明它应该将所有最终演示文稿预先烘焙(我的话)为Googlebot的单个响应。

那就是说,既然你要为这个特殊情况输出填写的内容,那么在一般情况下你可能会做得更好(避免需要处理Google的_escaped_fragment_个请求),如果有必要,可能仍然可以在页面加载后换出标记(例如,通过使用具有特定classid的跨度来识别它们。)

答案 1 :(得分:3)

Google在答案时似乎有一个功能完备或功能齐全的javascript爬行机器人:

答案 2 :(得分:0)

Googlebot显然不会呈现它下载的页面。这可能与其他搜索机器人使用的行为相同。

您需要使用服务器端脚本或编译解决方案(有很多可供选择,包括PHP,ASP.NET等)。这样,您仍然可以保留动态和i18n功能,而Googlebot会按照您的预期方式查看您的网页。或者至少为基本页面属性执行此操作,例如您知道Googlebot正在评估的标题,并保持jQuery更新页面中不那么重要的部分。

(说实话,在页面下载后使用jQuery替换令牌可能不是最有效的方法,特别是当服务器端脚本非常容易和免费时)。