【问题标题】:Can Googlebot crawl javascript generated content?Googlebot 可以抓取 javascript 生成的内容吗?
【发布时间】:2015-08-06 07:34:34
【问题描述】:
我们有一个 Web 应用程序,其内容由 javascript 生成。谷歌可以索引这些页面吗?
当我们调查此问题时,我们总是从旧页面中找到有关在链接中使用“#!”的解决方案。
在我们的应用中,链接是这样的:
domain.com/paris
domain.com/london
当我们使用此类链接时,javascript 会填充内容。
使用 HTML snapshot 是否明智,或者您有其他建议吗?
【问题讨论】:
标签:
javascript
ajax
web-applications
googlebot
google-crawlers
【解决方案1】:
简答
是的,只要您使用 pushstates,它们就可以抓取 JavaScript 生成的内容。
详细解答
这取决于您的设置。 如果您使用的是 pushstates,Google 和 Bing 可以抓取基于 javascript 和 AJAX 的内容。如果您这样做,他们将处理来自 AJAX 调用的内容、使用 javascript 更新页面标题或元标记,以及一般任何此类事情。
大多数前端框架(如 Angular、Ember 或 Backbone)已经可以使用 pushstates,因此在这些情况下,您无需执行任何操作。检查你正在使用的任何系统,看看他们是如何做事的。如果您不使用 pushstates,则需要自己实现它或使用整个 escapted_fragment html 快照处理。
因此,如果您使用 pushstate,那么是的,搜索引擎可以很好地抓取您的页面。如果你不这样做,那么你将需要实现 pushstates 或做 HTML 快照。
奖励信息 - 不幸的是,Facebook 不处理推送状态,因此 facebook 爬虫需要非动态 og-tags 或 HTML 快照。
【解决方案2】:
“由 JavaScript 生成”是模棱两可的。这可能意味着您正在服务器上运行 JS 脚本,也可能意味着您正在使用 JS API 进行 AJAX 调用。就 Googlebot 而言,这种差异似乎很重要。但是您不必相信我的话,因为有经验证明 Googlebot 将使用 XMLHTTPRequest API 和 Fetch API 以实时实验的形式缓存以及目前不会缓存的 JavaScript 内容.因此,如您所见,服务器端渲染仍然是 SEO 的最佳方式。