爬行是指蜘蛛在頁(yè)面上沿著鏈接發(fā)現(xiàn)新頁(yè)面,然后“爬”過(guò)去抓取新頁(yè)面。抓取是指蜘蛛發(fā)現(xiàn)新頁(yè)面后,像瀏覽器一樣打開(kāi)頁(yè)面,把頁(yè)面HTML代碼存入數(shù)據(jù)庫(kù)。兩個(gè)概念在英文中通常都是用crawl或spider(這里是動(dòng)詞)表示,視上下文才能分出是指哪個(gè)。
顯然,爬行和抓取是相互交織的。抓取是實(shí)際發(fā)生的我們能夠觀(guān)察到的過(guò)程,在原始日志中,蜘蛛的抓取是有完整記錄的,比如:抓取確切時(shí)間、狀態(tài)碼、抓取的文件是哪個(gè)、抓取了多大文件等等。蜘蛛對(duì)頁(yè)面的抓取就和瀏覽器讀取文件是完全一樣的。
而爬行只是一個(gè)形象的比喻,實(shí)際上并不存在蜘蛛抓取文件時(shí)發(fā)現(xiàn)鏈接然后立即跟蹤過(guò)去這樣一個(gè)過(guò)程。蜘蛛抓取文件后存入數(shù)據(jù)庫(kù),程序解析出文件中的鏈接后將URL存入頁(yè)面地址庫(kù),然后蜘蛛從地址庫(kù)中按一定規(guī)則選取URL進(jìn)行抓取。蜘蛛不是真的訪(fǎng)問(wèn)頁(yè)面時(shí)看到一個(gè)URL就爬過(guò)去。
索引指的是將一個(gè)URL的信息進(jìn)行各種整理,如去重、分詞等等,然后將關(guān)于這個(gè)URL的信息存入數(shù)據(jù)庫(kù),被稱(chēng)為索引庫(kù)。真正用于搜索的是倒排索引,以后有機(jī)會(huì)再細(xì)說(shuō)。要注意的是,索引庫(kù)中關(guān)于URL的信息不僅是組成頁(yè)面內(nèi)容的關(guān)鍵詞及其特征(位置、格式等),還有鏈接、更新情況等信息。英文索引這個(gè)詞是index。
收錄是SEO們最關(guān)心也最常用的詞,其實(shí)也是4個(gè)概念中最不明確的。被收錄指的是我們能查到頁(yè)面被搜索引擎存入了索引庫(kù)。但后面我們會(huì)看到,進(jìn)入索引庫(kù)的URL并不一定被抓取過(guò),這和SEO們的直覺(jué)可能是不一樣的。
當(dāng)然,精準(zhǔn)掌握概念不是為了咬文嚼字,而是對(duì)很多SEO問(wèn)題的理解和處理有影響。下面舉幾個(gè)例子。
收錄不全是什么原因?
頁(yè)面不收錄是SEO們最頭疼的問(wèn)題之一,不收錄就談不上排名、流量了。太多人在博客、論壇里問(wèn)頁(yè)面不被收錄是什么原因,也給出了域名,但這種問(wèn)題是沒(méi)法回答的,即使愿意花時(shí)間去診斷也不能回答(除非列出所有可能的原因,等于沒(méi)回答),因?yàn)槿绷艘粋€(gè)關(guān)鍵信息:頁(yè)面被抓取了沒(méi)有?這只有查原始日志才能知道,看網(wǎng)站是看不出來(lái)的,查流量也是查不出來(lái)的。了解前面的概念就知道,被抓取不一定被收錄,沒(méi)被收錄也不一定意味著沒(méi)被抓取。
如果頁(yè)面被抓取過(guò)卻沒(méi)被索引和收錄,應(yīng)該往內(nèi)容是否有問(wèn)題(原創(chuàng)?采集?所謂偽原創(chuàng)?敏感內(nèi)容或產(chǎn)品?復(fù)制內(nèi)容?)方向去找原因。網(wǎng)站結(jié)構(gòu)應(yīng)該沒(méi)有大問(wèn)題,搜索引擎是看了內(nèi)容之后覺(jué)得不適合收錄的。如果頁(yè)面壓根就沒(méi)被抓取過(guò),則應(yīng)該往網(wǎng)站和鏈接結(jié)構(gòu)、搜索引擎不友好的技術(shù)障礙、域名權(quán)重等方面去找。
索引了,但一定抓取了嗎?
使用site:指令或直接搜索URL都可以檢查URL是否被索引,能查到URL卻不一定說(shuō)明頁(yè)面被抓取了。經(jīng)常有人問(wèn)搜索結(jié)果中URL沒(méi)有說(shuō)明文字,只有URL,標(biāo)題也和頁(yè)面真正標(biāo)題不一樣是什么情況,原因之一就是頁(yè)面被索引了,但沒(méi)有被抓取。
百度索引了淘寶首頁(yè),但百度蜘蛛并沒(méi)有抓取淘寶首頁(yè)內(nèi)容,因?yàn)樘詫毜膔obots文件禁止百度抓取。存在于百度索引庫(kù)的關(guān)于淘寶首頁(yè)的是其它來(lái)源的信息,主要是外部鏈接,百度按照鏈接信息給出了猜想的標(biāo)題(和真正頁(yè)面標(biāo)題不一樣),但沒(méi)有說(shuō)明文字,點(diǎn)擊快照進(jìn)去看也是空的。
如果你的頁(yè)面出現(xiàn)這種情況,說(shuō)明搜索引擎知道頁(yè)面的存在,卻因?yàn)槟撤N原因不能抓取頁(yè)面。也許robots文件有問(wèn)題?也許服務(wù)器設(shè)置出錯(cuò)禁止百度抓取了?也許宕機(jī)時(shí)間太長(zhǎng)了?
索引了,但索引全了嗎?
即使抓取了,也索引了,但不一定頁(yè)面所有內(nèi)容都被索引了。下圖是某著名電子商務(wù)網(wǎng)站首頁(yè)的百度快照:
熱門(mén)分類(lèi)內(nèi)容顯示了一半,后面沒(méi)了,顯然百度并沒(méi)有索引整個(gè)頁(yè)面,只索引了前半部分。也許是文件太大了?也許前半部分都是鏈接,百度覺(jué)得沒(méi)有實(shí)質(zhì)內(nèi)容?一般這種情況下代碼需要精簡(jiǎn)是肯定的,像圖中這個(gè)頁(yè)面,光導(dǎo)航就100多K,真的有必要把導(dǎo)航做成這么龐大嗎?
這種情況下,頁(yè)面被抓取時(shí)抓取了多少?只有查日志才能知道。如果抓取時(shí)是完整的,那么頁(yè)面上的鏈接都是能被爬行的,雖然快照里顯示的并不全,所以影響倒不大。如果抓取時(shí)就不全,那問(wèn)題就比較大了,頁(yè)面將失去展現(xiàn)內(nèi)頁(yè)的意義,趕緊精簡(jiǎn)代碼吧。一般來(lái)說(shuō),蜘蛛能抓取的比索引的大得多。
就算抓取時(shí)是完整的,不影響鏈接爬行跟蹤,外貿(mào)seo如果是內(nèi)頁(yè),正文內(nèi)容會(huì)不會(huì)沒(méi)被索引完整呢?下圖是某內(nèi)頁(yè):
從右側(cè)滑動(dòng)條位置可以知道,產(chǎn)品屬性后面內(nèi)容還多著呢。再來(lái)看看這個(gè)頁(yè)面的百度快照:
百度索引到產(chǎn)品屬性部分結(jié)束了,后面那么多內(nèi)容不索引了。如果后面還有重要文字內(nèi)容會(huì)怎么樣?如果導(dǎo)航再大點(diǎn),頁(yè)面正文完全沒(méi)有被索引到會(huì)怎么樣?答案是,沒(méi)被索引到的內(nèi)容就不會(huì)被搜索到。這種情況下,看著貌似一切正常,也抓取了,也索引收錄了,但頁(yè)面不會(huì)有排名,而怎么調(diào)整頁(yè)面內(nèi)容都是沒(méi)用的,因?yàn)檎嬲撍饕臎](méi)被索引。