我使用jQuery通过json请求从数据库中检索内容。然后它将HTML中的通配符(如%title%)替换为实际内容。这很好用,这样我就可以在数据库中维护我的多语言文本,但Googlebot只能看到通配符,而不是实际的内容。我知道Googlebot看到没有javascript的网页,但是有办法解决这个问题吗?谢谢!
答案 0 :(得分:4)
您应该在Google上仔细阅读this document。
讨论了如何启用Googlebot索引:
#hashfragment
值的更改而变化的网页。#hashfragment
的页面。简而言之,您正在考虑按照“步骤3”中的讨论添加<meta name="fragment" content="!">
,并通过传回所有内容来响应服务器端上的特殊请求一下子,你的客户端代码否则会在页面加载后产生。这些特殊请求实际上是URL中?_escaped_fragment_=...
的请求,向服务器表明它应该将所有最终演示文稿预先烘焙(我的话)为Googlebot的单个响应。
那就是说,既然你要为这个特殊情况输出填写的内容,那么在一般情况下你可能会做得更好(避免需要处理Google的_escaped_fragment_
个请求),如果有必要,可能仍然可以在页面加载后换出标记(例如,通过使用具有特定class
或id
的跨度来识别它们。)
答案 1 :(得分:3)
Google在答案时似乎有一个功能完备或功能齐全的javascript爬行机器人:
2009年,Google提出了一种使AJAX可抓取的解决方案:https://webmasters.googleblog.com/2009/10/proposal-for-making-ajax-crawlable.html
2015年Google 已弃用上述方法:https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
我已经成功构建了多个可在Google网站管理员工具中正确呈现的单页应用程序。
如果您想深入了解,网络上有很多资源:
答案 2 :(得分:0)
Googlebot显然不会呈现它下载的页面。这可能与其他搜索机器人使用的行为相同。
您需要使用服务器端脚本或编译解决方案(有很多可供选择,包括PHP,ASP.NET等)。这样,您仍然可以保留动态和i18n功能,而Googlebot会按照您的预期方式查看您的网页。或者至少为基本页面属性执行此操作,例如您知道Googlebot正在评估的标题,并保持jQuery更新页面中不那么重要的部分。
(说实话,在页面下载后使用jQuery替换令牌可能不是最有效的方法,特别是当服务器端脚本非常容易和免费时)。