很多站点的抓取问题,不是出在正式页面上,而是出在那些“本来没打算让人看”的地址上。编辑在后台新建的草稿、CMS 自动生成的预览链接、从正式站复制出来的测试环境、上传时顺手留下的示例页面,只要能被外部访问,就可能被链接、被爬虫记录,甚至出现在搜索结果里。等到发现时,用户打开的往往是排版错乱、价格没改、文案还写着“测试”的页面。
这类地址是怎么漏出去的
它们通常不是被主动提交的,而是被以下几种方式带出去的:
- 草稿或预览链接被复制到聊天群、邮件、协作文档里,对方一打开,链接就流到了外部。
- 预览地址没有做鉴权,只要摸清规律(例如 ?preview=123)就可以逐个遍历。
- 测试环境挂在正式域名的子域下,也没有做访问限制,蜘蛛顺着解析或外链就摸进来了。
- 站点地图、RSS 或内容接口把未发布状态的内容一并输出。
- 旧版页面改版后没有删除,文件仍在服务器上,只是没有了入口。
- 上传目录、临时目录开启了目录列表,路径能被逐层点开。
一份可执行的自查清单
建议按下面的顺序过一遍,重点是确认状态,而不是“大概没问题”。
- 列出所有可访问的域名和子域,包括测试、预发、旧版本以及 CDN 回源地址。
- 用未登录的浏览器,随机挑十条草稿和预览链接打开,看是否需要登录、是否返回 404。
- 检查 robots.txt 是否对测试域和后台目录做了整体屏蔽,同时确认这些规则没有误伤正式内容。
- 查看站点地图与 RSS 输出,确认只包含已发布且允许索引的地址。
- 检查内容接口和 JSON 输出,确认草稿字段不会随接口一起暴露。
- 在服务器上查找上传目录、备份文件、编辑器残留文件,确认无法直接访问。
- 翻一翻访问日志,看是否有陌生 IP 频繁访问带 preview、draft、test 字样的路径。
处理方式怎么选
优先删除或整体下线
已经不再需要的测试站、废弃目录、旧版页面,最省事的做法是直接删除或整体下线,把域名解析和目录一起收掉。留着“以后可能用”的页面,往往就是下一次事故的来源。
需要保留的,用访问控制
还要继续用来预览和协作的页面,加上登录校验或限定内网访问更稳妥。只靠 noindex 或 robots.txt 约束,能挡住守规矩的爬虫,挡不住想看的人。
短期可用的兜底
确实来不及处理的,可以先加 noindex 或 X-Robots-Tag,同时把地址从站点地图、导航和内链中移除。但如果页面本身包含价格、用户信息或未公开内容,这种做法只能算临时措施,不能长期依赖。
上线时的收尾动作
- 发布正式地址后,确认旧预览链接返回 404 或跳转到正式页。
- 在站点地图中确认正式地址已经出现,预览地址不在其中。
- 检查 canonical 指向的是正式地址,而不是预览地址。
- 如果预览内容和正式内容曾同时在线上存在过一段时间,留意日志里预览地址的抓取是否在逐步减少。
预览链接本身不是问题,“能被外部打开而且长期不清理”才是问题。把它当成上线流程里的一个固定步骤,比事后补救便宜得多。
小结
草稿、预览和测试页面处在运维与内容流程的交叉地带,容易被两边都当成“别人负责的事”。一个简单的做法是:在上线清单里加一条——发布前确认预览地址已经失效。坚持一段时间之后,日志里的奇怪路径会明显变少,用户也不会再点到一个写着“测试内容”的页面。