行銷知識庫

搜尋引擎原理:Google 的排名機制是什麼?

2023-02-08

seo搜尋引擎優化

只要在 Google 搜尋框輸入關鍵字,搜尋引擎就會提供我們8-10個相關的搜尋結果。但你知道搜尋引擎是如何決定這些頁面的排序方式嗎?如果想要讓自己的網站在搜尋結果頁有更多的曝光機會進而獲取流量,那就需要讓網站排名在前10名內。幫助網站提升排名就是 SEO 在做的事,不過首先得理解搜尋引擎的運作原理。

Google 搜尋引擎運作原理

當我們在 Google 上輸入關鍵字進行搜尋時,你可能會以為我們看到的是整個網際網路的所有頁面,但實際上我們只是在 Google 的資料庫中進行搜尋。網路上還是存在著許多搜尋引擎沒有找到或沒有收進資料庫的網頁,這些頁面我們都沒有辦法透過 Google 搜尋到。

而搜尋引擎的運作方式簡單來說就像是圖書館,圖書館管理員需要先發現書的存在,在檢視內容後決定值不值得放入圖書館,順利將書買回來以後還需要為其分類,當有讀者詢問時圖書館管理員就可以迅速找到對應的書籍並推薦給讀者。

將以上行為套用在搜尋引擎的運作時,也都有對應名的名稱:

  • 爬取(檢索):搜尋引擎找到頁面並檢視頁面內容
  • 索引(收錄):將頁面分類並儲存至資料庫
  • 排名:按照內容相關程度排序並提供給使用者

什麼是爬取?

又稱作檢索(Crawl),是爬蟲機器人在找到頁面並檢視內容的過程。網際網路中有多達上百億個頁面,每當有新頁面產生時搜尋引擎並不會收到通知,也就不會立刻察覺這些頁面的存在。那搜尋引擎要怎麼找到這些新頁面?答案就是透過「連結」。

整個網際網路是由大量的網站組成,而網站彼此間又透過「連結」互相串聯,就像我們網站中也存在 Facebook 的連結,使用者能夠透過這個連結找到我們的粉絲專頁。

而爬蟲的爬取方式也是同樣道理,會在爬取已知網站時檢視網站上的所有連結,並透過連結發現還沒檢索過的頁面或網站。

Sitemap.xml 幫助爬蟲找到頁面

Sitemap.xml 用來記載希望被檢索的頁面及相關資訊,能夠幫助搜尋引擎以更有效率的方式檢索網站。通常位在網站根目錄的位置,例如:https://inboundmarketing.com.tw/sitemap_index.xml

Sitemap.xml 不需要放入哪些頁面?

Sitemap.xml 的功能是幫忙搜尋引擎檢索,如果有些頁面不希望被搜尋引擎找到的話,就不該放進 Sitemap.xml 中。因為這些頁面可能會對網站 SEO 造成負面影響,或是將搜尋引擎的檢索資源浪費在不重要的地方,例如:

  • 重複內容
  • 登入才可以檢視的內容
  • 經過轉址的頁面
  • 內容移除頁面

不希望被搜尋引擎找到的內容除了不要放進 Sitemap.xml 以外,還可以使用更具有強制力的 Robots.txt 來禁止搜尋引擎爬取。

Robots.txt 禁止搜尋引擎爬取

Robots.txt 是一份用來告訴搜尋引擎該怎麼爬取我們網站的規範文件。爬蟲在開始爬取我們的頁面前,會先爬取這份檔案瞭解網站限制後才開始爬取頁面,可以在檔案中進行以下設置:

  • 禁止/允許特定搜尋引擎爬蟲爬取網站
  • 禁止/允許搜尋引擎爬蟲爬取特定類型文件
  • 禁止/允許搜尋引擎爬蟲爬取特定子目錄
  • 禁止/允許搜尋引擎爬蟲爬取包含特定網址的頁面

Robots.txt 檔案位於網站根目錄,例如集客的 Robots.txt 就位於:
https://inboundmarketing.com.tw/robots.txt

