robots.txt 設定常見錯誤與修正方法

robots.txt 檔案小到不起眼,影響卻遠超一般人想像。它決定搜尋引擎要去哪裡爬、不去哪裡爬,進而影響你的網頁被發現的機會。許多站長設好檔案後就忘了檢查,殊不知一個錯誤設定足以讓整個網站從搜尋結果消失——有人曾經意外用 Disallow: / 把全站都擋了,事後才在搜尋流量暴跌才發現。本篇逐一說明語法規則、常見錯誤,以及怎麼用 Google Search Console 驗證設定正確性。

robots.txt 的基礎語法

robots.txt 是純文字檔,放在網站根目錄(例如 www.example.com/robots.txt),用簡單的指令告訴爬蟲「你可以爬這裡」或「請避開那邊」。核心語法只有三個:

User-agent 指令——標示這條規則套用的爬蟲類型。User-agent: Googlebot 代表只給 Google 爬蟲看,User-agent: * 代表全部爬蟲都適用。每個爬蟲可以有多條 Disallow 或 Allow 規則跟著,直到下一個 User-agent 出現為止。

Disallow 指令——列出不准爬的路徑。Disallow: /admin/ 封鎖 /admin/ 資料夾及其所有檔案,Disallow: /search? 封鎖含有 search 參數的頁面。空白的 Disallow: 代表全部允許爬。

Allow 指令——在 Disallow 規則底下,指定某些路徑例外允許爬。常見於電商網站,例如想擋掉 /filter/ 參數但允許 /filter/category/ 時,Disallow: /filter/ 後面接著 Allow: /filter/category/。注意順序很重要——Google 會從上往下比對,先符合的規則優先。

Sitemap 指令——告訴搜尋引擎你的網站地圖在哪,例如 Sitemap: https://www.example.com/sitemap.xml。這一行不影響爬蟲行為,純粹是方便搜尋引擎快速發現你的重要頁面,建議每個網站都加上。

一份簡潔的檔案長這樣:

User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /admin/public/

User-agent: Googlebot
Disallow: /temp/

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

路徑區分大小寫——Disallow: /Admin/ 只擋大寫的 Admin,小寫的 /admin/ 照樣可以爬。這是最容易踩的第一個坑。

四個常見的設定錯誤

意外封鎖全站

最嚴重的錯誤莫過於 Disallow: /,它把整個網站都禁爬了。有人誤寫或測試時沒移除,結果搜尋引擎再也找不到任何頁面,網站流量瞬間掉到零。檢查方法很簡單,打開根目錄的 robots.txt,看第一行有沒有這種規則。類似的還有 Disallow: 後面多了空格但沒寫路徑,某些爬蟲解讀器會誤認為禁止一切。

封鎖 CSS 和 JavaScript 導致渲染失敗

網站排版和互動功能都仰賴 CSS 和 JavaScript 檔案。如果 robots.txt 把 /css/ 或 /js/ 路徑擋了,Googlebot 雖然能抓到 HTML,卻看不到樣式和動態效果,結果誤判網站品質差、可用性低,進而降低排名。現在 Google 爬蟲能執行 JavaScript,但前提是能成功下載 JS 檔案。許多人為了減輕伺服器負擔或出於安全考量想隱藏資源路徑,反而搬石頭砸自己的腳。正確做法是允許爬蟲存取資源,而是在伺服器層(.htaccess 或 robots meta tag)做其他限制。

用 Disallow 代替 noindex

有人想移除某些頁面(像是內部搜尋結果頁、購物車、測試頁),直接在 robots.txt 用 Disallow 封鎖。結果呢?爬蟲看不到那個網址,也就永遠看不到頁面上的 meta noindex 標籤。如果有外部網站連到這個被 Disallow 的頁面,Google 還是會把它列在搜尋結果裡,只是沒有摘要。這是根本上的誤解:robots.txt 控制爬蟲是否能抓取頁面,noindex 控制頁面是否進入索引。兩者用途不同,不能互相替代。

正確做法是先在 robots.txt 允許爬蟲抓取,再在頁面的 HTML 裡或 HTTP header 加入 meta name="robots" content="noindex",或者針對特定路徑在 Search Console 的索引覆蓋率設定裡排除。

Disallow 與 noindex 的混亂組合

衍伸自上一個錯誤,有人同時用 Disallownoindex,以為雙重保險更保險。實際上 Disallow 已經擋住爬蟲了,noindex 形同虛設。另一個極端是允許爬取卻忘了加 noindex,結果測試頁或草稿頁默默進了索引,站長才在 Google Analytics 看到來自草稿的流量時大吃一驚。

在 Google Search Console 中測試設定

設定好 robots.txt 後,不要急著上線,先在 Google Search Console 測試一遍。

開啟 Search Console,進入左欄的「體驗」→「robots.txt 測試工具」。這裡既能檢查語法,也能模擬爬蟲行為。編輯器上方會即時顯示任何語法警告或邏輯錯誤,例如多餘空格、不合法的指令名稱。

在下方的文字方塊輸入你想測試的網址,旁邊下拉選單選擇模擬對象(預設是 Googlebot,也可選特定爬蟲如 Googlebot-Mobile 或 GoogleAdsBot)。按下測試按鈕後,工具會告訴你這個網址是「可接受」還是「已封鎖」。

如果結果不符預期,回到編輯器修改 robots.txt,工具會立即重新檢查。這樣就能在正式上傳前發現問題。值得注意的是,這個工具只能模擬 Google 爬蟲的行為,無法預測其他爬蟲(如 Bing、百度、或 AI 訓練爬蟲)的解讀方式,所以測試通過也只代表 Google 那一塊沒問題。

現代網站的新考量——AI 爬蟲控制

近幾年 ChatGPT、Claude、Gemini 等生成 AI 服務都有各自的爬蟲(GPTBot、ClaudeBot、Google-Extended、CCBot),它們來抓取網路內容作為訓練資料。如果你不想自己的文章被 AI 模型學習,可以在 robots.txt 裡針對這些爬蟲加入 Disallow 規則,例如:

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

這樣就能阻止 OpenAI、Anthropic、或 Common Crawl 的爬蟲存取你的網站。反之,如果希望自己的內容被 AI 模型學習以提高曝光,就讓這些爬蟲暢通無阻。這種細粒度的控制在 2026 年已成為 SEO 的基本功。

定期檢查與維運

設定 robots.txt 時有三個重點要記住。路徑區分大小寫,對著你的伺服器真實路徑打;Allow 規則一定要寫在對應的 Disallow 規則底下,順序很關鍵;永遠允許爬蟲存取 CSS、JavaScript 和圖片,除非有特殊安全需求,否則用 noindex 或後台認證來控制內容可見性。

定期掃一遍 robots.txt(建議季度一次),用 Search Console 測試幾個代表性的網址,確保設定仍符合業務需求。一份好的檔案應該像水電管線一樣,安裝後就不需要常修,除非網站結構大改版。

相關文章
標籤: SEO 優化, 搜尋引擎爬蟲, 站點地圖, Google Search Console, robots.txt