站点运营

站点运营:robots.txt 與 noindex 自查,別让一行指令挡住整站

robots.txt 和 noindex 是站点运营中最容易被忽略、也最容易誤伤整站的基础設定。本文整理一份自查清單,從抓取指令與索引指令的区別、常见誤配置,到排查顺序和驗證方法,帮助你在改動前多检查一遍,避免重要頁面被無意挡在搜尋之外。

站点运营

站点运营:robots.txt 與 noindex 自查,別让一行指令挡住整站

做站点运营,robots.txt 和 noindex 通常不會天天動,但一旦寫错,影响范围往往不是單個頁面。它們一個管“能不能抓”,一個管“能不能索引”,很多誤伤整站的情况,都来自把這两件事混在一起,或者改完没有驗證。

先分清:robots.txt 管抓取,noindex 管索引

robots.txt 是给蜘蛛看的抓取規則文件,放在站点根目錄。它告诉蜘蛛哪些路径可以抓、哪些不要抓。但它不是收錄開關:如果某個頁面被外部連結指向,即使 robots.txt 禁止抓取,搜尋引擎仍可能僅凭連結信号把它放進索引,只是没有摘要或快照。

noindex 是頁面級的索引指令,通常寫在 meta robots 标簽或 HTTP 响應头 X-Robots-Tag 里。它表示“這個頁面可以抓,但不要放進搜尋结果”。两者目的不同,不能互相替代。

一個常见错誤:用 robots.txt 屏蔽某個栏目,以為這样頁面就不會出現在搜尋里。實际上蜘蛛看不到頁面上的 noindex,反而可能留下一個没有内容的索引條目。

robots.txt 自查清單

  • 是否誤屏蔽整站:检查有没有出現 Disallow: / 這類規則。測試环境複製到线上、或者临时調试後忘记刪除,都可能導致整站不可抓。
  • 是否屏蔽了渲染资源:CSS、JavaScript、图片如果被禁止抓取,蜘蛛可能無法正确理解頁面内容和移動端适配。除非有明确原因,一般不建议屏蔽這些目錄。
  • 規則是否誤伤目錄:比如想屏蔽 /search/,却寫成了 /s,可能连带挡住其他以 s 開头的路径。規則越短,誤伤面越大。
  • User-agent 分组是否正确:不同蜘蛛用不同分组,寫错位置會让規則不生效。如果只想给某類蜘蛛特殊規則,确保它寫在對應分组下,而不是全局分组里。
  • Sitemap 地址是否有效:robots.txt 里声明的 sitemap 地址要能正常訪問,不要指向測試域名或已经改版的舊路径。
  • 是否屏蔽了重要栏目:把要參與搜尋的栏目、文章目錄列出来,逐條對照 robots.txt,確認没有被意外挡住。

noindex 自查清單

  • 模板是否全站誤加:检查公共模板、CMS 預設設定、安全插件,有没有在所有頁面輸出 noindex。一個模板變量寫错,整站頁面都可能被标记。
  • meta 與响應头是否冲突:頁面里寫的是 index,服務器响應头却带 noindex;或者反過来。以更嚴格的一侧為准,所以两邊要一起看。
  • 分頁、标簽、搜尋頁是否處理合理:這些頁面不是不能 noindex,但要先想清楚:它們是希望被索引,還是只服務于站内用戶。處理方式應和栏目規划一致。
  • 是否和 robots.txt 叠加使用:如果 robots.txt 已经禁止抓取,頁面上的 noindex 蜘蛛就看不到。想让頁面登出索引,通常應先允许抓取,再让蜘蛛看到 noindex,等索引移除後再考虑是否屏蔽抓取。
  • 移除 noindex 後是否驗證:去掉 noindex 不等于马上恢复。需要確認頁面可抓取、返回正常狀態碼,並给搜尋引擎重新發現和處理的周期。

一個實用的排查顺序

  1. 先列出清單:哪些頁面希望被搜尋看到,哪些不希望。没有清單,後面的检查很容易凭感觉。
  2. 用命令行或浏览器開發者工具查看頁面的 HTTP 响應头,確認 X-Robots-Tag 和狀態碼。
  3. 查看頁面源代碼里的 meta robots,和响應头做對照。
  4. 直接訪問 /robots.txt,通讀規則,重点看有没有全局屏蔽和路径誤伤。
  5. 结合服務器日誌,看蜘蛛實际抓取了哪些路径、返回什么狀態。日誌比报表更接近真實情况。
  6. 改動後,用搜尋引擎提供的 robots 測試工具或抓取工具驗證,再观察一段時間。不要一天内反复改規則。

把改動当成一次小發布

robots.txt 和 noindex 的改動,影响面往往比一篇文章大。建议在測試环境先驗證,保留改動记錄,知道谁在什么時間改了什么。线上修改前先备份原文件,改完後用無痕窗口和抓取工具各看一遍。

站点运营里的很多問题,不是缺技巧,而是缺一次检查。把 robots.txt 和 noindex 放進定期自查表,花十分钟確認,比事後补救要省事得多。