Javascript AJAX站点可以被搜索引擎抓取吗?

Javascript AJAX站点可以被搜索引擎抓取吗?,javascript,ajax,search,seo,xmlhttprequest,Javascript,Ajax,Search,Seo,Xmlhttprequest,我一直认为AJAX驱动的内容对搜索引擎是不可见的 (即通过XMLHTTPRequest插入DOM的内容) 例如,在此网站中,浏览器通过AJAX请求加载主要内容: …如果您在禁用了Javascript的情况下查看此页面,则主内容区域为空白。 但是,Google cache会在AJAX加载后显示全部内容: 所以,显然搜索引擎对AJAX加载的内容进行索引 问题: 这是搜索引擎的新功能吗?最 网上的帖子表明你 必须发布重复的静态HTML 供搜索引擎查找的内容 他们 有什么诀窍可以让你成功吗 AJA

我一直认为AJAX驱动的内容对搜索引擎是不可见的

(即通过XMLHTTPRequest插入DOM的内容)

例如,在此网站中,浏览器通过AJAX请求加载主要内容:


…如果您在禁用了Javascript的情况下查看此页面,则主内容区域为空白。

但是,Google cache会在AJAX加载后显示全部内容:

所以,显然搜索引擎对AJAX加载的内容进行索引

问题:

  • 这是搜索引擎的新功能吗?最 网上的帖子表明你 必须发布重复的静态HTML 供搜索引擎查找的内容 他们
  • 有什么诀窍可以让你成功吗 AJAX驱动的内容将由 搜索引擎(除了创建 复制静态HTML内容)
  • AJAX驱动的内容会被更新吗 如果它是从 独立子域?来一杯怎么样 独立域

立即加载的内容(例如,在您的示例中,在初始页面加载之后使用辅助HTTP请求)通常对搜索引擎爬虫可见


但是,如果您有超出此范围的内容在用户操作(例如单击选项卡或按钮等)后通过ajax加载,则不会被查看或索引。只有在有“真实”锚链接的情况下,这些链接才会被查看或索引。

AJAX驱动不会被搜索引擎抓取(或者至少不会被谷歌抓取)

在google缓存中可以看到页面的原因是,在缓存中有完整的页面,包括.js文件。因此,当您看到页面时,您的浏览器将使用google缓存的.js文件

我认为除了使用static.html之外,没有任何技巧可以让它被搜索引擎抓取

2010年4月27日编辑:谷歌发布了


可能会有帮助。

搜索引擎可以运行索引Ajax内容所需的JavaScript,但这将很困难,而且计算成本也很高——我还不知道有哪种方法可以做到这一点

一个写得好的站点,如果它使用Ajax,那么它将按照Ajax的原则使用它。任何关键功能都仍然可用,无需运行JavaScript


另一方面,使用JavaScript重新创建框架(不使用渐进式增强)的网站将面临框架的所有常见问题,但用孤立页面换取搜索引擎的不可见性。

我已经安装并激活了NoScript。两个链接显示相同的内容(+/-谷歌标题栏)。因此,Google缓存只显示静态存在的内容。

如果您使用类似jQuery选项卡的内容,即使您链接到同一目录中的HTML文件,如果不使用javascript,它也会很好地恢复到正常状态,选项卡只会变得与实际页面相似。虽然很难看,但它很管用。您也可以设置这些版本的样式。

根据谷歌提供的指南,AJAX站点可以进行爬网:


谷歌刚刚让他们的爬虫程序运行Javascript,没有对开发人员进行任何更改

他们说:

今天,只要你不阻止Googlebot抓取你的JavaScript或CSS文件,我们通常能够像现代浏览器一样呈现和理解你的网页


正是渐进式增强。“…如果您在禁用Javascript的情况下查看此页面,则主内容区域为空。”不,不是。实际上,它看起来很杂乱。你用的是什么浏览器?当我在禁用Javascript的情况下访问Firefox中的第一个链接时,我看到“terra.cl”的信息,然后是一个空白框。查看html源代码时,我看到一个ID=query content的空DIV,AJAX内容将放在其中。我得到的结果与您不同。我安装了noscript。原始页面不显示主要内容,谷歌缓存页面显示。如果我查看source,我会在DIV中看到ID=querycontent的不同内容。(这是注入AJAX内容的div)你能试试IE吗?我认为这不是真的。如果我在禁用Javascript的情况下查看google缓存链接,我仍然可以看到AJAX驱动的内容。如果我查看源代码,内容就在html中。Alex,你能提供证据证明Google会在页面加载时运行AJAX请求的页面上运行AJAX请求吗?@Josh,不,因为这不是真的。:)嗯,是的,您加载的任何AJAX内容都应该有一个非常优雅的回退,以便搜索引擎和使用旧的/javascript禁用浏览器的用户可以看到一些东西。