robots.txt 通常放在站点根目錄,是蜘蛛進入站点前最先讀取的文件之一。它语法简單,往往几行就寫完,也正因為简單,很多人寫完就忘,直到抓取量出現異常才回头翻。下面這份自查清單,适合在改版、上线新栏目、迁移环境之後過一遍。
先確認文件能被正常拿到
不少問题不是規則寫错,而是蜘蛛根本没讀到這個文件。
- 地址應当是 https://example.com/robots.txt,放在子目錄(例如 /blog/robots.txt)不會被识別。
- 訪問返回 200,内容是纯文本。返回 404 时,蜘蛛一般按“無限制”處理,等于規則完全失效;返回 5xx 时行為不稳定,可能直接减少抓取。
- 文件別寫得太長,几百行已经足够,超出常见体积限制的部分可能被截断。
逐行核對 Disallow 規則
最常见的翻车,是測試期留下的 Disallow: / 没删,上线後整站被挡。检查时重点看這几處:
- 是否有一次性挡住整站的規則,或者挡住了栏目主目錄。
- 通配符 * 和结尾符 $ 用得是否准确,避免誤伤正常 URL。
- 路径区分大小寫,/News 和 /news 是两條不同的規則,容易漏看。
另外要记住一点:Disallow 只是阻止抓取,並不阻止收錄。一個被屏蔽的地址仍可能因為外鏈進入索引,只是标题和摘要可能残缺。真要控制收錄,應该让頁面能被正常抓取,再通過 noindex 或 canonical 来處理。
Allow 與匹配優先級
規則按“最長匹配優先”處理,長度相同时 Allow 優先于 Disallow。所以可以先用 Disallow 挡住整個目錄,再用 Allow 單獨放開某個路径。例外情况要寫清楚,不要指望书寫顺序生效。
別顺手挡住 CSS、JS 和图片
屏蔽静態资源曾经是省流量的做法,現在反而會让蜘蛛拿到一個没有样式、缺少内容的空壳,判断頁面质量时缺少依據。样式表、脚本、图片目錄建议保持可抓取。
Sitemap 指令別寫错
- 用绝對地址,包含协议和完整域名。
- 有多個站点地图时,分行寫多條 Sitemap 指令。
- 這里只是声明入口,不能替代搜尋资源平台里的提交,也不代表一定會被收錄。
区分正式环境和測試环境
測試站、预發布环境如果對外可訪問,比較稳妥的做法是整站 Disallow 再加訪問密碼,避免和正式站内容撞车。正式站則不要照抄測試环境的規則文件。
改完之後的驗證動作
- 用搜尋引擎提供的 robots.txt 測試工具跑一遍,看看目标地址是允许還是禁止。
- 在浏览器里直接訪問,確認返回狀態和文件内容都正确。
- 观察接下来几天的蜘蛛訪問日誌,看被屏蔽的目錄是否仍有抓取、放開的目錄是否開始進来。
- 把這次的修改時間、修改内容记進运维记錄,方便以後回溯。
robots.txt 是一份寫给蜘蛛看的說明书,寫得越明确,双方越省事。它不會让站点一夜之間多出多少收錄,但一次誤寫,足以让抓取停摆好几天。