個人部落格 SEO 優化(1):搜尋引擎原理介紹

超人666發表於2018-04-14

文章首發於我的部落格:個人部落格 SEO 優化(1):搜尋引擎原理介紹

寫在文章前面:
前段時間接到一個 SEO 優化的私活。為了完成這個活,只能趕鴨子上架,從零開始系統地去學習 SEO 知識。經過幾天的學習後,也算是入了門。才意識到 SEO 它的意義與重要性,覺得 SEO 對於做個人站點(部落格也算是個人站點)的意義與重要性不言而喻。可能有人會反駁在如今自媒體、微信公眾號及知乎、掘金、sf等各種垂直網站盛行的年代,再去研究 SEO,對部落格做 SEO 是否有必要。我的看法是,如果你想長期堅持維護自己的部落格,那麼學習必要的 SEO 知識的收益是一件半衰期很長的事情,是一件堅持就會事半功倍的事情。

因為你只需花費不多的精力對部落格進行站內優化,然後保持一定的文章更新頻率(如果有需要的話,還可以進行站外優化)。就能提高你的部落格在搜尋引擎排名,為自己的部落格帶來更多的訪問量。無論你是想提高知名度還是想讓你的文章能夠幫助到更多的人,訪問量多了才能到達你的目的。

接下來的內容完全是一個 SEO 初學者的學習總結,如果 SEO 大神看到,請輕噴,還望指出不足之處。

搜尋引擎

可能有些人還不瞭解什麼是 SEO。所謂 SEO 指 Search Engine Optimization(搜尋引擎優化)。通過對網站進行優化,來提高網站在搜尋引擎中的排名,為網站帶來更多的訪問。
在介紹 SEO 優化要素及技巧之前,我們需要先對搜尋引擎的工作原理有個瞭解。才能更好的理解 SEO 具體操作的意義。

基本原理簡介

搜尋引擎過程非常複雜,我們這裡只能以最簡單的流程來介紹搜尋引擎是怎麼實現網頁排名的。
搜尋引擎的工作過程大體可以分為三個階段:

  1. 爬行和抓取:搜尋引擎通過跟蹤連結訪問網頁、獲得頁面 HTML 程式碼並存入資料庫。
  2. 預處理:索引程式對抓取來的頁面資料進行文字提取、中文分詞、索引等處理,以備排名程式呼叫。
  3. 排名:使用者輸入關鍵詞後,排名程式呼叫索引資料庫,計算相關性,然後按照一個的格式生成搜尋結果頁面。

第一步:爬行和抓取

爬行和抓取是搜尋引擎工作的第一步,完成資料收集的任務。

spider

搜尋引擎用來爬行和抓取頁面的程式叫做也就是我們熟知的蜘蛛(spider),也稱為機器人(bot)。spider訪問網站頁面類似於普通使用者使用的瀏覽器。spider 發出頁面訪問請求後,伺服器返回 HTML 程式碼,spider 把收到的程式存入原始頁面資料庫。為了提高爬行和抓取速度,搜尋引擎通常或多個spider並行爬行。

spider 訪問任何一個網站時,都會先訪問該網站根目錄下的 rotbots.txt 檔案。該檔案可以告訴 spider 哪些檔案或目錄可以抓取或者禁止抓取。
和不同的瀏覽器 UA 不同一樣,不同廠商的 spider 也帶有特定代理的名稱。

跟蹤連結

為了抓取網上儘可能多的頁面,spider 會跟蹤網頁上的連結,從一個頁面爬到下一個頁面,就好像蜘蛛在蜘蛛網上爬行一樣。
爬行遍歷有兩種策略:

  • 深度優先:spider 沿著頁面的連結一直爬取,直到該頁面沒有其他連結為止
  • 廣度優先:spider 在一個頁面發現多個連結,先把這頁面的所有第一層連結都遍歷完,再繼續第二層連結遍歷

