Googlebot可以抓取javascript生成的内容吗?

Can Googlebot crawl javascript generated content?

本文关键字:抓取 javascript Googlebot      更新时间:2023-09-26

我们有一个web应用程序,它的内容由javascript生成。谷歌可以索引这些页面吗?

当我们调查这个问题时,我们总是从旧页面中找到关于使用"#!">

在我们的应用程序中,链接是这样的:
domain.com/paris
domain.com/london

当我们使用这种类型的链接时,javascript填充内容。

使用HTML快照是否明智,或者您有任何其他建议?

简短回答

是的,他们可以抓取JavaScript生成的内容,只要你使用推送状态。


详细回答

这取决于你的设置。如果你使用pushstates, Google和Bing可以抓取基于javascript和AJAX的内容。如果你这样做,他们将处理来自AJAX调用的内容,使用javascript更新页面标题或元标签,以及一般的任何此类事情。

大多数前端框架,如Angular、Ember或Backbone已经使用推送状态了,所以在这些情况下,你不需要做任何事情。检查你正在使用的系统,看看他们是如何做事的。如果你不使用pushstates,你需要自己实现它,或者使用整个escapted_fragment html快照处理。

所以如果你使用推送状态,那么是的,搜索引擎可以抓取你的页面。如果你不这样做,你将需要实现推送状态或做HTML快照。

奖励信息 -不幸的是Facebook不处理推送状态,所以Facebook爬虫需要非动态的og-tags或HTML快照。

"由JavaScript生成"是不明确的。这可能意味着您正在服务器上运行JS脚本,也可能意味着您正在使用JS API进行AJAX调用。就Googlebot而言,这种差异似乎很重要。但是您不必相信我的话,因为有经验证明,Googlebot目前将以使用XMLHTTPRequest API和Fetch API的实时实验的形式缓存JavaScript内容。所以,正如你所看到的,服务器端渲染仍然是搜索引擎优化的最佳方式。