站点运营

站点运营:robots.txt 自查,別把该抓的目錄一起挡住

robots.txt 常在上线时顺手寫好,之後几年没人再打開。測試期遗留的整站屏蔽、寫得太短的前缀規則、失效的 Sitemap 地址,都可能挡住本该被抓的頁面。本文按打開文件、逐條核對、驗證抓取狀態的顺序,整理一份可以直接照做的自查步骤。

站点运营

站点运营:robots.txt 自查,別把该抓的目錄一起挡住

robots.txt 通常是站点上线时顺手寫下的一個文件,之後很少有人再打開看。它躺在根目錄,規則是複製来的,几年里被不同的人改過几行,最後變成一份谁也不敢删、也没人说得清的文件。等到某天發現某個栏目一直没被抓取,才會回头翻它。

先確認谁在讀這個文件

主流搜尋引擎的爬虫在抓取前會先請求 /robots.txt,按里面的規則决定哪些路径可以抓。它是一份约定,不是訪問控制:不遵守约定的采集程序照样能訪問,所以不要把私密内容寄托在它身上。

几種常见的寫法問题

留下測試时期的整站屏蔽

上线前為了不让測試頁被抓,常见寫法是 Disallow: /,上线後忘记删。這類規則一旦生效,抓取請求會明顯减少,而頁面上看不出任何異常,排查时往往會先怀疑服務器和模板。

路径寫得太宽

Disallow: /search 本意是挡住搜尋參數生成的结果頁,但如果站点里存在 /search-guide 這類正常栏目,同样會被一起挡住。規則按前缀匹配,寫得越短,誤伤范围越大。

Disallow 與 Allow 混在一起

同一组里同时出現 Allow 和 Disallow 时,判断逻辑並不是简單按行先後,不同爬虫的具体處理也有差异。最稳妥的做法是让規則尽量简單,能用目錄划分的,就不要靠長串網址去兜底。

Sitemap 地址寫错或没更新

Sitemap 一行可以帮爬虫更快找到入口,但如果域名換過、目錄改過,却還寫着舊地址,這一行基本不起作用,反而容易让人誤以為已经提交過。

一次完整的自查可以按這個顺序走

  1. 直接在浏览器打開 https://你的域名/robots.txt,確認返回的是目前线上版本,而不是缓存或舊文件。
  2. 逐條讀規則,能删的删,能合並的合並,只留下真正有必要的屏蔽項。
  3. 检查是否存在 Disallow: / 這類整站規則,以及末尾有没有漏掉必要的 Allow。
  4. 確認 Sitemap 地址使用 https、域名正确、文件本身能正常訪問。
  5. 用搜尋引擎官方提供的 robots.txt 測試工具或抓取調试功能,挑几個典型網址驗證是否被允许。

別忽略 meta robots 和响應头

robots.txt 管的是能不能来抓,頁面里的 meta robots 管的是抓到之後怎么處理。两者可能互相矛盾:robots.txt 允许抓取,頁面却寫了 noindex,于是抓取量看着正常,頁面却一直不進索引,排查时很容易被忽略。响應头里的 X-Robots-Tag 優先級更高,多域名共用一套程序时尤其要留意,避免某個站点的策略被带到其他站点上。

改完之後做一次驗證

修改不要只改一半:先確認几類代表頁面(首頁、栏目頁、詳情頁、搜尋结果頁)的抓取狀態,再观察一段時間服務器日誌里爬虫請求的變化。同时记錄改動時間和改動内容,出問题时能快速回退,也方便下次改版时對照。

robots.txt 的作用是引導抓取,而不是提升收錄。規則越简單清晰,越不容易出現意料之外的誤伤。

把這份文件当成需要定期核對的基础配置,改動频率不用高,但每次改版、換域名、新開栏目之後,都值得花几分钟看一眼。