Skip to content

搜尋引擎怎麼運作?爬取、索引與排名的三個階段

搜尋引擎運作:爬取、索引與排名

搜尋引擎的工作分成三個階段。理解它們的分工,才知道 SEO 的每一項工作是在解決哪一段的問題。

階段做什麼前端能影響嗎
1. 爬取(Crawling)發現網址並下載內容
2. 索引(Indexing)理解內容並存進資料庫
3. 排名(Ranking)依查詢挑出最相關的結果

前兩段才是工程師的戰場

第三段的權重主要在內容品質與外部連結,那不是改程式碼能解決的。所以 技術 SEO 幾乎全部集中在前兩段。

第一階段:爬取

怎麼發現新頁面

來源說明可靠度
從已知頁面的連結順著 <a href> 追過去最主要
網站地圖主動告知有哪些網址輔助
主動提交Search Console 的要求編制索引單頁加速

連結是最主要的來源

這就是為什麼 孤兒頁面 很難被發現,沒有任何頁面連到它,爬蟲就沒有路徑走到那裡。

sitemap 能補上這個缺口,但它只是「建議」,搜尋引擎仍會參考連結結構來判斷頁面的重要性。

抓取的順序與頻率

爬蟲不是均勻地抓每一頁。它會依這些因素決定順序:

因素影響
頁面的重要性從首頁點幾次能到、被幾個頁面連到
更新頻率常變的頁面抓得比較勤
伺服器的回應能力回應慢或出錯就降低頻率
lastmod誠實填寫時會被參考

這是「頁面深度要淺」的理由

從首頁三次點擊內能到的頁面,被抓取的機會明顯高於要點十次的頁面。

改善方式是 內部連結佈局,讓重要頁面有更多、更短的路徑可達。

爬取預算

爬取預算 是搜尋引擎願意花在您網站上的抓取次數。它由兩個因素決定:

因素說明
抓取容量上限您的伺服器承受得住多少(回應慢就降低)
抓取需求搜尋引擎認為您的內容值得抓多少

小網站不必擔心

頁面數在數千以內的網站幾乎不會碰到預算上限。它主要影響大型電商與內容平台。

真正該注意的是不要浪費它

這些會把預算耗在沒有價值的網址上:

浪費來源處理方式
排序與篩選的參數組合robots.txt 封鎖或 canonical 合併
站內搜尋結果頁Disallow
無限分頁分頁設計
大量 轉址一跳到底,不要串接
重複內容canonical

三種排序 × 五種顏色 × 五個價格區間 = 七十五種組合。每一個都是獨立網址,每一個都要花一次抓取。

什麼會擋住爬取

阻礙說明
robots.txtDisallow明確禁止下載
非 200 的 狀態碼抓不到內容
robots.txt 回傳 5xx可能暫停抓取整站
需要登入爬蟲沒有帳號
需要 JavaScript 才能導覽走不到連結

第二階段:索引

抓取只是把 HTML 下載回來。索引才是「理解內容並決定要不要收錄」。

兩階段渲染

這是純 CSR 網站最大的風險

階段做什麼時間
1. 初次解析解析下載回來的 HTML立即
2. 渲染排進佇列,執行 JavaScript通常幾秒,但沒有保證

第一階段看到的是伺服器回傳的原始 HTML。如果那裡只有一個空的 <div>,內容就得等第二階段。

而第二階段有三個風險:佇列延遲、程式碼出錯就整頁放棄、資源被封鎖就渲染不出來。

詳見 純 CSR 的 SEO 問題

社群爬蟲沒有第二階段

Facebook、X、LINE 的預覽爬蟲 完全不執行 JavaScript。它們永遠只看到第一階段的內容。

所以靠程式碼注入的 Open Graph 標籤對它們永遠無效,這個問題沒有「等一下就會好」的可能。

索引時在理解什麼

從哪裡讀得到什麼
<title>這一頁的主題
標題階層頁面的大綱與涵蓋的子題
地標元素哪一段是主要內容
內文文字具體在講什麼
圖片的 alt圖片的內容
錨點文字被連結頁面的主題
結構化資料內容的類型與屬性
canonical哪個網址是正式版本

這張表就是語意化 HTML 的價值

每一項都對應到一個具體的標記決定。選對標籤等於把答案直接寫給搜尋引擎,而不是讓它猜。

不被索引的原因

