當(dāng)前主流的搜索引擎的爬蟲(chóng)基本上都采用類似文本瀏覽器Lynx的技術(shù),因此濫用Javascript代碼可能會(huì)對(duì)搜索引擎的抓取操作造成不好的影響峭拘。例如,Google和Yahoo的官方文檔中說(shuō):如果在html中過(guò)多的使用 JavaScript、Cookie鸡挠、會(huì)話 ID(session ID)辉饱、框架(frame or iframe)、DHTML 或 Flash 等復(fù)雜功能會(huì)使搜索引擎抓取工具在抓取網(wǎng)站時(shí)可能會(huì)遇到問(wèn)題拣展。根據(jù)本人的Web數(shù)據(jù)提取經(jīng)驗(yàn)彭沼,發(fā)現(xiàn)用Javascript實(shí)現(xiàn)如下功能時(shí)會(huì)給爬蟲(chóng)帶來(lái)麻煩:
有些內(nèi)容是采用Ajax異步方式從源站點(diǎn)下載的,而且是在用戶進(jìn)行界面操作時(shí)通過(guò)Javascript代碼激發(fā)下載操作备埃,普通的類似文本瀏覽器的網(wǎng)絡(luò)爬蟲(chóng)根本沒(méi)有能力模擬用戶的界面操作姓惑;
有些超鏈接的導(dǎo)航能力完全是用Javascript模擬的,例如在HTML A元素中加一段onclick事件處理代碼瓜喇,點(diǎn)擊超鏈接時(shí)挺益,有Javascript代碼進(jìn)行頁(yè)面導(dǎo)航;
有些頁(yè)面上顯示的多級(jí)菜單是用Javascript實(shí)現(xiàn)的乘寒,菜單的展現(xiàn)和消失都用Javascript控制望众,如果這些菜單激發(fā)的操作是導(dǎo)航到另外的頁(yè)面,那么這些導(dǎo)航信息很難被爬蟲(chóng)抓壬⌒痢烂翰;
以上是一個(gè)不完全列表,是作者被人在設(shè)計(jì)網(wǎng)絡(luò)爬蟲(chóng)時(shí)遇到的棘手問(wèn)題蚤氏。很多專家總結(jié)了一些針對(duì)Javascript的SEO策略甘耿,摘錄如下:
絕對(duì)避免導(dǎo)航及其他鏈接使用JavaScript。導(dǎo)航和鏈接是搜索引擎抓取網(wǎng)頁(yè)的賴以生存之本竿滨,如果搜索引擎無(wú)法抓取網(wǎng)頁(yè)佳恬,則代表了網(wǎng)頁(yè)不會(huì)出現(xiàn)在索引結(jié)果中,也就無(wú)從談起排名了于游。
盡量避免對(duì)內(nèi)容使用JavaScript毁葱。尤其是與關(guān)鍵詞相關(guān)部分的內(nèi)容,應(yīng)該盡量避免使用JavaScript來(lái)展現(xiàn)贰剥,否則毫無(wú)疑問(wèn)是要降低關(guān)鍵詞密度的倾剿。
實(shí)在需要使用JavaScript的部分,將這部分JavaScript腳本放在一個(gè)或幾個(gè).js文件中蚌成,這樣能夠避免干擾到搜索引擎的抓取和分析
實(shí)在不能放在.js文件中的部分JavaScript腳本前痘,將它們放在html代碼的底端,< /body>之前担忧,這樣使搜索引擎分析網(wǎng)頁(yè)時(shí)最后才會(huì)發(fā)現(xiàn)它芹缔,降低對(duì)搜索引擎的干擾
正面利用Javascript
因?yàn)槠胀ǖ乃阉饕骐y于處理Javascript代碼,可以正確利用這個(gè)特點(diǎn)屏蔽頁(yè)面上一些不需要被搜索引擎索引的內(nèi)容瓶盛,這樣乖菱,可以使頁(yè)面關(guān)鍵詞密度提高坡锡,這類信息可以稱為“垃圾信息”,例如窒所,廣告鹉勒、版權(quán)申明、大量導(dǎo)出鏈接吵取、與內(nèi)容不相關(guān)的信息等等禽额。我們可以將這些垃圾信息通通扔進(jìn)一個(gè)或數(shù)個(gè).js文件中,從而降低對(duì)頁(yè)面實(shí)質(zhì)內(nèi)容的干擾皮官,提高關(guān)鍵詞密度脯倒,向搜索引擎展示頁(yè)面內(nèi)容的核心。