Robots.txt 是什麼?哪些設定會害你不被收錄
1. robots.txt 是控制搜尋引擎抓取網站的重要設定檔。
2. robots.txt 控制 crawl,而 meta robots 控制 index。
3. 錯誤設定可能導致網站無法被搜尋引擎收錄。
4. AI crawler 也可能依據 robots.txt 判斷是否抓取網站內容。
很多企業網站 SEO 表現不佳,其實不是內容問題,而是搜尋引擎根本無法正常抓取網站。其中最常見的原因之一,就是 robots.txt 設定錯誤。
robots.txt 是網站用來告訴搜尋引擎哪些頁面可以抓取、哪些不要抓取的設定檔。如果設定不當,可能導致搜尋引擎無法爬取網站內容,進而影響網站收錄、排名,甚至讓重要頁面長時間無法出現在搜尋結果中。
如果你正在規劃網站 SEO 架構,也可以延伸閱讀 Sitemap.xml 是什麼? 與 Google Search Console 教學。
Robots.txt 是什麼
robots.txt 是網站根目錄中的一個純文字檔,用來告訴搜尋引擎爬蟲哪些頁面可以抓取、哪些頁面不要抓取。從 SEO 的角度來看,robots.txt 會直接影響爬蟲封鎖範圍、網站收錄效率,以及搜尋引擎如何分配檢索預算(Crawl Budget)。
robots.txt 的網址通常是:
https://你的網域/robots.txt
搜尋引擎在開始爬取網站前,通常會先讀取這個檔案,再依照裡面的規則決定抓取範圍。
例如:
User-agent: * Disallow: /admin/
這段設定代表:所有搜尋引擎不要抓取 /admin/ 目錄。
robots.txt 常見用途包括:
- 控制搜尋引擎抓取範圍
- 減少不必要的頁面被爬取
- 協助大型網站管理 crawl budget
- 避免測試頁面或後台路徑被正常搜尋爬蟲抓取
robots.txt 是建議,不是強制規則
robots.txt 本質上是搜尋引擎之間的協定,而不是強制性的安全機制。也就是說,Google、Bing 這類正規搜尋引擎通常會遵守 robots.txt,但惡意爬蟲、資料抓取工具或非標準 bot 不一定會理會。
這點非常重要,因為很多人誤以為只要把某個路徑寫進 robots.txt,就等於把內容保護起來。事實上,robots.txt 只是公開告知「請不要抓」,並不是權限控管,也不是隱私防護工具。
如果你要保護敏感資料,應該使用登入權限、伺服器權限控制、防火牆或其他安全機制,而不是只依賴 robots.txt。
robots.txt 如何影響網站收錄與 SEO
robots.txt 主要影響的是 crawl,而不是直接決定 index。換句話說,它控制的是搜尋引擎能不能抓到頁面內容,而不是單純控制網址會不會出現在索引裡。
搜尋引擎通常會經過兩個步驟:
- Crawl(抓取):搜尋引擎爬蟲讀取網站內容
- Index(建立索引):搜尋引擎把頁面加入搜尋資料庫
如果 robots.txt 阻擋了重要頁面,搜尋引擎就可能無法取得頁面內容,導致:
- 新頁面長時間未收錄
- 網站流量突然下滑
- Google Search Console 出現抓取相關問題
- 重要內容無法正常參與排名
robots.txt 不等於不會被收錄
即使頁面被 robots.txt 封鎖,Google 仍有可能索引該 URL。這是很多人對 robots.txt 最大的誤解。
實際上,robots.txt 只是「禁止抓取(Crawl)」而非「禁止索引(Index)」。如果某個頁面雖然被 robots.txt 阻擋,但外部仍有連結指向它,搜尋引擎還是可能知道這個網址存在,進而把 URL 本身放進索引。只是因為無法抓取頁面內容,搜尋結果通常不會顯示完整摘要,而可能出現「因 robots.txt 限制而無法提供內容說明」之類的提示。
因此,如果你的目標是完全避免頁面被收錄,就不應只靠 robots.txt,而應改用 meta robots noindex 或 HTTP Header 的 X-Robots-Tag。
robots.txt 的常見指令:User-agent、Disallow、Allow、Sitemap
在 robots.txt 實務設定中,最常見的指令包括 User-agent、Disallow、Allow 與 Sitemap。如果只理解 Disallow,而忽略 Allow 或 Sitemap,對技術 SEO 的理解會不完整。
User-agent
指定規則是要給哪一種爬蟲看,例如:
User-agent: *
代表套用到所有爬蟲。
Disallow
用來指定不要抓取的路徑,例如:
Disallow: /admin/
Allow
Allow 指令用來指定「即使上層路徑被封鎖,某些特定檔案仍可抓取」。這在許多網站架構中都很常見,例如後台系統目錄通常不希望被搜尋引擎抓取,但某些 API 或系統檔案仍需要保留抓取權限。
例如:
User-agent: * Disallow: /admin/ Allow: /admin/api/
這代表搜尋引擎不要抓取整個 /admin/ 後台目錄,但允許抓取 /admin/api/ 這個子路徑。
在某些 CMS(例如 WordPress)中,也會看到類似設定,例如:
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php
這是因為部分系統功能需要保留 AJAX 或 API 檔案的抓取權限。
Sitemap
Sitemap 指令可幫助搜尋引擎更快找到網站的重要 URL,例如:
Sitemap: https://example.com/sitemap.xml
如果你還沒有釐清 sitemap 的角色,可先閱讀 Sitemap.xml 是什麼?。
最常見 5 種 robots.txt SEO 錯誤
多數 robots.txt 問題不是完全沒設定,而是設定方向錯了。以下幾種情況,是最常造成網站收錄異常、SEO 流量下降與爬蟲封鎖問題的常見錯誤。
1. 封鎖整個網站
這是最嚴重的情況:
User-agent: * Disallow: /
這代表所有搜尋引擎都不能抓取整個網站。這種設定常出現在測試站,若正式站上線後忘記移除,會直接影響整站收錄。
2. 誤擋重要內容目錄
例如把 /blog/、/news/、/products/ 這類主要 SEO 流量區塊封鎖,會直接讓內容無法正常被爬取與評估。
User-agent: * Disallow: /blog/
3. 阻擋網站必要資源(CSS / JavaScript)
如果 robots.txt 阻擋了網站的重要資源,例如 CSS、JavaScript 或圖片,搜尋引擎可能無法正確渲染頁面,進而影響對內容的理解與 SEO 評估。
例如以下設定可能造成問題:
User-agent: * Disallow: /assets/
如果網站的 CSS 或 JavaScript 檔案都放在 /assets/,搜尋引擎就可能無法完整載入頁面。
這類情況在某些 CMS(例如 WordPress)中也很常見。WordPress 的資源通常位於 /wp-content/ 目錄,例如:
- /wp-content/uploads/
- /wp-content/themes/
- /wp-content/plugins/
如果整段封鎖,例如:
Disallow: /wp-content/
搜尋引擎可能無法讀取必要的 CSS 或 JavaScript。
但如果只是針對特定私密資料夾,例如:
Disallow: /wp-content/uploads/private/
這通常是合理的設定。
重點並不是「某個目錄一定不能阻擋」,而是避免阻擋 搜尋引擎渲染頁面所需要的資源檔案。
4. 測試站設定被帶到正式站
這是企業網站改版常見問題。開發階段為避免測試站被收錄,常會先寫:
User-agent: * Disallow: /
但如果正式上線時直接沿用,就會造成整站收錄異常。
5. 沒有正確宣告 Sitemap
雖然沒有宣告 sitemap 不一定會導致完全不收錄,但會降低搜尋引擎快速發現新頁面的效率,尤其對內容型網站、新聞型網站或結構較複雜的網站影響更明顯。
robots.txt 與 crawl budget 的關係
對大型網站來說,robots.txt 不只是爬蟲封鎖工具,也會影響 crawl budget 的配置效率。
搜尋引擎每天願意花在你網站上的抓取資源有限。如果網站有大量低價值頁面,例如站內搜尋頁、篩選頁、參數頁或重複頁,卻沒有妥善控管,就會讓爬蟲浪費預算在不重要的 URL 上。
這時透過 robots.txt 排除不必要的抓取範圍,可以幫助搜尋引擎更聚焦在重要頁面,例如核心服務頁、文章頁、產品頁與案例頁。
robots.txt 與 AI crawler
近年來,除了傳統搜尋引擎爬蟲外,許多 AI 系統也會抓取公開網站資料;但不同 AI crawler 的用途並不完全相同,有些偏向模型訓練,有些則偏向搜尋、摘要或依使用者要求讀取內容。
常見的 AI 相關 crawler 可能包括(不同平台名稱可能持續調整):
User-agent: GPTBot User-agent: OAI-SearchBot User-agent: Google-Extended User-agent: ClaudeBot User-agent: PerplexityBot
這類 crawler 生態目前仍在快速變化,不同公司也可能持續新增或調整 user-agent 名稱與用途,因此實際設定前,建議先查閱各平台官方文件。
不同 AI 平台可能同時使用多個 crawler,例如搜尋、引用與資料收集用途,需要特別注意的是,robots.txt 對 AI crawler 的約束力,本質上與對搜尋引擎一樣,屬於自願遵守的協定,而不是法律或技術上的強制封鎖。主流平台通常會公開表示遵守 robots.txt,但這無法保證所有 AI 系統或第三方資料抓取工具都會遵從。
在實務上,網站主常見的取捨是:
- 封鎖部分 AI crawler:降低內容被用於模型訓練或大規模抓取的可能性
- 允許部分 AI crawler:增加網站內容被 AI 搜尋、摘要或引用的機會
例如 Google 官方說明,Google-Extended 主要用於管理內容是否可被 Google 用於 Gemini Apps 與 Vertex AI 的模型用途,但不會影響網站在 Google Search 的收錄與排名。OpenAI 官方則區分 GPTBot 與 OAI-SearchBot;如果你希望內容能更容易出現在 ChatGPT 搜尋摘要與引用中,通常需要避免誤擋 OAI-SearchBot 或相關搜尋 crawler。
簡單理解:
- 訓練型 crawler:偏向蒐集資料供模型開發或訓練使用
- 搜尋 / 引用型 crawler:偏向讓 AI 系統在回答問題時能發現、讀取與引用你的內容
封鎖「訓練型爬蟲」可以降低內容被用於模型訓練的可能性,但誤擋「搜尋/引用型爬蟲」可能降低網站在 AI 搜尋中的可見度, 進而影響 AI 摘要、引用與推薦的機會。因此在 AI 搜尋環境下,robots.txt 的設定不只要考量 SEO,也要思考你的 GEO 策略:你是希望內容避免被特定 AI 系統使用,還是希望提高被 AI 搜尋與引用的機會。兩者並不一定相同,設定前應先明確定義目標。
如何檢查自己網站的 robots.txt 有沒有問題
如果你懷疑網站收錄異常,第一步就應該先檢查 robots.txt。尤其是以下幾種情況,更建議優先排查:
- 網站剛完成改版或搬移主機
- 剛從測試站轉為正式站上線
- 近期自然搜尋流量突然下降
- Google Search Console 出現大量未收錄頁面
方法一:直接開啟 robots.txt 檔案
在瀏覽器網址列輸入:
https://你的網域/robots.txt
開啟後,逐一確認以下幾個常見問題:
1. 是否封鎖了整個網站?
# 危險設定,會封鎖整站 User-agent: * Disallow: / # 正常設定,只封鎖後台管理目錄 User-agent: * Disallow: /admin/ Sitemap: https://example.com/sitemap.xml
只要看到 Disallow: / 單獨出現,就代表整個網站對搜尋引擎關閉,需要立即處理。
2. 是否封鎖了重要頁面或目錄?
檢查是否有類似以下設定:
Disallow: /blog/ Disallow: /products/ Disallow: /assets/
如果這些目錄是網站的主要內容來源,封鎖後搜尋引擎將無法抓取,直接影響網站收錄與排名。
在某些 CMS(例如 WordPress)中,也可能看到類似設定,例如:
Disallow: /wp-content/themes/
如果該目錄包含網站主要 CSS 或 JavaScript,搜尋引擎可能無法正確渲染頁面,進而影響對頁面內容的理解。
3. 是否正確宣告 Sitemap?
robots.txt 內應包含 sitemap 的完整路徑,例如:
Sitemap: https://example.com/sitemap.xml
若沒有宣告 sitemap,搜尋引擎需要更長時間才能發現新頁面。
4. 是否有殘留的測試站規則?
測試站通常會設定以下規則,避免網站尚未完成時被搜尋引擎抓取:
User-agent: * Disallow: /
如果正式上線時忘記移除,就會導致整個網站 SEO 被封鎖。這是實務中非常常見的失誤。
方法二:透過 Google Search Console 確認
Google Search Console(GSC) 是確認頁面是否被 robots.txt 影響的最直接工具。
單一頁面檢查:網址審查工具
GSC 左側選單 → 「網址審查」 → 輸入要檢查的頁面網址
系統會顯示該頁面的抓取與索引狀態。如果出現 「網址已遭 robots.txt 封鎖」,代表該頁面目前無法被 Google 抓取。
批量確認:索引報告
GSC 左側選單 → 「索引」→「網頁」
在「未收錄原因」中,可以找到 「因 robots.txt 封鎖而排除」 的頁面清單,讓你一次掌握所有受影響的頁面。
方法三:官方新版驗證工具(robots.txt 報告)
由於 Google 已移除舊版的互動式 robots.txt 測試工具,目前需要透過 Google Search Console(GSC) 的 robots.txt 報告來檢查設定狀態。
Google 目前將 robots.txt 的檢查功能整合在 Search Console 中,主要用於監測 robots.txt 檔案的抓取狀態與語法健康狀況。
查看位置:
進入 Google Search Console → 左側選單 「設定」 → 找到 「robots.txt」 欄位並點擊。
主要功能:
- 顯示 Google 最近一次抓取到的 robots.txt 內容
- 顯示最近抓取時間
- 標示 robots.txt 是否存在 語法錯誤 或 警告
工具限制:
- 此工具僅用於 查看 robots.txt 狀態
- 無法像舊版工具一樣直接在介面測試規則
- 若需要修改 robots.txt,必須先在伺服器上更新實體檔案
- 修改完成後,再回到 GSC 請求 Google 重新抓取
robots.txt 健診清單
完成以上步驟後,可以用這份清單做最後確認:
✔ 確認沒有 Disallow: / 封鎖整站
✔ 確認 CSS 與 JavaScript 資源未被封鎖
✔ 確認 Sitemap 已正確宣告完整路徑
✔ 確認重要頁面與目錄未被誤擋
✔ 確認沒有殘留測試站或 staging 環境規則
✔ 使用 GSC 網址審查確認關鍵頁面的抓取狀態
只檢查 robots.txt 還不夠
需要特別注意的是,很多收錄問題並不只來自 robots.txt,建議同步確認以下項目:
- meta robots 設定:頁面是否有 noindex 標籤
- Sitemap 狀態:sitemap 是否已提交且可讀取
- GSC 索引報告:是否有其他未收錄原因
簡單理解:
- robots.txt 控制「能不能抓取」
- noindex 控制「要不要收錄」
兩者需要一起排查,才能完整診斷網站的收錄問題。
不確定網站的 robots.txt 是否設定正確?
如果你的網站近期出現未收錄頁面增加、自然流量下滑,或剛完成改版、搬移主機,建議同步檢查 robots.txt、Sitemap、meta robots 與 Google Search Console 狀態,避免基礎設定錯誤影響 SEO 表現,或也可以 聯絡我們 協助進行網站 SEO 與 GEO 架構檢查。
會。robots.txt 會影響搜尋引擎是否能抓取網站頁面。如果 robots.txt 設定錯誤,例如封鎖重要內容目錄或使用 Disallow: / 封鎖整個網站,搜尋引擎可能無法抓取頁面內容,進而影響網站收錄與搜尋排名。
robots.txt 用於控制搜尋引擎是否抓取頁面,而 meta robots 則用於控制頁面是否被搜尋引擎收錄。robots.txt 在爬蟲抓取頁面之前提供規則,而 meta robots 則是在搜尋引擎讀取頁面內容後才會生效。
不一定。robots.txt 只能限制搜尋引擎抓取頁面,但不一定能完全阻止 URL 被索引。如果其他網站連結到該頁面,搜尋引擎仍可能將 URL 索引。因此若希望頁面不被收錄,通常應使用 meta robots noindex 或 X-Robots-Tag。
部分 AI crawler(例如 GPTBot、PerplexityBot 或 ClaudeBot)會參考 robots.txt 設定來決定是否抓取網站內容。不過 robots.txt 本質上是自願遵守的協定,無法保證所有 AI 系統或資料抓取工具都會遵從。
常見問題包括封鎖整個網站、阻擋重要內容目錄、封鎖 CSS 或 JavaScript 資源,以及測試站設定被帶到正式站。這些錯誤可能導致搜尋引擎無法正確抓取網站內容,影響收錄與 SEO 表現。