Robots.txt 的使用時機

我們已經瞭解這是用來限制搜尋引擎爬取特定頁面,避免搜尋引擎對網站提出過多檢索需求造成網站超載,但實際上究竟有哪些頁面不用被搜尋引擎爬取?

  • 網站後台的登入頁面
  • 網站內部搜尋結果頁
  • 網站上線前測試
  • 低價值頁面、內容單薄頁面

Robots.txt 注意事項

  • 不建議用來保護隱私內容:仍有惡意爬蟲軟體不會遵照規範爬取,且每個網站的 Robots.txt 檔案都是公開可見,大家都能夠透過 Robots.txt 找到禁止爬取的頁面。
  • 無法禁止頁面出現在搜尋結果:Robots.txt 用意是規範搜尋引擎如何爬取「本站」,如果搜尋引擎在其他網站看到這些網址,即使沒有造訪我們網站仍有可能會索引這些頁面。

瞭解檢索資源的限制「爬取預算」

又稱為「檢索預算」,搜尋引擎對於每個網站投入的時間及資源就稱為「爬取預算」,每次的檢索預算消耗完畢後,就需要等到下一次搜尋引擎才會繼續進行檢索。

透過 Google Search Console 的檢索統計資料可以看到近期網站被檢索的頻率。
Search Console檢索統計資料

因為資源有限,搜尋引擎必須視網站情況合理分配檢索預算才能避免浪費資源,因此每個網站的爬取預算都不相同。爬取預算主要取決於以下因素:

  • 網站回應速度:回應速度越快,搜尋引擎能同時檢索的頁面就越多。
  • 頁面內容:網站中存在許多重複內容、網址已被移除或內容品質不佳的頁面,等於搜尋引擎浪費許多資源檢索不重要的頁面。
  • 熱門程度:為了盡量提供最新的資訊,網際網路上越熱門的網址檢索頻率也更高。

索引 Index

又稱為收錄,搜尋引擎將頁面分類收進資料庫的步驟就稱為索引。搜尋引擎的運作是一個循序漸進的過程,就像前面有提到我們平常在 Google 搜尋時,實際上是在 Google 的資料庫內搜尋。所以如果網頁沒有經過索引,就絕對不會出現在搜尋結果頁。

檢查網站索引狀況

瞭解搜尋引擎的運作方式後,想要知道哪些頁面已經被索引可以開始競爭排名,或是哪些該被索引的頁面還沒被索引的話,以下幾種方法可以幫助我們快速掌握網站狀況。

搜尋「site:網域/網址」

「site:」指令可以在沒有 Google Search Console 權限時,簡單的確認索引狀況。以集客的網站為例:

  • 檢視全站的索引狀況:site:網域
    site:指令檢視網站索引狀況

  • 檢視特定頁面索引狀況:site:網址
    site:指令檢視特定頁面檢索狀況

Google Search Console

  • 網頁索引狀況:查看網站整體情況
    search console檢視網頁索引狀況

  • 網址審查工具:查看個別頁面狀況
    gsc網址審查工具檢視特定頁面索引狀況

為什麼頁面沒被索引?如何解決?

頁面被索引後才可能出現在搜尋結果頁,如果花費大量時間精力完成頁面,卻因為索引問題導致沒有排名及流量其實相當可惜。頁面沒有被索引常常是因為以下造成:

一、網站新架站

如同前面所說,搜尋引擎會需要一定的時間才能發現新網站,如果發現 Search Console 沒有顯示任何資訊,可能就只是網站還沒被搜尋引擎找到而已。不過可以試著透過以下方式增加被搜尋引擎發現的機會。

  • 在 Search Conosole 提交 Sitemap.xml
  • 在 Search Console 提交頁面建立索引
  • 在其他網站建立反向連結連到需要被索引的頁面

二、爬取預算不足

網站頁面沒有多達上千個時,搜尋引擎檢索的速度通常不會太慢,因此對於小型網站來說不需要特別控制檢索預算。

