第一階段:爬行和抓取:
就是搜索引擎蜘蛛通過跟蹤鏈接地址訪問網站頁面,把獲取到的網站頁面html代碼放入到自己的數據庫當中。爬行和抓取是搜索引擎工作的第一步,主要是完成數據的收集任務;
解釋幾個關鍵詞:
1,蜘蛛:
(1)定義:我把他它叫做抓取網頁數據時的執行者,其實它就是一個計算機程序,因爲這個工作過程與現實中的蜘蛛很相像,專業內就稱它爲搜索引擎蜘蛛!
(2)工作過程:蜘蛛程序向網站頁面發出訪問請求,服務器就會返回HTML代碼,蜘蛛程序把收到的代碼存入原始頁面的數據庫當中。蜘蛛訪問任何一個網站時,都會最先訪問網站根目錄下的robots.txt文件!如果robots.txt文件禁止搜索引擎抓取某些文件或者目錄,蜘蛛將會遵守這些禁止協議,不抓取那些被禁止的網址。
(3)常見的搜索引擎蜘蛛名稱:
百度蜘蛛、雅虎中國蜘蛛、Google蜘蛛、微軟Bing蜘蛛、搜狗蜘蛛、搜搜蜘蛛、有道蜘蛛等等!
2,跟蹤鏈接
大家都知道整個互聯網是由相連接的網站頁面組合成的!頁面和頁面之間是靠鏈接來聯繫的,搜索引擎能爲了更快速的收集網站數據,就是通過搜索引擎蜘蛛去跟蹤網站頁面上的鏈接,從一個頁面抓取到下一個頁面!這個過程和蜘蛛在蜘蛛網上爬行一樣!就這樣蜘蛛可以快速的可以爬完整個互聯網上的網站頁面!
根據網站鏈接結構的不同我們可以把蜘蛛的爬行路線分爲兩種:深度爬行和廣度爬行
A:深度爬行:蜘蛛沿着發現的頁面鏈接一直向前爬行,直到前面再也沒有其他鏈接,然後返回到第一個頁面,沿着另爲一個鏈接再一直向前爬行!
B:廣度爬行:蜘蛛在一個頁面上發現多個鏈接時,不順着一個鏈接一直往前爬行,而是把頁面上所有的第一層鏈接都爬行一遍,然後再繼續沿着第二層頁面上發現的鏈接爬向第三層頁面!一直這樣進行下去……
所以,我們在做網站的時候,對網站的結構一定要有這兩種佈局,優化網站頁面的時候也一定要做到兩種鏈接佈局!這樣的結構是搜索引擎蜘蛛組喜歡的!
3,定向優化技術勾引蜘蛛
A:過讀網站和頁面的權重進行優化提高蜘蛛的來訪次數。
B:做好頁面的跟新頻率和內容的質量
C:增加導入鏈接
D:距離首頁的點擊距離;距離首頁點擊距離越近,頁面權重越高,蜘蛛爬行的機會越大
4,地址庫,
搜索引擎會建立一個存放頁面的地址庫,目的就是爲了避免搜索引擎蜘蛛重複爬行和抓取網址,這個地址庫裏面有已經被抓取的頁面,也有被發現後還沒有被抓取的頁面!
這個地址庫中的URL一定是蜘蛛抓取來的嗎?答案是No
有人工錄入的種子網站地址,也有站長通過搜索引擎網頁提交表格提交進去的網址!(百度網址提交地址:http://www.baidu.com/search/url_submit.htm)
另爲需要注意的是:網址提交了,也不一定就能被收錄,這看你提交頁面的權重如何了!不過搜索引擎蜘蛛還是跟喜歡自己沿着鏈接去抓去頁面!自己得來的更好吃!
5,文件存儲
搜索引擎蜘蛛抓取來的頁面就存放在這個原始頁面數據庫中!其中每個URL都有一個獨特的文件編號!
6,對複製內容的檢測
有很多站長曾經碰到過這樣的問題:在網站頁面中發現了蜘蛛來爬行過,但是頁面沒有被收錄過,不知道什麼回事!其實很簡單,很有可能是蜘蛛在爬行你網頁的時候發現了很多權重比較低的內容,比如:轉載或者僞原創的內容是,蜘蛛就會離開!你的網頁也就沒有被收錄!蜘蛛在爬行抓取頁面內容的時候也會對其進行一定程度的複製內容檢測!
第二階段:預處理
這個過程是指:索引程序對數據庫裏蜘蛛抓取來的網站頁面進行處理,主要做文字提取,中文分詞,索引等工作;
這個過程是起到一個橋樑的作用,由於搜索引擎數據庫中的數據實在是太多了,當用戶在搜索框中輸入關鍵詞後不可能一下就返回排名結果嗎,但是往往我們感覺很快,其實起到關鍵作用的就是預處理這個過程!和爬行抓取過程一樣他也是在後臺提前完成的!
有些人認爲預處理就是索引,其實不是這樣的,索引只是預處理的一個主要步驟,那麼什麼是索引呢?索引是對數據庫列表中的一列或者多列的值進行排序的一種結構!
在索引之前要做五個工作:
1,提取文字:
我們知道蜘蛛抓取的是含有全部HTML代碼的頁面,這裏面其實包含很多信息:有文字,有CSS屬性,有大量的HTML格式標籤,javascript程序!但是後面的兩個是無法參與到排名內容中來的,也就是說除了文字之外其它的都給去掉了,這個過程就是去除過程,也叫提取文字的過程,即:提取出可以用於排名處理的網站頁面文字內容!
注意:搜索引擎除了提取出可見的文字外,還可以提出以下不可見的文字內容;比如:METa標籤中的文字內容,圖片替代文字,FLASH文件的替代文字,鏈接錨文字等!
2,中文分詞
大家都知道中文句子和英文句子有一個不同的地方,不是字母和漢字的區別,而是,英文單詞和單詞之間是有空格分開的,中文句子裏,字和字沒有之間沒有分隔符,一個句子中的詞都是連在一起的!所以,這時候搜索引擎就必須先分辨一下哪幾個字組成一個詞,哪幾個字本身就是一個詞!比如:“波司登羽絨服”就將其分爲“波司登”和“羽絨服”兩個詞;
中文分詞一般有兩種方法:
A:詞典匹配:又分爲正向和逆向匹配!
B:根據搜索統計
這兩者往往混合使用!而且在百度和谷歌中分詞的相關性有時候也不太一樣,例如:搜索引擎優化,在百度中就是一個完整的詞,而在谷歌中將其分成了“搜索”“引擎”“優化”三部分,所以在做優化的時候一定要注意選擇的關鍵詞的特點,後面我們會詳細的講解選詞技巧。
注意:如果我們非要讓一個詞組合在一起,不讓搜索引擎的分詞技術把它分開怎麼辦?
我們可以這樣做:在頁面標題,h1標籤,利用黑體表粗出現該關鍵詞!這樣就適當的去提醒了搜索引擎,搜索引擎就會知道我們這個詞是一個組合就不會將其分開了!
3,去停止詞
什麼是停止詞?就是在頁面中出現次數比較多的,對內容沒有實質性影響的那些詞;比如:“的”,“得”“地”這些助詞,“啊”“哈”“呀”等感嘆詞,“從而”“以”“卻”等副詞或者介詞,這些詞就被稱之爲停止詞!英文裏有:the,a,an,to,of等等
搜索引擎去停止詞主要有兩個目的:
一個是:使索引數據主題更爲突出,減少無謂的計算量;
另一個是:檢測你的內容是否和另外數據庫中的內容有大量的重複性
在這裏需要提醒各位的是:以後不要隨便在網上覆制一篇文章加上幾個停止詞就粘到自己的網站上去了,學完上邊的,你應該懂什麼意思了!
4,去除噪聲:
這裏的噪聲不是我們所說的噪聲,它是特指一種垃圾,即多餘的字詞!這些字詞一般包含在版權聲明文字,導航條,廣告中!消除噪聲是爲了使得頁面能更好的顯示主題內容:
舉例:博客中的“分類目錄”“歷史存檔”等!
5,去重(chong)
什麼意思呢?假如一篇同樣的文章出現在不同的網站上或者鏈接
到不同的地址上,搜索引擎就會認爲它是一個文件,它並不喜歡這樣的重複內容,所以它也不會去抓取的!在進行索引之前就需要對這些內容進行識別和刪除重複的內容,就叫“去重”!
搜索引擎如何去重!技術我們不需要掌握,但是我們得注意幾個關鍵點:
A:簡單的增加“的”“地”“得”,是很容易的被識別的,一定要慎重使用!
B:複製別人的文章,簡單的交換一下段落結構!這種僞原創也一定要慎重使用!
這是因爲:這樣的操作無法改變文章的特定關鍵詞,上面的那些做法始終逃不過搜索引擎的去重算法。
經過上面的五個步驟後,搜索引擎就能得到獨特的,能反映頁面主要內容的,以詞爲單位的內容。
然後搜索引擎程序將上邊提取到的關鍵詞通過分詞程序來劃分好,把每一個網站頁面都轉化爲一個關鍵詞組成的集合!同時記錄下每一個關鍵詞在該頁面上出現的頻率、次數、格式(比如:標題標籤、黑體、H標籤、錨文本等)位置(第幾段),這些都已權重的形式記錄在下來!然後放到一個地方,這個地方就是專門放置這些組合詞的詞表結構——索引庫!也交做“詞表索引形式”
什麼是正向索引:
每一個文件夾都對應一個ID,文件內容被表示爲一串關鍵詞的集合!在搜索引擎的索引庫中,這時候關鍵詞已經別轉化成了關鍵詞ID,這樣的數據結構叫正向索引!
給大家畫一張圖就明白了:
什麼是倒排索引呢?
因爲正向索引不能直接用於排名!比如:用戶搜索某一關鍵詞2,如果只從在正向索引,只能找到包含該關鍵詞的文件夾,不能實際的返回排名;這時候就會用到倒排索引了
在倒排索引中關鍵詞變成了主鍵,每個關鍵詞對應一系列文件,每一個文件都出現了要搜索的關鍵詞,這樣用戶在搜索某一個關鍵詞的的時候,排序程序就能在倒排列表中找到這個關鍵詞對應的文件!
詳細請看圖:
特殊文件的處理:
搜索引擎除了抓取HTNL文件還可以抓取以下文件類型:PDF,Word,WPS,PPT,TXT等這些文件,不過注意的是:搜索引擎還不能抓取圖片、視頻、Flash這類文字內容,也不能執行腳本和程序!所以在SEO的時候,你網站上面儘量少用這些!
鏈接關係的計算:
當搜索引擎抓取了頁面後,還必須事先計算出頁面上有哪些鏈接指向哪些頁面。每個頁面又有哪些導入鏈接,鏈接使用的什麼錨文字,正是這些複雜的鏈接指向關係形式形成了網站和頁面的鏈接權重!例如:google的PR值就是這些關係的重要體現,後面詳解!
第三階段:排名:
排名過程是與用戶互動的過程:是指當用戶輸入關鍵詞以後,排名程序調用索引數據庫裏面的數據,計算相關性後按照一定格式生成搜索結果頁面!
1,搜索詞的處理過程
A:中文分詞;前面講過了
B:去停止詞;前面講過;
C:指令處理:搜索引擎的默認處理方式是在關鍵詞之間使用“與”邏輯,比如用戶在搜索“網站建設”時,搜索引擎默認爲用戶想要查找的既包含“網站”也包含“建設”的頁面!
常見的搜索指令有加減號,還有哪些搜索指令?如何使用使用搜索指令,後面會詳細拿出一節來詳細講解的!
D:如果用戶輸入了明顯錯的字或者英文單詞的時候,搜索引擎會提示用戶正確的用字或者拼法!例如:搜索“建站技數”
E:整合搜索觸發!比如搜索明星,會出現圖片,視頻等內容!適合做熱門話題;
2,文件匹配如何進行?
這一部是在倒排索引中能快速的完成:看圖
如果用戶搜索的一個詞,既有關鍵詞2,也有關鍵詞3的話,那麼組後就會很精準的找到既包含關鍵詞2,也包含關鍵詞3的文件,然後返回!
3,初始子集如何選擇?
互聯網上的頁面有成千上萬個,搜索某一關鍵詞出來的頁面也會有上千萬個,如果搜索引擎一上來就是直接計算頁面相關性的話,那簡直就是太費時間了!實際上用戶是不需要看到這成千上萬的頁面的,用戶只需要的是一兩個有用的頁面!這時候搜索引擎就會根據用戶的搜索詞預定的選擇100個文件,然後進行返回,那麼到底是選擇哪一百個呢?這就看你網站頁面和用戶搜索的關鍵詞的相關匹配度了!頁面權重高的就會進入到搜索引擎的預選子集中!
4,計算相關性
選完子集後就會計算頁面的相關性,我們不需要知道搜索引擎是如何計算頁面相關性的,但是我們的知道影響計算頁面相關性的因素,這樣更有助於我們進一步優化我們的網站!
SEO關注的因素有以下幾個:
A:關鍵詞的常用程度:舉例“來吧UFO”
B:詞頻和密度
在沒有關鍵詞堆積的情況一下,一般認爲搜索詞在頁面中出現的次數和密度越高,說明頁面和搜索詞的相關性也就越高!
C:關鍵詞的位置和形式
位置研究主要有:首頁還是二級頁面?形式主要研究:標題標籤,黑體,H1
D關鍵詞的距離:例如搜索詞是“網站建設”,如果頁面中出現很多次連着的“網站建設”這個詞,而不是分開的“網站”後面沒有建設,或者有建設沒網站!
E:鏈接分析和頁面權重
鏈接和權重的關係主要是錨文字,有多少搜索詞是以錨文字的鏈接導入的相關性就高
5,排名過濾以及調整
當選出匹配的文件子集後,大體的排名就差不多確定下來了!這裏做的排名過濾主要是針對於那些靠作弊手段,有作弊嫌疑的網站進行調整!雖然按照前面的工作最後就算出來的這些網站權重和相關性非常的高,但是搜索引擎在最後一步也會把這些網站給過濾掉的!
6,排名顯示的效果
主要顯示的是:原始頁面的標題標籤,說明標籤,快照日期等數據!
注意:有的網站是搜索引擎需要調用動態生成的頁面摘要,而不是調用頁面本身的說明!
7,搜索引擎緩存的作用:
搜索引擎會把用戶經常搜索的一些詞記錄下來,會把這些搜索過排名記錄儲存在搜索引擎的緩存當中,當由用戶在一次搜索這個詞的時候,搜索引擎會直接調用緩存中的內容!這樣縮短了搜索反映時間,大大提高了排名效率!
總結:上面是搜索引擎整個工作過程的詳細的介紹!這些只是概念上的東西,其實搜索引擎的工作步驟和算法遠比我們想想中的複雜!但是沒關係,我們做SEO的只要明白了上面的這些基本概念就已經足夠了!搜索引擎的算法還在不斷的優化,感興趣的同學可以多關注一下,這樣也有利於自己在優化上有個新的突破!上面介紹的概念大致是主流搜索引擎的基本工作原理!