原因說明
標了 noindex明確拒絕
內容重複被合併到其他版本
內容量太少不足以構成獨立主題
品質不足自動產生、無實質內容
網站權重不足新站或小站,不是所有頁面都會被收錄

在 Search Console 的頁面索引報告裡會看到對應的代碼,判讀見 Google Search Console

第三階段:排名

使用者輸入查詢後,搜尋引擎從索引裡挑出最相關的結果。

排名訊號有數百個

不要相信「十大排名因素」這類說法

官方的說法是數百個訊號,而且 權重會依查詢情境調整,「今天天氣」與「JavaScript 閉包」這兩個查詢重視的東西完全不同。

任何聲稱知道確切權重的說法都不可信。

工程師動得到的那幾項

訊號前端能做什麼
可爬取與可索引前兩個階段的全部工作
行動裝置友善viewportRWD
HTTPS全站統一 https
載入體驗Core Web Vitals
沒有干擾性的插頁廣告版面設計
呈現優勢(非排名)結構化資料 帶來的複合式結果

前兩項是門檻,不是加分

「可爬取與可索引」不是排名訊號,它是 參賽資格。沒過就完全不在名單上,談排名沒有意義。

行動裝置友善也接近門檻性質:行動優先索引之下,行動版讀不了的頁面等於整頁受影響。

內容相關性仍然是主導

不要高估技術層面

一篇內容不相關的頁面,速度再快、標記再完整也不會贏過一篇切題但稍慢的頁面。

Core Web Vitals 是排名訊號之一,但它在 兩個結果相關性接近時 才成為區分依據。

這也是為什麼 技術 SEO 的定位是「讓好內容有機會被看見」,而不是「取代好內容」。

排名是動態的

同一個關鍵字每次搜的結果可能不同,因為排名會依這些調整:

因素說明
地區在地商家、法規、語言偏好
語言瀏覽器與帳號設定
裝置行動與桌機的結果可能不同
搜尋歷史個人化
搜尋意圖同一個字詞在不同情境下的意思

不要自己搜自己的網站來判斷排名

您的搜尋結果被個人化了,您常造訪自己的網站,它自然排得比較前面。

要看真實的平均排名,用 Search Console 的成效報告

各階段對應到這個系列的哪些章節

階段相關章節
爬取索引控制robots.txtsitemap狀態碼網址結構分頁內部連結
索引渲染模式語意化結構結構化資料canonicalmeta robotshreflang
排名Core Web Vitals圖片字型viewport
呈現(第三階段之後)meta 標籤結構化資料favicon

排查問題時照這個順序

遇到「頁面沒被收錄」或「流量掉了」時,一定要 從第一階段往後查

  1. 爬得到嗎?(狀態碼、robots.txt
  2. 讀得到內容嗎?(渲染)
  3. 被收錄了嗎?(noindex、重複內容)
  4. 才談排名。

很多人一發現問題就去改標題與描述,那是第三階段之後的事,問題往往卡在第一關。完整流程見 網頁怎麼被 Google 收錄

常見問題

搜尋引擎怎麼發現新頁面?

主要靠三個來源:從已知頁面的連結追過去、讀取 網站地圖 ,以及網站主動提交網址。其中連結是最主要的來源,這也是為什麼沒有被任何頁面連到的孤兒頁面很難被發現。

什麼是渲染佇列?

需要執行 JavaScript 才看得到內容的頁面,會被排進一個獨立的佇列等待渲染。這個階段通常只等幾秒,但沒有保證,排隊的頁面多時會久得多,而且程式碼出錯就整頁放棄。這是 純用戶端渲染 最大的風險。

爬取預算需要在意嗎?

頁面數在數千以內的網站幾乎不必擔心。它主要影響大型電商與內容平台。真正該注意的是不要用大量參數網址與無限分頁把預算浪費在沒有價值的網址上。

排名訊號有幾個?

官方說法是數百個,而且權重會依查詢情境調整。工程師真正動得到的只有幾項:頁面是否可被爬取與索引、行動裝置友善度、載入體驗,以及結構化資料帶來的呈現優勢。

為什麼同一個關鍵字每次搜的結果不一樣?

排名會依使用者的地區、語言、裝置、搜尋歷史與當下的搜尋意圖調整。所以自己搜自己的網站看到的排名不一定代表一般使用者看到的,要看平均排名應該用 Search Console 的成效報告

延伸閱讀

參考資料:Google 搜尋中心:Google 搜尋的運作方式