robots.txt是什麼?了解robots.txt如何運作、怎麼做

robots.txt是與爬蟲溝通的方式,一般在前台顯示內容,是我們與用戶溝通,但要與搜尋引擎溝通,也就是爬蟲,就需要透過robots.txt的文件,告訴它網站有哪些限制。

什麼是robots.txt

robots.txt是網站中文本文件,也就是用於機器人的一組指令,告訴搜尋引擎哪些頁面應該爬取,哪些頁面不能爬取。 搜尋引擎的運作過程是「檢索(Crawling)-索引(Indexing)-排名(Ranking)」,因此在檢索階段也就是爬蟲爬取時,如果你有部分網站頁面不想被爬,那麼就能透過robots.txt與爬蟲溝通。
robots.txt-檢索索引過程
那為什麼要使用robots.txt,主要原因是用來避免網站內容超載,影響速度,二來是限制頁面不要出現在搜尋結果頁上。

robots.txt很重要嗎?對SEO有什麼嗎?

以下列出三個我覺得robots.txt對於SEO的影響

1.管理爬取預算

如果你是大型網站,更需要管理「爬取預算Crawl Budget」。

爬取預算是什麼,就是以Google來說,就是指在時間範圍內,到你網站上抓取頁面的數量,這個數量會根據你的網站大小、反向連結數量、運行狀態不同。

因此當你的網站很龐大如媒體網站、電商平台等,超過爬取預算,就會有部分頁面沒有編入索引,沒有索引就不會出現搜尋結果頁面上,因此管理爬取預算,對於大網站來說,才能確保想索引的頁面都能被索引。

2.隱藏重複或是非公開頁面

對於爬蟲來說,爬取到網站就是爬取全部網頁,但有些頁面不需要出現在搜尋結果頁中(SERP),就像是:

  • 測試中的網頁
  • 開發中的網站
  • 內部頁面,如購物車、登入頁
  • 重複頁面

測試的網頁或是開發中網站都屬於未完成頁面,如果出現在搜尋結果頁上,容易讓使用者疑惑帶來不佳的體驗。
內部頁面有些較為隱私,因此也建議不要收錄,另外就是太過重複的內容,考量不要浪費爬取預算,都很建議設定robots.txt。

H3:3.隱藏資源
像是有些檔案如PDF、影片、圖像等資源,如果不想顯現於搜尋結果頁中,只想提供特定人抓取瀏覽,/也可以設定robots.txt來阻止爬取。

robots.txt的位置在哪裡

robots.txt 檔案位於網站的根目錄,每個網站都相同。因此你的網站是www.example.com ,那robots.txt 檔案就位於 www.example.com/robots.txt

如果網站有頁面想要編寫、提交、查詢robots.txt 檔案,就可以直接在網址後輸入查看,那至於想要修改robots.txt檔案內容,我們要注意哪些呢?

robots.txt參數說明與規範(可使用的工具)

再開始調整前,我們先來認識常用到的參數

robots.txt常用參數

  • User-agent:檢索器名稱,可以想像成在網路中的名牌,像是瀏覽器和作業系統等資訊,如瀏覽器是Chrome、Firefox、Bing等或其他應用程式,透過指定想針對哪個對象。舉例:如果設定User-agent:Googlebot,那就是我只針對Googlebot這個檢索器下指令
  •  Allow:需填寫完整路徑,告訴搜尋引擎哪些網頁、檔案允許被檢索
  • Disallow:需填寫完整路徑,說明不允許被檢索的網站內容
  • Crawl-delay:可設定檢索器造訪「最短時間間隔秒數」,需以阿拉伯數字填寫
  • Sitemap:Sitemap 需要放上完整的網址,有區分大小寫須留意

robots.txt通用原則

理解參數所代表的涵意之後,以下是要注意的地方:

  • robots.txt檔案包含一個或多個群組,每個群組開頭都會以User-agent 這一行指定群組適用的檢索器,使用「*」是萬用字元適用所有爬蟲。
    寫法是這樣 User-agent:*
  • 每個網站只能有一個robots.txt檔案
  • robots.txt需使用文字編輯器編輯,不能使用Word這類文書軟體,格式需要是UTF-8的文字檔案,如果不是Google會忽略,產生字元符號不相容的問題,導致無法轉譯。

robots.txt編輯工具

可以使用哪些文字編輯器來編輯robots.txt呢
這邊列舉包含:記事本、Notepad、TextEdit、vi和emacs等工具

  • 內容需以CR、CR/LF或是LF等分行字元才行
  • 檔名要是robots.txt,只能是小寫
  • 檔案大小也要規範,須在500KB之內,如果超過的話Google會忽略超標內容
  • 檔案容量須小於 500 KB,超過的話,Google會忽略某些內容
  • 檔名須為「robots.tx」(全小寫)

robots.txt使用情境說明

Google官方文件提到robots.txt 實用規則,以下列出常用的情境,讓你更快理解

1.禁止檢索整個網站

這說明,所有的網址都不能爬取,「*」代表著所有檢索器,Disallow但不可檢索;適用於未完成的網站

User-agent: *
Disallow:

2.「禁止」檢索特定目錄及其中內容

所有檢索器,不能檢索特定路徑的網站內容,也就是不能檢索sales這個目錄及books的內容

User-agent: *
Disallow: /sales/
Disallow: /books/fiction/contemporary/

3.「禁止」所有檢索器存取網站內容,但某一個檢索器除外

允許Googlebot檢索器可以爬取網站內容,其他檢索器都不行

User-agent: Googlebot
Allow: /

