16

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

4

3 回答 3

5

在给出这个答案时,谷歌似乎有一个几乎完全或功能齐全的 javascript-crawling 机器人:

于 2016-05-18T21:02:49.607 回答
4

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

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

  • 内容根据#hashfragmentURL 中的值变化而变化的页面。
  • 加载后内容立即更改但#hashfragment本身没有任何特殊性的页面。

简而言之,您正在考虑添加<meta name="fragment" content="!">“第 3 步”中讨论的内容,并通过一次性返回所有内容来响应服务器端的特殊请求,否则您的客户端代码将在页面加载后生成。这些特殊请求实际上?_escaped_fragment_=...是 URL 中的请求,向服务器表明它应该将所有最终呈现(我的话)预烘焙到 Googlebot 的单个响应中。

也就是说,由于您将努力为这种特殊情况输出填充的内容,因此在一般情况下您最好这样做(避免需要处理 Google 的_escaped_fragment_请求),也许还有一种方法可以如有必要,在页面加载后换掉您的标记(例如,通过使用具有特定classid识别它们的跨度)。

于 2011-06-06T07:04:44.170 回答
0

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

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

(不过说实话,在页面下载后使用 jQuery 替换标记可能不是最有效的方法,尤其是在服务器端脚本如此简单和免费的情况下)。

于 2011-06-06T07:05:07.923 回答