舊觀念
在我的既有觀念中,搜索引擎的網(wǎng)頁爬蟲/蜘蛛/機(jī)器人(Crawler/Spider/Robot)只抓取頁面的 HTML 代碼,對于內(nèi)部或外部的 JS 與 CSS 代碼是一律無視的。所以我們也經(jīng)常會說,Ajax 不利于搜索引擎的抓取,不利于 SEO。
因為在我們看來,搜索引擎爬蟲畢竟不是功能強(qiáng)大的瀏覽器,它無法運行 JS,也無法渲染 CSS。那些五彩繽紛的頁面,在爬蟲眼中不過是純粹的文本流(或包含了結(jié)構(gòu)標(biāo)記的文本信息流)而已。
然而,近期看到的兩則關(guān)于 Google 的新聞,徹底顛覆了我對搜索引擎爬蟲的認(rèn)知。
新聞一
一段來自 Google 資深工程師 Matt Cutts 的視頻震驚了我。Matt 告誡我們,不僅文本與背景同色、字體大小設(shè)置為 0、用 CSS 隱藏文字等等這些伎倆已經(jīng)是小兒科了,而且 Google 現(xiàn)在還可以識別通過 JS 來隱藏文字的作弊方法。
在視頻中,一段隱晦的 JS 代碼將某元素的 .style.display
屬性設(shè)置為 'none'
,試圖隱藏那些只打算提供給搜索引擎、而不展示給用戶的文字。Matt 表示,這種作弊方式現(xiàn)在已經(jīng)瞞不了 Google 了。
新聞二
新聞二更加恐怖,據(jù)說 Google 可以抓取 Ajax 內(nèi)容!該文表示,給 URL 的 hash 部分加上特定的標(biāo)識符(即 domain.com/#abc
改為 domain.com/#!abc
),會讓 Googlebot 領(lǐng)悟到該 URL 是一個 Ajax 頁面(而非頁面中的錨點),并進(jìn)行抓取。
你可能對 Google 的這一技術(shù)改進(jìn)沒多少興趣,但你肯定注意到了問題的本質(zhì):Googlebot 可以抓取 Ajax 內(nèi)容,也就是說,Googlebot 完全有能力運行頁面中的 JS,而且功能完善!
爬蟲與瀏覽器
如果這兩則新聞都是真的,那么,從某種意義上說,爬蟲的行為和能力已經(jīng)與瀏覽器越來越接近了。這也意味著,搜索引擎爬蟲將抓取更多的內(nèi)容(包括 JS 和 CSS 文件),網(wǎng)站的流量負(fù)載將會加大。
另一方面,爬蟲在抓取頁面的過程中也將產(chǎn)生更多的資源消耗——畢意僅僅處理文本信息的資源開銷要遠(yuǎn)遠(yuǎn)小于完整地渲染頁面和運行客戶端程序。
因此,我目前仍然對這兩則新聞半信半疑。難道這是 Google 放出的煙幕彈?或者是好事者炮制的假新聞?如果 Googlebot 真的已經(jīng)具備了運行 JS 或渲染 CSS 的能力,那么為了將資源開銷控制在合理的范圍內(nèi),或許 Google 會在內(nèi)部啟用黑/白名單機(jī)制?
站長們
如果擔(dān)心爬蟲對主機(jī)流量的侵蝕,或許可以考慮在 robots.txt
文件中禁止爬蟲對 *.js
和 *.css
文件的抓取。不過暫不確定這樣做是否存在不良的副作用。
或許也有人會擔(dān)心,正常的頁面布局有時候也需要使用一些隱藏文字的手段,比如 【CSS 圖代文】、【隱藏模塊的 hx 標(biāo)識信息】等等。這樣會不會被 Google 判定為作弊呢?
我相信對于像 Google 這樣“聰明”的搜索引擎來說,它即然有能力讓爬蟲運行 JS 和 CSS,它也必然有能力來判斷什么是作弊、什么是正常的布局需要。所以我覺得站長們大可不必驚慌,平常該怎樣就怎樣,身正不怕影斜,規(guī)則總是用來約束那些“不法之徒”的。
所以,對于某些 SEOer 來說,這似乎是個壞消息。如果他們還在考慮是否還有新的作弊方案,那么我覺得意義不大。很顯然,SEO 作弊手段的生存空間將越來越小,與此同時,網(wǎng)站自身內(nèi)容的價值才是 SEO 的真實基礎(chǔ)。