User-agent: *
Disallow: /

4.允許所有檢索器存取網站內容,但某一個檢索器除外

允許所有檢索器爬取,除了yahoobot這個檢索器

User-agent: yahoobot
Disallow: /

User-agent: *
Allow: /

5.禁止檢索特定圖片

所有檢索器,都禁止檢索「book.jpg圖片」

User-agent: *
Disallow: /images/book.jpg

robots.txt測試工具

當你已經上傳新的robots.txt到後台,Goolge提供兩種方式測試robots.txt標記是否成功。

  1. Search Console中robots.txt 測試工具
  2. 如果你是工程師,可參考 Google 的開放原始碼 robots.txt 程式庫 ,建立自己的程式庫,在自己的電腦上測試robots.txt 檔案。

這邊在說明一下Search Console中如何查看robots.txt,有哪些訊號

當你的網站是透過「網域層級資源」連結Google Search Console,我們查看robots.txt檔案和檢索狀態,報表會列出資源內主機前20名的robots.txt檔案,並且顯示30天內狀態,擷取狀態出現的值包含:

  • 已擷取
    說明Google在檢索時,已成功傳回robots.txt檔案
  • 未擷取-找不到(404)
    如果已經在所列的網址發布robots.txt檔案,卻看到要求取得此檔案時發生404錯誤(檔案不存在)這個錯誤,就需要檢查網址查看問題。
  • 未擷取-其他原因
    要求取得檔案時發生了問題,我們就要查查看是哪邊出了問題,這邊可參考Google官方「無法索引問題清單」。

過去Google有開放測試robots.txt,但目前這項工具已停止,因此如果你有想要測試新規則或是還沒發佈的檔案要測試robots.txt,就需要使用第三方工具,這邊可直接搜尋「第三方檔案 robots.txt 測試工具

robots.txt要注意的事

想隱藏網址robots.txt有風險

如果有些頁面網址想要隱藏封鎖,不建議使用robots.txt,因為robots.txt所設定的只能做到宣告,並非是強制作用,加上robots.txt是存放在根目錄,非常公開透明,因此真的需要鎖著某個網址存取權,建議採用其他方式處理,會更安全。

其他網站有連結

robots.txt封鎖頁面,還是會建立索引 即使你的網站透過robots.txt檔案禁止某個頁面進行檢索或索引,但如果網路上有其他網頁有設定該網址的連結,Google仍然會索引顯示在搜尋結果中。 因此從上面兩點我們可以看出robots.txt封鎖網址是無法完全不顯現在搜尋結果頁上,如果真的要避免隱藏網址顯示,建議可以使用密碼保護、noindex meta 或是乾脆將網頁移除。

Sitemap檔案不建議放在robots.txt

Robots.txt可以指定Sitemap位置,但不建議用這方式提交Sitemap,因為放在robots.txt中,大家都可以看到,等於是把自己網站細節開誠布公。

Meta robots 說明

前面提到如果想要告訴搜尋引擎不要索引,可以用更好的方式,那就是使用「noindex」;當Google在檢索網頁時看到noindex的標記,就會將這個網頁排除。

那要如何操作noindex對Google下達指令呢?

這要說到「meta robots」,這個指令有別於rotobs.txt是一個獨立的檔案,它是直接寫在HTML中區段的「meta tag」中,寫法如下:

<meta name=”robots” content=”noindex”>

簡單說明上面這段
<name>是屬性的值,後面就是設定檢索器得名稱,這邊設定robots,適用於所有檢索器。如果想要指定單一檢索器不要搜尋顯示某個網頁,就標示該檢索器名稱。

如指定Google不要在搜尋結果中顯示某個網頁,就可以將指定為googlebot
<meta name=”googlebot” content=”noindex”>

content後就是所設定的指令,而常見指令有下列4種

1.index:允許索引並顯示頁面
2.noindex:禁止索引該頁面
3.follow:允許搜尋引擎追蹤網頁連結
4.nofollow:禁止追蹤網頁上連結

舉例:
<meta name=”robots” content=”index , nofollow”>
這說明所有檢索器可以索引,但禁止追蹤網頁上連結

robots.txt和meta robots兩者之間差異說明

robots.txt

主要功能:防止檢索器「檢索」特定網頁或內容
設定方式:提交robots.txt檔案到根目錄

noindex

主要功能:禁止檢索器「索引」,不出現在搜尋結果頁上
設定方式:在想限制頁面head下設定meta

robots.txt-與meta robots差異

WordPress能設定robots.txt嗎

如果你是自架站,尤其是透過WordPress架設,那麼如果想要設定robots.txt就相當方便,甚至不需要透過工程師,因為透過外掛就可以完成。

我自己的網站是裝了「Rank Math SEO」,因此只要進到外掛中,找到「edit robots.txt」就可以修改非常方便。

如果你的網站不是自架站,是跟著其他平台建設,那就要詢問看看平台商是否可以讓你修改。

結語

robots.txt設定,如果你沒有特定要鎖住或排除某個網址,基本上是不太會特別去設置,不過如果真的設定了robots.txt,要查看是否只有設定特定網址禁止索引,避免把整個網站都鎖住,這樣搜尋引擎不能索引,網站就無法排名,這點特別要留意。

個人頭像照片
Jessie

Hi,我是Jessie,在電商行銷走過5年,從檔期企劃到社群經營,再接手SEO規劃,並且參與產品從零開始到上市販售,一人多工不正常,但卻是常態;也在代理商擔任專案經理,協助品牌社群代操與活動規劃。