如果遗留系统连模板文件都动不了,robots.txt优化的可行空间通常只剩服务器层和路径层:用规则屏蔽低价值目录、放行必要资源、用站点地图补足发现路径。但前提是你能改到Web服务器配置或robots.txt本身;如果连这两处都锁死,结论就不成立,此时任何“优化”都只是观测和记录,不能改变抓取行为。
“无法改模板”不等于“什么都不能改”。先分清三个层级,能改到哪一层,决定了robots.txt优化的边界:
如果只能碰到第一层,你的动作就是规则取舍;如果能碰到第二层,才谈得上用状态码配合。两层都碰不到,就属于观测边界,不是调整边界。
遗留系统常见的问题是参数化 URL 和重复路径多,但模板改不了,没法加 canonical。此时可以在 robots.txt 里做路径级取舍:
Disallow 屏蔽明确的低价值目录,例如筛选参数组合产生的无限列表。Allow 在宽泛屏蔽下放行必要子路径,注意规则匹配按最长路径优先,写错顺序会误伤。Disallow: /,并明确这是临时手段,不是索引移除。一个可执行的最小动作是:先在本地或测试环境复制一份 robots.txt,只加一条针对参数目录的 Disallow,观察抓取日志中该目录的请求是否下降。结果如何影响下一步:如果请求没有明显变化,先别继续加规则,而要检查是否被其他路径或站点地图重新暴露;如果请求下降但重要页面抓取也下降,说明规则过宽,需要收窄路径。
模板改不了,意味着你无法在页面里加内链或调整导航。此时站点地图是少数还能动的发现路径补充手段。可以在 robots.txt 里声明站点地图位置,并确保站点地图只列可抓取、可返回正常状态的 URL。
需要说清楚的是:站点地图不保证收录。它只是帮助发现,是否抓取和索引仍取决于页面本身的状态和外部信号。如果站点地图里混入被 robots.txt 屏蔽的 URL,反而会造成信号冲突,让抓取预算浪费在无法抓取的地址上。
假设你接手一个遗留系统,模板锁死,但服务器配置可改。你打算用 robots.txt 屏蔽所有带 ? 的 URL,认为这样能减少重复抓取。这个结论在一种情况下会失效:如果核心内容页本身也走查询参数,例如 /article?id=123,那么这条规则会连同正文一起屏蔽。此时抓取量下降不代表优化成功,可能只是把可抓页面挡在门外。
更稳妥的判断方式是:先抽样列出参数 URL,区分“内容页参数”和“筛选/排序参数”,只对后者写规则。如果无法区分,就不要用通配符一刀切,宁可缩小屏蔽范围。
调整 robots.txt 后,日志里某目录请求归零,不能单独证明处理正确。合理解释至少还有:该目录本身没有新链接、站点地图已移除、服务器返回错误导致抓取放弃。同理,抓取量上升也不等于索引量上升。要判断效果,需要把 robots.txt 规则、服务器状态码和站点地图内容放在一起看,而不是只看单一指标。
下一步动作可以这样定:先记录当前 robots.txt、站点地图和服务器返回状态,再只改一条规则,观察一个抓取周期内的路径级请求变化。如果变化符合预期且没有误伤内容页,再考虑第二条规则;如果出现误伤,先回滚,再重新划分路径边界。这个顺序能让你在权限受限时,把每一次调整都控制在可回退的范围内。