robots.txt 是什麼?為何它是 SEO 的基礎設定檔

robots.txt 是一個放置在網站根目錄的純文字檔案,其核心目的在於與搜尋引擎爬蟲(如 Googlebot)進行溝通,引導它們抓取網站的哪些路徑。它就像是給爬蟲的一份「參觀建議清單」,旨在節省伺服器資源,並將爬取預算集中在最重要、最有價值的頁面上。必須理解,robots.txt 是一個請求性協議,而非強制性的安全機制。合規的搜尋引擎爬蟲會尊重其中的指示,但惡意爬蟲或不請自來的機器人則可能完全無視這些規則。設定得當能提升爬蟲效率,但若設定錯誤,則可能意外阻礙重要頁面被發現,對 搜尋引擎最佳化的原理 產生負面影響。

建立 robots.txt 的第一步:命名與放置規則

正確建立 robots.txt 的基礎在於遵循嚴格的檔案命名與放置規範。這個檔案的名稱必須是全小寫的 robots.txt,因為檔案名稱在大多數伺服器作業系統中是區分大小寫的。接著,它必須放置在網站的根目錄下,例如 https://www.example.com/robots.txt,不能放在子資料夾中。檔案格式應為純文字,並建議使用 UTF-8 編碼儲存,以確保各類爬蟲都能正確解讀內容。

核心語法一次看懂:User-agent、Disallow 與 Allow

robots.txt 的語法由幾個關鍵指令構成。User-agent 用於指定規則適用的爬蟲名稱,例如 User-agent: Googlebot 專門針對 Google 的爬蟲,而 User-agent: * 則代表所有爬蟲。Disallow 指令後接路徑,用來指定不允許爬蟲抓取的內容,例如 Disallow: /admin/ 會阻止爬蟲進入管理後台目錄。Allow 指令則用於在更廣泛的 Disallow 規則中,特例允許某個特定路徑被抓取。最後,Sitemap 指令可以告知爬蟲你的 XML 網站地圖位置,例如 Sitemap: https://www.example.com/sitemap.xml,這能幫助爬蟲更有效率地發現網站上的所有頁面。

設定前必問:你的頁面真的該用 robots.txt 擋掉嗎?

在使用 Disallow 指令前,進行判斷至關重要。這裡提供一個簡明的「阻擋前判斷清單」:第一,該路徑是否為測試、開發中或 staging 環境的頁面?第二,這些頁面是否包含大量重複或極低價值的內容?第三,你是否真的需要該頁面「完全不被索引」,而不僅僅是不被抓取?請記住,robots.txt 的 Disallow 不能取代 HTML 標記中的 noindex 指令。後者才是用於告訴搜尋引擎不要將頁面放入索引的正確方法。此外,誤擋 CSS 與 JavaScript 檔案會導致爬蟲無法正確渲染頁面,嚴重影響 SEO 表現。最後需了解,robots.txt 的規範作用範圍僅限於特定的 HTTP 協議、主機名稱和連接埠,不同協議或主機下的檔案需要分別設定。

避開這三個常見錯誤,防止 robots.txt 害了你的 SEO

設定 robots.txt 時有幾個高風險陷阱必須避開。錯誤一:將其誤用為安全機制。robots.txt 是公開的純文字檔,任何人都可以透過瀏覽器查看其中的 Disallow 路徑,這反而可能暴露你的敏感目錄結構,它完全無法保護資料。錯誤二:使用 Disallow: / 進行全站封鎖。這將導致搜尋引擎爬蟲完全不抓取你網站上的任何內容,對 SEO 是災難性的。錯誤三:規則設定過於寬鬆,允許爬蟲抓取大量無價值的篩選頁面或帶有冗長參數的網址,這會浪費寶貴的爬取預算,影響重要頁面的抓取頻率。這些錯誤的嚴重性從輕微的資源浪費到嚴重的索引消失都有可能,修復難度則取決於錯誤的範圍與發現的時間點。

設定完成後:如何測試與提交你的 robots.txt?

完成撰寫後,必須透過測試來驗證設定是否正確。你可以使用 Google Search Console 中的「robots.txt 測試工具」(在某些版本中稱為「檢索」>「robots.txt 測試工具」),該工具可以模擬 Googlebot 的抓取行為,讓你檢查特定 URL 路徑是否被正確允許或阻擋。確認規則符合預期後,你無需主動提交檔案,Googlebot 會在下次造訪時自動抓取位於根目錄的 robots.txt。然而,你可以透過 Search Console 的「網址審查」工具手動觸發抓取,以加速生效。設定後的關鍵步驟是觀察 Search Console 的「索引涵蓋範圍」報告,確認沒有重要頁面因 robots.txt 的規則而意外從索引中消失或被標記為「已排除」。

問:robots.txt 檔案的正確名稱是什麼?放置在哪裡?

檔案名稱必須是全小寫的 robots.txt。它必須放置在網站的根目錄下(例如 https://www.example.com/robots.txt),不能放在子資料夾中。

問:如何使用 robots.txt 阻止搜尋引擎抓取後台或測試頁面?

你可以在 robots.txt 中加入 User-agent: * 和 Disallow: /admin/ 這樣的規則(假設後台路徑為 /admin/)。這會指示所有爬蟲不要抓取該目錄下的內容。

問:robots.txt 設定錯誤,可能會對我的網站造成什麼影響?

最嚴重的錯誤是使用 Disallow: / 全站封鎖,這會導致搜尋引擎完全不抓取你的網站。其他常見錯誤包括誤擋了重要的 CSS、JavaScript 檔案(影響頁面渲染),或過度封鎖導致爬蟲無法發現重要內容。

問:在 robots.txt 中設定 Disallow 就能保證頁面不會出現在搜尋結果中嗎?

不能。robots.txt 僅是請求爬蟲不要抓取該路徑,它無法阻止頁面被索引。如果頁面有外部連結指向,或其他爬蟲無視此規則,頁面仍可能出現在搜尋結果中。要阻止索引,應使用 noindex 標記。

問:設定好 robots.txt 後,如何知道是否正確生效?

你可以使用 Google Search Console 提供的「robots.txt 測試工具」來模擬爬蟲抓取,檢查你的規則是否按預期工作。設定後,也應在 Search Console 中觀察網站的索引狀態報告。

問:robots.txt 裡的 Allow 和 Disallow 指令同時存在時,哪個優先生效?

通常更長、更具體的路徑規則會覆蓋較短、較通用的規則。例如,Disallow: /images/ 會封鎖整個 images 資料夾,但 Allow: /images/logo.png 則允許其中的 logo.png 被抓取。但具體行為可能因爬蟲而異。

問:我應該在 robots.txt 中指定 Sitemap 的位置嗎?

強烈建議。在 robots.txt 末尾加入 Sitemap: https://www.example.com/sitemap.xml,可以幫助搜尋引擎更快速、準確地找到你的網站地圖,進而發現新內容或頁面。

問:如果我的網站有 HTTP 和 HTTPS 兩個版本,robots.txt 需要分別設定嗎?

是的。每個協議(http:// 和 https://)以及每個主機名稱(如 www 和非 www)的根目錄都應有獨立的 robots.txt 檔案。它們的規則可能不同,需要分別管理。