站点运营

站点运营:robots.txt 自查,別让一行誤寫挡住整站

robots.txt 是蜘蛛進站前最先讀取的文件,規則不多但影响直接。本文给出一份可执行的自查清單:確認文件能否正常訪問、逐條核對 Disallow 與 Allow 的寫法、检查静態资源是否被誤挡、Sitemap 指令怎么填,以及修改後如何驗證,减少因為一行誤寫造成抓取停摆。

站点运营

站点运营:robots.txt 自查,別让一行誤寫挡住整站

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 再加訪問密碼,避免和正式站内容撞车。正式站則不要照抄測試环境的規則文件。

改完之後的驗證動作

  1. 用搜尋引擎提供的 robots.txt 測試工具跑一遍,看看目标地址是允许還是禁止。
  2. 在浏览器里直接訪問,確認返回狀態和文件内容都正确。
  3. 观察接下来几天的蜘蛛訪問日誌,看被屏蔽的目錄是否仍有抓取、放開的目錄是否開始進来。
  4. 把這次的修改時間、修改内容记進运维记錄,方便以後回溯。
robots.txt 是一份寫给蜘蛛看的說明书,寫得越明确,双方越省事。它不會让站点一夜之間多出多少收錄,但一次誤寫,足以让抓取停摆好几天。