一個基於瀏覽器的 robots.txt 產生器 API 替代方案,是一款能產生與託管 API 完全相同的 RFC 9309 檔案的工具——一個萬用字元 User-agent 群組、最多 50 條 Disallow 規則,以及一行 Sitemap——但會在當前分頁中渲染整個檔案,讓您的網站來源與路徑清單絕不離開瀏覽器。輸出內容為以 UTF-8 純文字撰寫的單一萬用字元群組,後接 Allow 或 Disallow 規則以及一行由來源衍生的 Sitemap,因此無論您是透過 API 呼叫或本機產生器建置該檔案,您所發布的檔案行為皆完全一致。由於每條規則都以相同方式比對 URL 路徑,無論文字來源為何,在瀏覽器中的替代方案能為您提供相同的爬蟲端檔案,而且無需憑證、沒有請求配額,也不依賴第三方服務持續上線。所有輸入的路徑與產生的文字都保留在當前分頁中,這意味著重新整理頁面即可重設表單,而不會將任何資料傳送至後端。

為何人們會尋找 Robots.txt API 替代方案
尋找 API 替代方案的動機通常來自以下三種考量之一。首先,是資料本身:產生器需要您的來源以及您要阻擋的路徑,而這屬於部分團隊不希望在每次重新整理時都傳送給第三方服務的設定資訊。其次,是營運負擔:必須配置、輪替並儲存 API 金鑰;請求配額限制了您能多頻繁地重建檔案;而且提供者的回應格式可能會在沒有預警的情況下變更。第三,是部署適配性:大多數的 robots.txt 檔案一年只會變更少數幾次,而非每次提交時都改,因此一個永遠運作的發布管線顯得過於厚重。
內部公司 API 也無法完全解決前兩個問題。它仍然需要部署、監控、版本控管並維持上線。當產生步驟發生在用戶端時,這些額外負擔便完全不重要。
對於只需要偶爾重新整理檔案的網站擁有者來說,API 呼叫帶來的繁瑣程序並未換取任何額外的爬蟲控制能力。基於瀏覽器的替代方案能產生相同的 RFC 9309 文字並具備相同的規則語意,因此實務問題就簡化為:您是否希望您的來源與路徑清單離開當前分頁?
基於瀏覽器的替代方案實際上做了什麼
Robots.txt 產生器接受與一般 API 相同的兩個輸入:完整的 HTTP 或 HTTPS 網站來源,以及一項政策決定。它會將來源標準化以移除任何路徑、查詢或片段,確保 Sitemap 行不會意外繼承不相關的路由。明確指定的連接埠會予以保留。接著它會渲染一個 User-agent: * 群組,並寫入 Allow: /、Disallow: /,或為每個請求路徑寫入一行以斜線開頭的 Disallow 規則。一行指向 https://your-origin/sitemap.xml 的 Sitemap 會自動附加於結尾。
由於此工具刻意保持專注,它並不假裝能管理特定搜尋引擎的擴充功能。Crawl-delay 不屬於 RFC 9309 的範疇且並非通用支援,因此不會輸出。該工具不會擷取您的線上檔案、不會驗證伺服器回應、不會將新檔案提交至搜尋引擎,也不會確認任何爬蟲已重新整理其快取。這些動作需要存取您已部署的網站及搜尋引擎自身的工具,而且沒有誠實的方式能將它們打包進一個用戶端產生器中。
選擇性模式接受每行一個路徑模式。每條非空白的規則必須以斜線開頭,完全重複的項目會依首次出現的順序移除,且清單上限為 50 條規則。萬用字元星號與結尾的錢字號會予以保留,因為該協定將其定義為特殊的比對字元。井字號則會被拒絕,以避免像 /draft # temporary 這樣的規則無聲無息地變成註解。
三個瀏覽器步驟即可產生檔案
- 輸入您網站來源的完整 HTTP 或 HTTPS URL。您所包含的任何路徑、查詢或片段都將被捨棄,以確保該檔案僅管理頂層來源。
- 選擇整體的爬蟲政策:允許全部(寫入 Allow: /)、全部阻擋(寫入 Disallow: /),或選擇性 Disallow。針對選擇性模式,請每行輸入一個要阻擋的路徑;每條非空白行必須以 / 開頭,完全重複的項目會依首次出現的順序合併,且清單上限為 50 條規則。
- 產生並檢視文字內容,然後下載。逐行比對結果與您目前的線上檔案,保留您團隊手動新增的任何刻意的特定爬蟲群組,在可用情況下使用相關搜尋引擎的測試工具檢測重要的公開與被阻擋的 URL,然後才於其管理的確切通訊協定、主機與連接埠的 /robots.txt 路徑發布新檔案。請保留一份舊檔案以供回復使用。
規則比對從 URL 路徑的開頭開始。RFC 9309 規範爬蟲應以區分大小寫的方式比對路徑,並使用最精確的符合規則,因此 /Private 與 /private 可能代表不同的意義,而 Disallow: /draft 並不一定等同於 Disallow: /draft$ 的意圖。發布前請檢查大小寫、前綴、萬用字元與錨點。若您的實際 sitemap 位於不同路徑,請於發布前編輯產生的 Sitemap 行。
輸出如何對應至 RFC 9309
RFC 9309 將 Robots Exclusion Protocol 定義為一個扁平的 UTF-8 純文字檔,內含一個或多個群組。每個群組以一行或多行 User-agent 行開頭,後接 Allow 或 Disallow 規則。爬蟲若找到較精確的符合群組會使用它;否則會回退至帶有產品權杖 * 的萬用字元群組。路徑比對區分大小寫,比對從 URL 路徑的第一個字元開始,並由最精確的符合規則決定該 URL 是否可被擷取。
產生器所實作的正是此模型。它所輸出的萬用字元群組是處理一般爬蟲請求的正確位置,因為大多數合規的爬蟲會比對 *。若您的團隊需要針對特定爬蟲設定獨立規則,您可在文字編輯器中自行新增這些群組後再行發布。產生器的角色在於消除機械性錯誤——缺少前導斜線、意外註解、重複規則以及洩漏的查詢字串——讓您能專注於規則本身,並符合 RFC 9309 規範以及Google 建立 robots.txt 檔案的爬蟲說明文件。
API 工作流程與本機瀏覽器工作流程
這兩種方法會產生相同的爬蟲端檔案,但對於某些團隊而言,營運上的差異至關重要。下表根據典型託管 robots.txt API 所公開的內容與基於瀏覽器的替代方案在本機所做的事情,總結了兩者分歧之處。
| 面向 | 託管式 robots.txt API | 基於瀏覽器的產生器 |
|---|---|---|
| 需要憑證 | 通常是(API 金鑰或 OAuth) | 無 |
| 透過網路傳送網站來源 | 是,每次呼叫皆傳送 | 否,於本機標準化 |
| 請求配額 | 免費方案通常有上限 | 無配額;隨需執行 |
| 預設輸出 | 因提供者而異 | 一個萬用字元群組、相對來源的 sitemap |
| 路徑標準化 | 取決於提供商 | 移除路徑、查詢與片段;保留明確指定的連接埠 |
| 規則中的井字號 | 取決於提供商 | 拒絕以避免意外註解 |
| 萬用字元與結尾錨點語法 | 取決於提供商 | 完全依照輸入保留 |
| 部署步驟 | 通常與 API 呼叫綁定 | 於 /robots.txt 手動發布 |
| 對服務正常運作時間的依賴 | 是 | 否 |
對於已經運行自動化部署管線的團隊來說,API 可作為較大腳本中的一個步驟而良好地整合。至於偶爾的重新整理、稽核,或設定資料較為敏感的場景,於本機無需伺服器即可建置是更簡便的途徑。
robots.txt 檔案並非正確控管手段的情境
RFC 9309 明確指出,這些規則並非存取授權。合規的爬蟲可能會遵守這些請求,但惡意用戶端可以忽略它們,而且每個列出的路徑都是公開可見的,因為該檔案本身就會在 /robots.txt 被擷取。在 Disallow 中列出敏感路徑並不能取代登入檢查或伺服器端的存取控制。
阻擋爬取同樣不能保證 URL 從搜尋結果中消失。搜尋引擎可能透過反向連結發現某個 URL,並在從未擷取該被阻擋頁面的情況下保留其部分資訊。若目標是讓某個頁面不被收錄,請使用適當的頁面層級索引控制、X-Robots-Tag 標頭、搜尋引擎的移除工作流程,或應用程式層的驗證機制。請勿在未檢查各爬蟲如何處理指示的情況下,跨爬蟲合併指令,並請記住,對於實際會讀取 Crawl-delay 的爬蟲而言,手動新增 Crawl-delay 是更安全的做法。
至於其他情況——一般的爬取指引、sitemap 信號以及常見的 Disallow 清單——基於瀏覽器的產生器能為您產生一份符合相同標準的檔案,如同 API 所輸出的內容,卻無需承擔呼叫 API 的營運負擔。
若您正在權衡各種選項,Android 上的 Meta Robots 產生器:行動工作流程對此有詳細說明。