當前主流的搜索引擎的爬蟲基本上都采用類似文本瀏覽器Lynx的技術,因此濫用Javascript代碼可能會對搜索引擎的抓取操作造成不好的影響。例如,Google和Yahoo的官方文檔中說:如果在html中過多的使用 JavaScript、Cookie、會話 ID(session ID)、框架(frame or iframe)、DHTML 或 Flash 等復雜功能會使搜索引擎抓取工具在抓取網(wǎng)站時可能會遇到問題。根據(jù)本人的Web數(shù)據(jù)提取經(jīng)驗,發(fā)現(xiàn)用Javascript實現(xiàn)如下功能時會給爬蟲帶來麻煩:
有些內容是采用Ajax異步方式從源站點下載的,而且是在用戶進行界面操作時通過Javascript代碼激發(fā)下載操作,普通的類似文本瀏覽器的網(wǎng)絡爬蟲根本沒有能力模擬用戶的界面操作;
有些超鏈接的導航能力完全是用Javascript模擬的,例如在HTML A元素中加一段onclick事件處理代碼,點擊超鏈接時,有Javascript代碼進行頁面導航;
有些頁面上顯示的多級菜單是用Javascript實現(xiàn)的,菜單的展現(xiàn)和消失都用Javascript控制,如果這些菜單激發(fā)的操作是導航到另外的頁面,那么這些導航信息很難被爬蟲抓取;
以上是一個不完全列表,是作者被人在設計網(wǎng)絡爬蟲時遇到的棘手問題。很多專家總結了一些針對Javascript的SEO策略,摘錄如下:
絕對避免導航及其他鏈接使用JavaScript。導航和鏈接是搜索引擎抓取網(wǎng)頁的賴以生存之本,如果搜索引擎無法抓取網(wǎng)頁,則代表了網(wǎng)頁不會出現(xiàn)在索引結果中,也就無從談起排名了。
盡量避免對內容使用JavaScript。尤其是與關鍵詞相關部分的內容,應該盡量避免使用JavaScript來展現(xiàn),否則毫無疑問是要降低關鍵詞密度的。
實在需要使用JavaScript的部分,將這部分JavaScript腳本放在一個或幾個.js文件中,這樣能夠避免干擾到搜索引擎的抓取和分析
實在不能放在.js文件中的部分JavaScript腳本,將它們放在html代碼的底端,< /body>之前,這樣使搜索引擎分析網(wǎng)頁時最后才會發(fā)現(xiàn)它,降低對搜索引擎的干擾
正面利用Javascript
因為普通的搜索引擎難于處理Javascript代碼,可以正確利用這個特點屏蔽頁面上一些不需要被搜索引擎索引的內容,這樣,可以使頁面關鍵詞密度提高,這類信息可以稱為“垃圾信息”,例如,廣告、版權申明、大量導出鏈接、與內容不相關的信息等等。我們可以將這些垃圾信息通通扔進一個或數(shù)個.js文件中,從而降低對頁面實質內容的干擾,提高關鍵詞密度,向搜索引擎展示頁面內容的核心。