程式猿肯定對這兩個遍歷演算法很熟悉啦。
理論上無論是深度優先還是廣度優先,只要給 spider 足夠的時間,總是能把網際網路上所有的頁面連結都爬取完。但實際情況並不是這樣,由於各種資源的限制,搜尋引擎也只是爬行和收錄網際網路的一部分。

所以通常 spider 都是深度優先和廣度優先混合使用

吸引蜘蛛

通過上面的介紹可以知道,spider 不可能將所有的頁面都收錄,因此 SEO 就是要通過各種手段,吸引 spider 爬行收錄自己網站更多的頁面。既然不能所有頁面都收錄,那麼 spider 肯定是儘量抓取重要頁面。那麼 spider 是如何判斷哪些頁面重要?有幾個影響因素:

  • 網站和頁面權重。質量高,資格老的網站權重高。
  • 頁面更新度。更新頻率高的網站權重高。
  • 匯入的連結。無論是外部連結還是內部連結,要被 spider 抓取,就必須要有匯入連結進入頁面。高質量的匯入連結也經常使頁面上的匯出連結被爬行深度增加。
  • 與首頁的點選距離。一般來說,網站最高的權重就是首頁,大部分外鏈都是指向首頁,spider 訪問最頻繁的也是首頁。所以離首頁越近的頁面,權重也相對更高,被 spider 爬行的機會也越大。
地址庫

為了避免重複爬行和抓取網址,搜尋引擎會建立一個地址庫,記錄已經被發現還沒有抓取的頁面,以及已經被抓取的頁面。通過地址庫會有幾個來源:

  • 人工錄入的種子網站
  • spider 爬取頁面後,解析出網址,與地址庫對比。如果不存在,則存入
  • 站長通過搜尋引擎網頁提交網址(一般個人部落格或網站都採用這種方式)
檔案儲存

spider 抓取的資料存入原始頁面資料庫。其中的頁面資料與使用者瀏覽器得到的 HTML 是完全一樣。

爬行時的複製內容檢測

檢測並刪除複製內容是在預處理的步驟處理掉。不過 spider 在爬行的時候也會進行一定程度的複製內容檢測。權重低,而大量抄襲複製內容的網站,spider 可能就不再繼續爬行了。這也是為什麼說一個網站需要原創內容的原因。

第二步:預處理

預處理有時候也稱為索引。因為索引是預處理中最主要的步驟。預處理有幾個步驟:

  1. 提取文字。搜尋引擎會提取頁面的可見文字以及特殊的包含文字資訊的程式碼,如 Meta 標籤、圖片Alt屬性、超連結錨文字等。
  2. 分詞,不同的語言有不同的分詞如中文分詞,英文分詞。對第一步提取的文字進行分詞。不同的搜尋引擎使用的分詞演算法不同,會有差異。
  3. 去停止詞。無論中文還是英文,都會有一些頻率高,對內容沒有影響的詞。如語氣詞、感嘆詞,介詞、副詞等。搜尋引擎會在索引頁面之前去除這些詞。
  4. 消除噪聲。絕大部分頁面還有一部分內容對頁面主題也沒有貢獻。比如版權宣告文字,導航條等。以部落格為例,每個頁面幾乎都會有的文章分類,歷史導航等資訊,都是與頁面主題無關的。這些都是屬於噪音,需要消除掉。
  5. 去重。同一篇文章經常會重複出現在不同的網站及同一個網站的不同網址,搜尋引擎並不喜歡這種重複的內容,所以搜尋引擎會對這部分內容進行去重。
  6. 正向索引。也稱索引。經過前面文字提取、分詞、消噪、去重後,搜尋引擎得到的就是獨特的,能反映頁面主體內容,以詞為單位的內容。接下來搜尋引擎索引程式就可以提取關鍵詞,按照分詞程式劃分好的詞,把頁面轉換為一個關鍵片語成的集合,同時記錄每一個關鍵詞在頁面上的出現頻率、出現次數、格式、位置。然後把這些頁面及關鍵詞形成的結構儲存進索引庫。
  7. 倒排索引。正向索引還不能直接用於關鍵詞排名。搜尋引擎還需要把正向索引資料庫重新構造為倒排索引,把檔案對應到關鍵詞的對映轉換為關鍵詞到檔案對映。這樣在搜尋關鍵詞的時候,排序程式就在倒排索引中定位到這個關鍵詞,就可以馬上找出這個關鍵詞所有的檔案。
  8. 連結關係計算。連結關係計算也是預處理重要的一部分。搜尋引擎在抓取頁面內容後,必須事前計算出:頁面上有哪些連結指向哪些其他頁面,每個頁面都有哪些匯入連結,連結使用了什麼錨文字。這些複雜的連結指向關係形成了網站和頁面的連結權重。Google PR 值就是這種連結關係的最主要體現之一。其他搜尋引擎也都進行類似技術,雖然並不稱為 PR。
  9. 特殊檔案計算。除了 HTML 檔案之外,搜尋引擎還能爬取抓取和索引以文字為基礎的多種檔案型別,如 PDF,Word,PPT,TXT等。

