站点运营

站点运营:robots.txt 自查,別让規則和站点現状對不上

robots.txt 常年躺在根目錄,却很少被打開检查。改版、上线測試目錄、調整栏目之後,規則很容易和站点實际情况脱节。本文给出一份可执行的自查思路:從確認文件能正常訪問、逐條核對路径寫法、分清 robots 與 noindex 的分工,到與站点地图、服務器日誌配合排查,帮你把這份门禁說明维護在可用狀態。

站点运营

站点运营:robots.txt 自查,別让規則和站点現状對不上

robots.txt 是站点和搜尋蜘蛛之間最基础的约定文件。它本身不复杂,却经常被一次改版、一次临时測試改得面目全非。很多抓取上的異常並不是服務器挂了,而是這份文件里的某一行規則,正好挡住了本来不该挡的目錄。

為什么這份文件需要定期自查

站点结构在變,栏目在加,測試目錄在建,而 robots.txt 往往是最少被打開的文件。上线时寫好的規則,過半年可能已经和實际情况對不上:已经刪除的目錄還挂在 Disallow 里,新上线的栏目忘了放開,临时屏蔽的測試路径一直没恢复。這些改動都不會报错,只會安静地让蜘蛛少走一些路。

第一步:確認文件本身能被正常訪問

  • 直接在浏览器打開 域名/robots.txt,確認返回 200,而不是 404、403 或跳轉到首頁。
  • 检查服務器是否對 robots.txt 做了登入校驗、UA 限制或防火墙拦截。
  • 確認文件编碼為 UTF-8,没有多余的 BOM 或編輯器儲存时带出的異常字符。
  • 如果站点有多個域名或子域,每個域下都要有對應文件,不要只维護主站那一份。

常见容易寫错的几處規則

  • 把整站拦死:Disallow: / 是最危險的一行,多用于測試环境,迁移到正式环境後容易忘记刪除。
  • 路径寫法不一致:規則按前缀匹配,寫 /news 會同时影响 /news 和 /news-old,需要更精确时记得补上斜杠。
  • 誤伤静態资源:屏蔽 js、css、图片目錄後,蜘蛛拿不到渲染所需的文件,對頁面内容的判断可能失真。
  • Allow 與 Disallow 冲突:通常以更具体、更長的那條為准,但不同實現细节有差异,最好的做法是不要制造冲突。
  • 多寫或少寫注释符:行首差一個 #,規則就從生效變成無效,反之亦然。

robots.txt 與 noindex 的分工

robots.txt 控制的是“能不能抓”,頁面上的 noindex 控制的是“能不能留”。两者不能互相替代。如果某個頁面已经用 robots.txt 禁止抓取,蜘蛛就讀不到頁面里的 noindex 标簽,這個地址仍可能因為外鏈而以缺少描述的形式出現在结果中。對确實不该出現的頁面,更稳妥的组合是:允许抓取,但让頁面返回 noindex。

和站点地图、服務器日誌配合看

robots.txt 里可以声明 Sitemap 地址,方便蜘蛛找到 URL 清單。声明之後建议顺手核對一下:站点地图里提交的目錄,是否有哪一類正好被 Disallow 挡住了。這種自相矛盾很常见,蜘蛛按規則不去抓,清單又反复提交,双方都白費力气。

自查时也可以结合服務器日誌,看看被拦截的請求中是否包含搜尋蜘蛛。如果某段時間蜘蛛訪問量突然归零,先別急着怀疑站点出了問题,打開 robots.txt 看一眼往往更快。

一份可执行的自查清單

  1. 打開文件,確認狀態碼和内容正常。
  2. 逐行讀一遍,标出每條規則對應的真實目錄。
  3. 检查是否存在 Disallow: / 或整目錄封禁。
  4. 確認静態资源、图片目錄未被誤伤。
  5. 確認需要被發現的栏目没有被拦住。
  6. 確認 Sitemap 地址正确且可訪問。
  7. 確認没有把不该暴露的临时目錄寫進文件。
  8. 改動留档,注明時間和原因。
robots.txt 不是一次寫完就完事的配置,它更像一張门禁說明。每次结构調整後顺手看一眼,比事後排查抓取異常省事得多。