不過如果你操作的是大型網站,希望所有重要頁面都能被快速檢索,那就會需要注意檢索的資源分配。雖然我們無法主動控制搜尋引擎如何分配資源,但藉由 Google 針對檢索預算撰寫的說明文件,我們可以透過以下方式盡可能提升檢索預算:

  • 合併網站中的重複內容
  • 透過 robots.txt 禁止搜尋引擎檢索不重要頁面
  • 頁面移除後保持 404 狀態碼,搜尋引擎將逐漸減少檢索頻率
  • 隨時更新 Sitemap.xml

三、網站架構不佳

搜尋引擎依靠網站上的連結來發現新頁面,如果網站上有某個頁面沒被任何頁面連結到,搜尋引擎就也難以找到它,通常將此類型頁面稱之為「孤兒頁面」。

雖然 Sitemap.xml 可以幫助搜尋引擎找到希望被檢索的頁面,但良好的網站架構有助於傳遞頁面權重,因此不建議用 Sitemap.xml 取代良好的網站架構。

四、無法順利訪問頁面

搜尋引擎檢索網頁的方式其實就像我們人類使用者,都需要實際進到頁面才會知道有哪些內容。如果頁面發生問題,導致搜尋引擎無法順利檢視,自然也就無法索引。我們可以透過 HTTP 狀態碼瞭解目前頁面狀態:

4xx 狀態碼 客戶端錯誤

4xx 錯誤指的是客戶端錯誤,又可以理解為瀏覽器端發生的錯誤,通常是因為網址輸入錯誤、頁面已被刪除等問題所產生的錯誤,其中最常見的就是404錯誤。如果頁面的內容被移除或是更換過網址,且頁面已被搜尋引擎索引時,就可以進行301轉址處理。

5xx 狀態碼 伺服器端錯誤

網站伺服器無法滿足使用者或搜尋引擎瀏覽頁面的請求。例如:電商網站購物節、搶購演唱會門票等,容易瞬間湧入大量流量的時候就可能產生5xx錯誤。如果常常發生伺服器過載,可能就需要考慮更換伺服器,以免影響索引及使用者體驗。

五、重複內容

有多個網址都呈現相同的內容時,搜尋引擎只會挑選一個作為標準頁面進行索引。但如果你希望搜尋引擎選擇某個特定網址時,就可以使用 Canonical 標記,告訴搜尋引擎哪個才是我們選擇的標準頁面。

六、網站整體品質不足

有時你可能會在 Search Console 看到未索引原因寫著「已檢索-目前尚未建立索引」,這代表搜尋引擎已經找到你的頁面,但卻沒有進行索引。

Google 的 John Mueller 曾經在線上研討會討論過這個問題,而 Search Engine Journal 也針對這次的談話內容進行統整。簡單來說,如果是小型網站卻有部分頁面顯示「已檢索-目前尚未建立索引」,可能是因為搜尋引擎認為網站整體的品質不足,不值得為該網站的內容建立索引,這時我們可以做的是優先加強網站的內容品質。

頁面不想被索引怎麼辦?

某些網站可能存在不想被收錄、不希望出現在搜尋結果頁的內容,例如:使用者付費觀看內容等。

Robots Meta Tag

出現在頁面 HTML 的<head>中,可以告訴搜尋引擎該如何索引頁面。檢視頁面原始碼時即可檢視

robots meta tag

以下是常見的 Robots meta tag 屬性:

  • Index / Noindex 屬性:設置 Noindex 標記會告訴搜尋引擎不要索引此頁面,當然也不會出現在搜尋結果頁。 不過如果沒有特別設定 Noindex,就是默認搜尋引擎可以索引(Index)。

  • Follow / Nofollow 屬性:告訴搜尋引擎是否應該要跟隨頁面上的連結,並將權重傳遞給這些連結。同樣的,如果沒有設定 Nofollow 的話就是默認 Follow 的意思。

  • Noarchive 屬性:一般情況下搜尋引擎會保留之已索引過的頁面版本,使用者也能在搜尋結果頁看到之前的版本。 頁面庫存

