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