Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Googlebot 居然真的抓取并运行 JS 和 CSS? #22

Open
cssmagic opened this issue Feb 28, 2016 · 3 comments
Open

Googlebot 居然真的抓取并运行 JS 和 CSS? #22

cssmagic opened this issue Feb 28, 2016 · 3 comments

Comments

@cssmagic
Copy link
Owner

cssmagic commented Feb 28, 2016

旧观念

在我的既有观念中,搜索引擎的网页爬虫/蜘蛛/机器人(Crawler/Spider/Robot)只抓取页面的 HTML 代码,对于内部或外部的 JS 与 CSS 代码是一律无视的。所以我们也经常会说,Ajax 不利于搜索引擎的抓取,不利于 SEO。

因为在我们看来,搜索引擎爬虫毕竟不是功能强大的浏览器,它无法运行 JS,也无法渲染 CSS。那些五彩缤纷的页面,在爬虫眼中不过是纯粹的文本流(或包含了结构标记的文本信息流)而已。

然而,近期看到的两则关于 Google 的新闻,彻底颠覆了我对搜索引擎爬虫的认知。

新闻一

一段来自 Google 资深工程师 Matt Cutts 的视频震惊了我。Matt 告诫我们,不仅文本与背景同色、字体大小设置为 0、用 CSS 隐藏文字等等这些伎俩已经是小儿科了,而且 Google 现在还可以识别通过 JS 来隐藏文字的作弊方法。

在视频中,一段隐晦的 JS 代码将某元素的 .style.display 属性设置为 'none',试图隐藏那些只打算提供给搜索引擎、而不展示给用户的文字。Matt 表示,这种作弊方式现在已经瞒不了 Google 了。

新闻二

新闻二更加恐怖,据说 Google 可以抓取 Ajax 内容!该文表示,给 URL 的 hash 部分加上特定的标识符(即 domain.com/#abc 改为 domain.com/#!abc),会让 Googlebot 领悟到该 URL 是一个 Ajax 页面(而非页面中的锚点),并进行抓取。

你可能对 Google 的这一技术改进没多少兴趣,但你肯定注意到了问题的本质:Googlebot 可以抓取 Ajax 内容,也就是说,Googlebot 完全有能力运行页面中的 JS,而且功能完善!

爬虫与浏览器

如果这两则新闻都是真的,那么,从某种意义上说,爬虫的行为和能力已经与浏览器越来越接近了。这也意味着,搜索引擎爬虫将抓取更多的内容(包括 JS 和 CSS 文件),网站的流量负载将会加大。

另一方面,爬虫在抓取页面的过程中也将产生更多的资源消耗——毕意仅仅处理文本信息的资源开销要远远小于完整地渲染页面和运行客户端程序。

因此,我目前仍然对这两则新闻半信半疑。难道这是 Google 放出的烟幕弹?或者是好事者炮制的假新闻?如果 Googlebot 真的已经具备了运行 JS 或渲染 CSS 的能力,那么为了将资源开销控制在合理的范围内,或许 Google 会在内部启用黑/白名单机制?

站长们

如果担心爬虫对主机流量的侵蚀,或许可以考虑在 robots.txt 文件中禁止爬虫对 *.js*.css 文件的抓取。不过暂不确定这样做是否存在不良的副作用。

或许也有人会担心,正常的页面布局有时候也需要使用一些隐藏文字的手段,比如 CSS 图代文隐藏模块的 hx 标识信息等等。这样会不会被 Google 判定为作弊呢?

我相信对于像 Google 这样 “聪明” 的搜索引擎来说,它即然有能力让爬虫运行 JS 和 CSS,它也必然有能力来判断什么是作弊、什么是正常的布局需要。所以我觉得站长们大可不必惊慌,平常该怎样就怎样,身正不怕影斜,规则总是用来约束那些 “不法之徒” 的。

所以,对于某些 SEOer 来说,这似乎是个坏消息。如果他们还在考虑是否还有新的作弊方案,那么我觉得意义不大。很显然,SEO 作弊手段的生存空间将越来越小,与此同时,网站自身内容的价值才是 SEO 的真实基础。我的建议是:语义化是最好的 SEO


相关阅读

@cssmagic
Copy link
Owner Author

cssmagic commented Oct 1, 2016

评论存档

  • cssmagic [2009-10-18 08:16 PM]

    近期的两则新闻真的让我很疑惑,Google 开发浏览器之后,Googlebot 也牛×起来了吗?

  • cssmagic [2009-10-19 01:11 PM]

    近期的另一则与 SEO 相关的重要新闻是,Google 决定废除 PR(PageRank),或者说,不再对外公开 PR 信息。

  • 崔凯 [2009-10-28 03:25 PM]

    百度跟进是需要时间的。

  • cssmagic [2009-10-31 01:24 AM]

    Google PR 更新了,本站首页的 PR 升至 2。不是说 PR 已经挂了吗?

  • 免费范文网 [2010-01-04 05:07 PM]

    记得上次看到百度也支持抓取js和css了,seoer的确是一种骗人的伎俩。支持:身正不怕影斜,规则总是用来约束那些“不法之徒”的。

  • cssmagic [2010-04-03 04:06 PM]

    今日本站首页的 PR 升至 3。

  • cssmagic [2010-06-27 00:14 AM]

    谷奥:《Google 爬虫又学了一招:理解 JavaScript 代码》
    http://www.google.org.cn/posts/googles-bots-understand-code.html

@SiZapPaaiGwat
Copy link

如果真的能抓取为何我的网站的 spa 内容基本一个没收录,而非 spa 的都收录了,说明 google 的抓取其实没有想象中那么强大。复杂的脚本可能还是会有问题。

@shuiRong
Copy link

相关阅读三个链接全部失效...难受,善用 Internet Archive org,朋友们

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants