什麼是robots.txt
robots.txt是網站中文本文件,也就是用於機器人的一組指令,告訴搜尋引擎哪些頁面應該爬取,哪些頁面不能爬取。 搜尋引擎的運作過程是「檢索(Crawling)-索引(Indexing)-排名(Ranking)」,因此在檢索階段也就是爬蟲爬取時,如果你有部分網站頁面不想被爬,那麼就能透過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標記是否成功。
- Search Console中robots.txt 測試工具
- 如果你是工程師,可參考 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
WordPress能設定robots.txt嗎
如果你是自架站,尤其是透過WordPress架設,那麼如果想要設定robots.txt就相當方便,甚至不需要透過工程師,因為透過外掛就可以完成。
我自己的網站是裝了「Rank Math SEO」,因此只要進到外掛中,找到「edit robots.txt」就可以修改非常方便。
如果你的網站不是自架站,是跟著其他平台建設,那就要詢問看看平台商是否可以讓你修改。
結語
robots.txt設定,如果你沒有特定要鎖住或排除某個網址,基本上是不太會特別去設置,不過如果真的設定了robots.txt,要查看是否只有設定特定網址禁止索引,避免把整個網站都鎖住,這樣搜尋引擎不能索引,網站就無法排名,這點特別要留意。