Robots.txt 文件設定教學:掌握 SEO 最佳實踐與常見錯誤排除

Published on: | Last updated:

先說結論

嗯... `robots.txt`。它基本上就是一個... 訊號。一個放在網站根目錄的純文字檔。 告訴搜尋引擎的爬蟲,哪些地方「不建議」你來逛。它不是一道牆,更像一個「請勿打擾」的牌子。就這樣。

很多人把它想得太複雜,或用錯地方。重點是,它管的是「爬取 [crawling]」,不是「索引 [indexing]」。這兩件事不一樣。

一個常見的誤會:以為擋了就不會被索引

常常有人問,為什麼我在 `robots.txt` 裡 `Disallow` 了一個網址,結果它還是出現在 Google 搜尋結果裡?

嗯,這就是那個關鍵的誤解。`Disallow` 只是告訴 Googlebot 不要去「爬」那個頁面。但如果網路上有其他地方連結到你那個被封鎖的頁面,Google 還是會知道「喔,有這個網址存在」。

結果就是,Google 可能還是會把這個網址放進索引。但是因為它沒去爬,所以不知道頁面內容是什麼。搜尋結果上就會顯示一個光禿禿的網址,下面可能寫著「因 robots.txt 的設置,我們無法提供此結果的說明」。這其實更尷尬。

所以,千萬記得,`robots.txt` 不是用來保護隱私或敏感內容的工具。 真的不想被索引,要用 `noindex` meta 標籤才對。

機器人與規則:robots.txt 就像網站的訪客指南
機器人與規則:robots.txt 就像網站的訪客指南

怎麼做:基本語法與規則

這個檔案很簡單。就是用記事本之類的工具,寫幾行字,然後存成 `robots.txt`(全部小寫),放在網站的根目錄下。 比如 `example.com/robots.txt`。

裡面基本上就是一組一組的規則,每一組包含兩個部分:`User-agent` 和 `Disallow` 或 `Allow`。

robots.txt 常用指令
指令 我的理解(口語版)
User-agent 指定這條規則是給哪個爬蟲看的。* 就是指所有爬蟲。也可以指定 GooglebotBingbot
Disallow 就是叫爬蟲「不要來這裡」。後面接的路徑,比如 /private/,就是禁止爬整個 `private` 資料夾。
Allow 這個比較特別,通常跟 Disallow 搭配。比如你封了整個資料夾,但想開放裡面某個檔案,就可以用 `Allow`。Google 和 Bing 的爬蟲會看這個。
Sitemap 嗯,這個很好用。在檔案最後面加上你網站 sitemap 的網址,可以幫助爬蟲找到你所有的頁面。 雖然你在 Search Console 也會提交,但寫在這裡,其他搜尋引擎也看得到。

一個最簡單的範例,允許所有爬蟲爬所有東西,但建議附上 sitemap:

User-agent: *
Disallow:

Sitemap: https://www.yourdomain.com/sitemap.xml

如果想禁止爬取 `wp-admin` 和 `wp-login.php` 這類後台頁面,可以這樣寫:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php

情境變體:不同情況下的寫法

