Googlebot没有看到jquery生成的内容

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

您应该在Google上仔细阅读本文档 。

它讨论了如何启用Googlebot索引:

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

简而言之,您正在考虑添加如“步骤3”中所述,并通过一次性全部回传所有内容来响应服务器端的特殊请求,您的客户端代码否则将在页面加载后生成。 这些特殊请求实际上是在URL中使用?_escaped_fragment_=...的请求,向服务器指示它应该预先烘焙(我的话)所有最终演示文稿到Googlebot的单个响应中。

也就是说,既然你正在努力为这个特殊情况输出填充的内容,你可能最好在你的一般情况下这样做(避免需要处理谷歌的_escaped_fragment_请求),或许还有办法在必要时在页面加载后交换标记(例如,通过使用具有特定classid的跨度来识别它们)。

在回答这个问题时,谷歌似乎有一个function完全或function齐全的javascript爬行机器人:

Googlebot显然无法呈现其下载的网页。 这可能与其他搜索机器人使用的行为相同。

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

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