robots.txt 檔案是一個純文字檔案,放置在網站的根目錄,用來告訴合作的網路爬蟲哪些路徑可以或不可以要求。當搜尋引擎造訪網站時,它會是最先尋找的檔案,並使用兩個核心指令 — Allow 與 Disallow — 搭配一個選用的 Sitemap 行,來引導機器人如何遍歷您的內容。雖然這些規則是自願性質,且行為良好的爬蟲會遵守,但這個檔案仍然是在網站層級(而非頁面層級)宣告抓取偏好的標準做法。

如果您曾搜尋過發布這些規則的最佳方式,答案比您想像的還要簡短:在純文字編輯器中撰寫指令,將結果另存為 robots.txt,上傳到您網域的文件根目錄,然後透過在瀏覽器中載入該網址來進行驗證。困難之處不在於檔案本身,而在於嚴格遵守正確語法、保持路徑清單與網站實際提供的內容一致,以及避免犯下封鎖您想被索引的內容這種經典錯誤。這正是聚焦的產生器能派上用場之處,因為它會格式化指令、處理邊角情況,並讓您在內容送到伺服器之前先檢查輸出結果。

how to create robots txt
how to create robots txt

robots.txt 實際上做了什麼

機器人排除通訊協定(Robots Exclusion Protocol)最初於 1994 年提出,至今仍作為非正式的社群標準維護,定義了網站如何向使用者代理(如 Googlebot、Bingbot 及無數較小的爬蟲)通告抓取規則。該標準記錄於 W3C 社群頁面及維護者的網站上,描述了 User-agentAllowDisallowSitemap 的語法,以及一組小型現代化擴充。由於該通訊協定是自願性質的,惡意機器人可以忽略它 —— 這正是身份驗證、伺服器端存取控制,以及 noindex 中繼標籤與之並存的原因之一。

實際上,robots.txt 扮演三種角色。它將低價值的路徑(搜尋結果頁面、內部搜尋網址、測試環境目錄、暫時性的活動資料夾)排除在抓取排程之外。它將爬蟲指向您的 XML 網站地圖,以便能找到每個頁面的標準版本。當敏感區域意外從其他地方被連結時,它還能充當安全網 —— 您可以在根目錄封鎖該路徑,同時決定更強固的修補方式。

以淺白英文撰寫的核心指令

每個 robots.txt 檔案都是一或多個群組的序列,每個群組的結構相同:一行或多行 User-agent,指名規則適用的爬蟲,接著是規則本身。規則一行一條撰寫,以 AllowDisallow 開頭,後接一個路徑前置詞,配對器會將其與每個被要求的網址開頭進行比對。Disallow: / 這一行會為該使用者代理封鎖整個網站;空白的 Disallow 則允許所有內容。

指令意義範例
User-agent指名下列規則適用的爬蟲。* 配對所有合作的爬蟲。User-agent: *
Disallow爬蟲不得要求的路徑前置詞。空白值代表允許所有內容。Disallow: /private/
Allow爬蟲可以要求的路徑前置詞,用於在更廣泛的禁止規則中建立例外。Allow: /private/public-notes/
SitemapXML 網站地圖的絕對網址。必須是完整網址,而非相對路徑。Sitemap: https://example.com/sitemap.xml

路徑預設以前綴方式進行比對,所以 Disallow: /admin 會同時封鎖 /admin/admin/login/admin-archive。當您指的是目錄時,請加上結尾斜線。爬蟲區分大小寫,所以 Disallow: /Admin/ 並不會封鎖 /admin/,而這樣的不一致正是「已封鎖」路徑仍被抓取的最常見原因之一。

如何使用瀏覽器型產生器建立 robots.txt

產生器透過處理格式設定來幫您避免打錯字與大小寫錯誤,同時讓路徑清單保持在您的掌控之下。本站的 Robots.txt 產生器完全在您的瀏覽器中執行,永遠不會將您的規則傳送到遠端伺服器,這在檔案描述正式環境網站的私密區段時相當重要。以下是完整的工作流程,逐步說明。

  1. 在瀏覽器中開啟 Robots.txt 產生器。此工具載入時欄位為空,不需要登入。
  2. 輸入網站來源的完整 HTTP 或 HTTPS 網址 —— 例如 https://www.example.com。此值稍後會重複用於建立絕對的 Sitemap 網址。
  3. 選擇整體的爬蟲政策。如果想要一個寬鬆的基準、僅宣告網站地圖,請使用「Allow everything」;若要暫時全面封鎖,請使用「Disallow everything」;若想封鎖經過篩選的路徑清單,請使用「Selective mode」。
  4. 如果您選擇了選擇性模式,請每行輸入一個禁止路徑。請在適當的位置使用目錄斜線(例如 /internal-search/),並保持大小寫與伺服器實際提供的內容一致。
  5. 點擊 Generate。此工具會在可閱讀的文字區域中呈現完整檔案,包括任何預設的 User-agent: * 群組,以及由您的來源網址所建立的 Sitemap 行。
  6. 逐字元檢查輸出結果。確認每個被封鎖的路徑使用與網站相同的大小寫、Disallow 行的範圍不會過廣而涵蓋您希望被索引的網址,且網站地圖網址能正確解析。
  7. 在發布之前,先將新文字與目前的正式檔案進行比對。在另一個分頁開啟 https://your-site/robots.txt 並比對兩個檔案的差異,這樣可以發現對現有規則的意外變更。
  8. 將檔案以純 UTF-8 文字(不含 BOM、無富格式)另存為 robots.txt,並上傳到您網域的文件根目錄,使其能在 /robots.txt 解析。