有時候會需要一些比較進階的寫法。比如說,用萬用字元 `*` 或結尾符號 `$`。

  • 想封鎖所有帶有 `?` 的參數網址:
    這在電商網站很常見,用來避免爬蟲浪費資源在排序、篩選的結果頁上。
    User-agent: *
    Disallow: /*?*
  • 想封鎖特定檔案類型,例如 .pdf:
    User-agent: *
    Disallow: /*.pdf$

    這裡的 `$` 符號代表網址的結尾,確保只封鎖以 `.pdf` 結尾的網址。
在編輯器中撰寫 robots.txt 的範例
在編輯器中撰寫 robots.txt 的範例

限制與地雷:千萬別這樣做

有幾個坑,很多人都會踩。

  1. 用 `Disallow` 來 `noindex`:這是最大的錯誤。前面說過了,擋了爬取,Google 反而沒機會看到你頁面上的 `noindex` 標籤,結果可能還是會索引那個網址。 正確做法是,讓 Google 爬,然後在頁面的 HTML `` 裡加上 ``。
  2. `Crawl-delay` 指令:這是一個舊的指令,用來建議爬蟲每次抓取的間隔秒數。 以前有些文章會教這個,但重點是,Googlebot 現在已經完全不理會這個指令了。 如果你的伺服器真的撐不住,應該從伺服器效能本身去改善,或者去 Google Search Console 設定。 其他像 Bing 可能還會參考,但對 Google 無效。
  3. 大小寫搞混或放錯地方:檔案名必須是 `robots.txt`,全部小寫。 必須放在根目錄。如果放在子目錄,它是無效的。

最後,寫完之後,一定要去 Google Search Console 的「robots.txt 測試工具」檢查一下語法有沒有錯,以及你的規則是不是如預期般運作。 這個步驟可以省掉很多未來的麻煩。

概念圖:robots.txt (請勿進入) vs. noindex (進來後別對外說)
概念圖:robots.txt (請勿進入) vs. noindex (進來後別對外說)

審核清單(簡式)

每次修改 `robots.txt` 之後,快速檢查一下:

  • 檔名是 `robots.txt` (全小寫) 嗎?
  • 檔案是放在網站的根目錄嗎?(例如 `domain.com/robots.txt`)
  • 檔案格式是 UTF-8 純文字檔嗎?
  • 語法有沒有拼錯?(例如 `Disallow` 寫成 `Disalow`)
  • 有在 Google Search Console 測試過嗎?
  • 是不是不小心把重要的 CSS 或 JS 檔案給擋掉了?(這會影響 Google 渲染頁面,很重要)

基本上,這個檔案就是君子協議。 它是給「守規矩」的爬蟲看的。惡意的爬蟲根本不會理它。所以,不要把它當成安全工具。它只是一個管理 SEO 爬取效率的工具。

你在 `robots.txt` 遇過最奇怪的問題是什麼?或是有什麼獨門訣竅?在下面分享一下吧。

Related to this topic:

Comments

  1. profile
    Guest 2025-10-25 Reply
    那時候要推歐美站,結果發生一件真的有點蠢的事。A/B 測試那邊…那個 robots.txt 路徑搞錯,全新品直接被搜尋引擎擋掉,然後流量下滑,那數字真的是看到頭很痛、沒什麼話好說的那種。唉,後來只好去麻煩別部門的人多幫忙一次,每次都雙重檢查才把曝光拉回來。嗯,有些細節真的不能鬆懈欸,一個小東西漏了就整盤亂掉,講出來還是覺得心累。
  2. profile
    Guest 2025-10-22 Reply
    那陣子弄系上活動官網的時候,唉,有點狼狽。robots.txt那東西,本來只是想簡單藏幾個測試頁,沒想到…欸結果路徑多打一個字吧還是什麼,我主頁直接被搜尋引擎擋掉 - 真的超傻眼。當下根本不知道哪邊壞掉,只看到網站流量突然降到快歸零,還一度懷疑是不是伺服器又出包了。 後來和老師討論,才比較明白這些權限啊什麼的不能隨便設,一條Disallow下去如果沒搞清楚就慘。有種一不小心全站都跟著消失的感覺。現在變得有點神經質,每次網站更新內容、改結構,開會都先喊檢查robots.txt還有Sitemap再說。同學也開始會在意這些細節,不只我碎念。 其實也就是要很小心,很注意那些看起來不起眼的小設定啦。不過搞懂之後,好像也不用一直怕它出事,有點像過了新手期,比以前自在一些。
  3. profile
    Guest 2025-10-21 Reply
    有點懶得回想,但那件事一直卡在腦袋。小孩之前說要記錄學習筆記,我幫他架了個簡單網站,還很認真加上 robots.txt 想說讓搜尋引擎更友善。結果就…好像哪裡沒搞懂,把主要頁面都 disallow 掉了,一兩天後發現,流量直接清零,就連 Google 也查不到,小孩整個問我「爸爸為什麼不能找到?」那時候真的有夠自責。反而是檢查 sitemap 才注意到路徑根本沒對好,新東西完全沒收錄,不改根本永遠都隱形。我才開始理解這種資源分配的眉角,每次碰到備份或重整,都會特別緊張翻一下 robots.txt,深怕又犯蠢。有時候只差一行指令,就可能全部毀掉,好在最後總算救回來,只是整段過程,小孩也跟著慌張。現在一有新頁面,我會強迫自己多檢查幾次,其實這些細節很容易忽略啦,可被放大影響真的超煩的。
  4. profile
    Guest 2025-10-16 Reply
    那時真的沒啥精神,好像現在也是。說到 robots.txt 指令擺錯,有一次真的是直接踩雷,那個感覺很像突然掉進洞裡。海外案子,一開始覺得就傳個 sitemap,也沒再檢查細節,很快搞定。本來以為沒什麼,結果過了幾天,Google Search Console 數據突然狂降…一看收錄率,整個嚇醒。 Disallow 打死整包資料夾。最重要那些通通被擋掉,只能一直反覆核對路徑。當時找工程師全部抓來討論怎麼收尾,其實誰也沒第一時間想到是這問題。SOP 趕快補上一條 - 之後看到 robots.txt 都還會多看兩眼。 國外客戶常常習慣英文站配置直接貼中文版,但根本沒想過華語用戶愛看的分類、連頁面格式都不一樣,硬抄反而亂掉。例如搜尋的資源分配,大站根本不可能全放行,哪些要封掉哪些不能動,每次都在協調。 遇到敏感需求的還會寫雙層防護,有些頁面其實光整理架構跟用途,一週時間就這麼去了。有時也很想直接推 A/B test,搞網站不要只靠第六感亂設參數,不然出事沒人買單啦。拜託專案一定要排測試時段,不只有歐美那套方法才適合—台灣、中國都能用。有做資料比對才不心虛…這種東西小地方炸一次流量真會嚇死,你懂嗎?
  5. profile
    Guest 2025-09-19 Reply
    孩子,這網站管理好像很複雜耶!我聽不太懂這些技術術語,妳能幫我解釋一下robots.txt是什麼嗎?搞不好對我們部落格有幫助呢。
  6. profile
    Guest 2025-09-14 Reply
    哇!這篇文章太實用了!最近在做網站SEO,常常卡在robots.txt的設定。尤其是流量追蹤這塊,真的是個大學生必修課。看來我得好好研究一下,不然可能又要栽跟頭了~
  7. profile
    Guest 2025-08-25 Reply
    聽說這篇文章挖掘了不少robots.txt的細節,但真的有那麼複雜嗎?我在業界摸索多年,感覺有些點似乎太瑣碎。不過,技術細節總是魔鬼藏在裡頭,誰知道呢
  8. profile
    Guest 2025-05-11 Reply
    這篇文章真的很實用!我有個問題,對於不同國家的網站,Robots.txt的設定會不會有所不同呢?特別是在多語言網站上,有什麼特別需要注意的地方嗎?