X-Robots-Tag

用在 HTTP 的回應標頭內,適合用來大範圍禁止搜尋引擎索引。例如:禁止搜尋引擎索引特定的文件類型、特定的資料夾等。

排名 Ranking

當使用者輸入關鍵字按下送出的瞬間,搜尋引擎就會開始計算頁面和關鍵字的相關性,最相關且能提供最佳使用者體驗的頁面就更有機會出現在搜尋結果頁第一名。

Google 排名因素

Google 為了能夠提供使用者更好的搜尋體驗,不斷開發及更新各種演算法。可以將演算法區分為以下幾種功能,這些功能也將實際影響搜尋排名:

  • 關鍵字搜尋意圖
  • 頁面和關鍵字相關性
  • 頁面內容品質
  • 網頁使用者體驗
  • 使用者背景資訊

關鍵字搜尋意圖

實際上就是「使用者想知道什麼」。不同的關鍵字使用者想知道的資訊類型也會不相同,而搜尋引擎會盡量理解使用者的搜尋意圖,進而提供相對應的內容類型。

而想知道搜尋引擎如何理解關鍵字的搜尋意圖,最直接且準確的方式就是實際搜尋一次,看搜尋引擎給予哪種類型的內容比較好的排名。

  • 舉例一:
    我想要購買滑鼠,但還沒有目標品牌及型號,只是想看看目前市面上有哪些滑鼠可以參考,我可能會使用「滑鼠 推薦」這樣的關鍵字。
    滑鼠推薦的搜尋結果頁畫面

  • 舉例二:
    我已經確定有確切的目標滑鼠,但在購買前想要再看看其他使用者對這隻滑鼠的評價,或是實際使用情況,我就會使用「品牌型號+評價」這樣的關鍵字。
    品牌型號+評價的搜尋結果頁

  • 舉例三:
    當我已經瞭解完這隻滑鼠的所有資訊,想要在網路上直接購買時,我會直接搜尋「品牌型號」希望能馬上找到購買頁面。
    搜尋意圖為產品的搜尋結果頁畫面

頁面和關鍵字的相關性

搜尋引擎會根據頁面內容及關鍵字出現的頻率判斷是否具有相關性。舉例來說,我希望排名「SEO」這個關鍵字,那就需要盡量撰寫和 SEO 相關的內容。例如:SEO 是什麼?SEO 怎麼做?SEO 怎麼排名等內容,來設法滿足使用者的疑惑。

不過,不建議為了獲得高排名就故意大量堆疊關鍵字,並撰寫無法提供實際資訊的內容給使用者。目前搜尋引擎已足夠聰明,甚至可能將你的網站判定為低品質內容的網站。

頁面內容品質

除了單純提供使用者內容外,還要確保提供的資訊是具有經驗、專業、權威、可信(EEAT)的標準。如果不確定自己網站上的內容是否屬於高品質內容,Google 也有提供內容建議供自我檢核。

網頁使用者體驗

如果搜尋引擎判斷有多個網站的相關性都相同的情況下,就會給予使用者體驗較佳的網站高排名,主要以下列幾個因素判斷使用者體驗:

  • 網站使用核心體驗指標
  • 網頁適合行動裝置瀏覽
  • 網頁為透過 HTTPS 提供的安全連線瀏覽
  • 沒有蓋版廣告阻擋使用者瀏覽內容

使用者背景資訊

搜尋引擎也可能根據使用者當下的座標位置、使用語言或過去搜尋紀錄,提供不同的搜尋結果。

  • 例如:搜尋「火鍋」時,搜尋引擎判斷想要找的是附近的火鍋餐廳,因此在不同位置就會給予不同的搜尋結果。
    使用者背景資訊影響搜尋結果頁
上一篇
找SEO公司前,只考慮SEO行情就夠了嗎?
下一篇
SEM傳統行銷公司已失靈?你要找「集客式」搜尋引擎行銷公司!