由於產生器從不傳輸您的設定資料,您可以在草擬期間安心貼上內部路徑模式。唯一會離開您瀏覽器的資料,就是您事後選擇下載或複製的內容。

發布與驗證檔案

檔案儲存並上傳後,請以爬蟲的方式進行驗證:在瀏覽器中、curl 中,或您慣用的搜尋引擎內建測試工具中,直接要求該標準網址。該檔案必須以 200 OK 狀態傳回,並回應 text/plain(或相容的)內容類型,不得包裹在 HTML 中、不得重新導向,也不可被防火牆規則封鎖。對於大多數爬蟲而言,非 200 的回應會被視為「沒有 robots.txt」,這代表預設行為是「允許所有內容」 —— 這通常不是您想要的。

發布後,請給主要的爬蟲一段時間重新整理其快取副本。對於活躍的網站,大多數引擎會在一天內重新擷取 robots.txt,但透過搜尋主控台的 robots.txt 測試器手動擷取可以加速這個週期,並讓您清楚看到每個爬蟲實際解析了哪些行。如果您要在大型網站上推出新的封鎖清單,請考慮先在測試來源中分階段進行變更,以便在上線前確認規則的行為符合預期。

常見陷阱與避免方式

同一小群錯誤佔了大多數損壞的 robots.txt 檔案。將 Disallow 當成身份驗證是最嚴重的類別:該指令只是請合作的爬蟲不要擷取某個路徑,因此並不能對知道網址的使用者隱藏頁面。對於真正敏感的資料,請在應用程式層級進行控管,或回傳適當的 401/403 回應。

其他值得檢查的陷阱:在會加入 BOM 或智慧引號的富文字編輯器中撰寫檔案、為 Sitemap 指令使用相對路徑、封鎖了包含網站地圖本身的路徑,以及將 Disallow 與頁面層級的 noindex 中繼標籤混淆。搜尋引擎清楚記錄了這項區別:Disallow 防止抓取,而 noindex 防止索引,兩者並不可互換。如果您希望某個頁面不要被索引,但仍需要爬蟲看見它(例如以便發現其標準連結),請使用 noindex,而非全面封鎖。

陷阱出了什麼問題更安全的做法
將檔案另存為 robots.txt.txt 或放在子資料夾中爬蟲在 /robots.txt 找不到該檔案上傳至精確的文件根目錄,檔名使用小寫,不加副檔名
使用富文字編輯器智慧引號或 BOM 會破壞指令的解析使用純文字編輯器,並以不含 BOM 的 UTF-8 編碼儲存
大小寫不一致Disallow: /Admin/ 並不會封鎖 /admin/比對伺服器對每個路徑所使用的精確大小寫
封鎖了網站地圖的路徑爬蟲無法讀取您指向的網站地圖Sitemap 行放在任何封鎖群組之外,並驗證網址能正確解析
Disallow 用於安全性目的該指令是自願性質的,容易被忽略透過伺服器規則、身份驗證或適當的 noindex 標籤來強制執行存取控制

robots.txt 在更廣泛 SEO 設定中的定位

robots.txt 是數個抓取控制工具之一,搭配其他工具使用時效果最佳。標準化標籤會告訴爬蟲該索引重複頁面的哪個版本,XML 網站地圖會列出您實際希望被索引的網址,而 hreflang 組合會告訴多語系的爬蟲哪個頁面屬於哪個受眾。您也可以在瀏覽器中分別起草這些項目:標準化標籤產生器 會產生乾淨的 rel="canonical" 連結元素,XML 網站地圖產生器 會將審核過的網址清單轉為網站地圖檔案,而 Hreflang 產生器 會根據語系與網址組合建立一致的替代連結集。搭配使用時,這些檔案能為爬蟲提供明確的網站地圖,減少模糊訊號進入索引的機會。

在發布新的 robots.txt 之前,請進行最後一項健全性檢查:使用完整的正式網址在全新的瀏覽器視窗中開啟該檔案,複製結果,並貼到 diff 工具中與即將部署的版本進行比對。兩行差異能比仔細重讀抓到更多錯誤,也讓後續參與網站維護的任何人能夠稽核這次變更。

相關指南:如何產生 QR Code:完整指南 | Lizely

如果您正在權衡各種方案,Schema 標記如何運作:實用的 JSON-LD 指南 有詳細說明。

如果您正在權衡各種方案,在 WordPress 中不使用外掛建立 XML 網站地圖 有詳細說明。