2009-07-23 91 views
6

我一直认为AJAX驱动的内容对搜索引擎是不可见的。AJAX网站是否可以被搜索引擎抓取?

http://www.trustedsource.org/query/terra.cl

...如果:

例如,在这个网站中,主内容经由AJAX请求由浏览器加载的(即插入到通过XMLHttpRequest的DOM含量)您查看本页面的网址为Javascript disabled,主要内容区域为空白。

但是,谷歌的缓存显示了AJAX负荷后的全部内容:

http://74.125.155.132/search?q=cache:JqcT6EVDHBoJ:www.trustedsource.org/query/terra.cl+http://www.trustedsource.org/query/terra.cl&cd=1&hl=en&ct=clnk&gl=us

所以,很显然,搜索引擎做的AJAX加载的内容编制索引。

问题:

  • 这是在搜索引擎中的新功能?网站上的大多数 帖子都表示你的 必须发布重复的静态HTML内容 以供搜索引擎找到 他们。
  • 是否有任何技巧可以获得 由搜索引擎(除了创建 重复的静态HTML内容)被搜索引擎检索到的内容。
  • 如果从 单独的子域加载,AJAX驱动的内容是否会被索引为 ? 单独的域如何?
+2

“...如果您在禁用Javascript的情况下查看此页面,则主要内容区域为空白。”不,它不是。实际上,它看起来非常混乱。 – NickFitz 2009-07-23 09:23:07

+0

你使用什么浏览器?当我在禁用JavaScript的Firefox中访问第一个链接时,我看到“terra.cl'的信息,然后是空白框。查看html源代码我看到一个ID = query-content的空DIV,其中的AJAX内容将去。 – frankadelic 2009-07-23 13:31:36

回答

0

通常可以看到搜索引擎爬行程序可以立即加载的内容(比如在初始页面加载之后使用次要HTTP请求)。但是,如果您的内容超出此范围,则会在用户操作后通过ajax加载,例如,点击一个标签或按钮等,将不会被看到或索引。只有当它们具有“真正的”锚链接时,才会看到或索引这些链接。

+1

Alex,你能否提供证据证明谷歌会在页面加载时运行AJAX请求的页面上运行AJAX请求? – Josh 2009-07-31 02:25:23

+1

@Josh,不,因为这不是真的。 :) – bzlm 2012-01-18 20:05:49

1

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

你可以在谷歌缓存中看到页面的原因是因为在缓存中有整个页面,包括.js文件。所以当你看到这个页面时,你的浏览器使用google缓存的.js文件。

我认为除了使用静态的.html之外,没有任何技巧可以让它通过搜索引擎进行爬取。

编辑在四月27日2010:谷歌发布了一种make AJAX crawlable

Google webmaster toolkit可能的帮助。

+2

我不认为这是真的。如果我查看JavaScript禁用的Google缓存链接,我仍然会看到AJAX驱动的内容。 如果我查看源代码,该内容就在html中。 – frankadelic 2009-07-23 17:28:27

1

搜索引擎可以运行索引Ajax内容所需的JavaScript,但这将是困难的和计算上的昂贵—我不知道有任何实际的操作。

写得很好的网站,如果使用Ajax,根据progressive enhancement的原则使用它。任何关键功能仍然可用,无需运行JavaScript。

另一方面,使用JavaScript重新创建框架(并且不使用渐进式增强功能)的网站将面临框架的所有常见问题,但会遇到搜索引擎不可见的交易孤立页面。

+0

适合渐进式增强。 – 2009-07-23 06:42:16

1

我有NoScript安装和活​​动。这两个链接显示相同的内容(+/-谷歌标题栏)。因此,Google缓存仅显示静态内容。

1

如果您使用的是类似jQuery选项卡的内容,即使您链接到同一目录中的HTML文件,也会在没有JavaScript的情况下很好地退化为正常,并且这些选项卡变得像实际页面一样。这是丑陋的,但它的工作原理。你也可以设计这些版本的风格。