robots.txt該怎麼寫?
robots.txt 是網站根目錄下的純文字檔案,用於控制搜尋引擎爬蟲的訪問許可權。以下是其核心語法、常見場景及注意事項的詳細說明:
一、基礎語法與結構
- 檔案位置與命名
- 必須位於網站根目錄(如
https://www.example.com/robots.txt),檔名嚴格小寫。 - 若檔案不存在,爬蟲預設可訪問全站內容。
- 必須位於網站根目錄(如
- 核心指令
User-agent:指定目標爬蟲(如Googlebot、Baiduspider或*表示所有爬蟲)。Disallow:禁止訪問的路徑(如/admin/禁止抓取admin目錄)。Allow:允許訪問的路徑(用於覆蓋Disallow規則)。Sitemap:可選,宣告網站地圖路徑(需完整 URL)。
- 萬用字元與匹配規則
*:匹配任意字元(如/private*/禁止所有以private開頭的目錄)。$:匹配 URL 結尾(如Disallow: /*.jpg$禁止所有.jpg圖片)。- 路徑區分大小寫,末尾斜槓影響範圍(如
/images/禁止整個目錄,/images僅禁止同名檔案)。
二、常見場景示例
- 禁止所有爬蟲訪問
User-agent: * Disallow: /效果:全站內容均不被索引。 - 允許特定爬蟲訪問
User-agent: BadBot Disallow: / User-agent: * Allow: /效果:僅允許BadBot訪問全站。 - 限制目錄與檔案型別
User-agent: * Disallow: /cgi-bin/ Disallow: /images/*.gif Allow: /public/效果:禁止cgi-bin目錄及所有 GIF 圖片,允許public目錄。 - 動態頁面與引數過濾
User-agent: * Disallow: /*?*效果:禁止抓取含查詢引數的 URL(如index.php?id=1)。
三、高階用法與注意事項
- 多爬蟲針對性規則
User-agent: Googlebot Disallow: /temp/ Allow: /public/ User-agent: Baiduspider Disallow: /admin/不同爬蟲可設定獨立規則。 - Meta 標籤補充 在 HTML 中透過
<meta name="robots" content="noindex, nofollow">進一步控制單頁抓取行為。 - 常見錯誤與最佳化
- 檔案編碼:建議使用 ANSI 或 UTF-8(避免首行亂碼)。
- 路徑規範:避免路徑末尾多餘空格或斜槓混淆。
- 測試工具:透過 Google Search Console 的 Robots.txt 測試工具驗證語法。
四、完整示例模板
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /*.php$
Allow: /public/
Sitemap: https://www.example.com/sitemap.xml
五、注意事項
- 非強制性:robots.txt 是建議性協議,部分爬蟲可能忽略規則。
- 隱私保護:敏感資訊仍需透過伺服器許可權控制,而非依賴 robots.txt。
- 更新生效:修改後需等待搜尋引擎快取重新整理(通常數小時至數天)。
透過合理配置 robots.txt,可有效管理搜尋引擎抓取範圍,最佳化網站效能與隱私保護。建議結合網站地圖(Sitemap)和 Meta 標籤實現更精細控制。