第三步:排名

到了這一步就是處理使用者輸入,然後根據使用者輸入的關鍵詞,排名程式呼叫索引程式,計算排名,顯示給使用者。
這個過程也分為下面幾個步驟:

搜尋詞處理

對使用者輸入的關鍵詞進行分詞、去停止詞、指令處理等處理。

檔案匹配

根據關鍵詞找出所有匹配關鍵字的檔案。

初始子集選擇

由於檔案匹配階段出來的檔案數量巨大,不可能全部顯示。因此需要根據頁面權重計算出一個子集。

相關性計算

選完子集後,就需要對子集中的頁面進行相關性介紹。計算相關性是排名過程最重要的一步。
影響相關性主要因素有幾點:

  1. 關鍵詞常用程度。越常用的詞對搜尋詞的意義貢獻越小。越不常用則越大。
  2. 詞頻與密度。在沒有堆積關鍵詞的情況下,頁面的關鍵詞出現次數越多,密度越高,則相關性也越大。不過該因素的重要程式越來越低了。
  3. 關鍵詞的位置與形式。在前面索引提到的,頁面的標題標籤,黑體,H1都是比較重要的位置。
  4. 關鍵詞的距離。切分後的關鍵詞完整匹配地出現,說明與搜尋匹配最相關。比如你搜尋 hexo部落格SEO,如果在頁面上連續完整出現 hexo部落格SEO,說明相關性最高。
  5. 連結分析與頁面權重。除了頁面本身的因素,頁面之間的連結和權重關係也影響關鍵詞的相關性,其中最重要的就是錨文字。頁面有越多以搜尋詞為錨文字的匯入連結,說明頁面的相關性越強。
排名過濾及調整

經過上面的步驟之後,已經得到大體的排名。之後搜尋引擎可能還會有一些過濾演算法,對排序進行輕微調整,其中最重要的過濾就是施加懲罰。一些有作弊的頁面會被降低權重。

排名顯示

所有排名確定後,排名程式就呼叫原始頁面的標題、Description Meta 等資訊顯示在頁面上。

搜尋快取

使用者搜尋很大一部分是由重複的。所以有一部分的搜尋是會被快取下來的。

查詢及點選日誌

搜用使用者的 IP 地址,搜尋的關鍵詞、搜尋時間,以及點選了哪些結果頁面,搜尋引擎都記錄形成日誌,形成搜尋統計日誌。這些日誌資訊對搜尋引擎判斷搜尋結果質量、調整搜尋演算法、預期搜尋趨勢等都有重要意義。

通過上面的三個步驟,你就能對搜尋引擎的工作原理有了更深的理解。這對接下來要寫的站內優化內容及部落格優化實踐能更好的理解。

相關文章