很多站点上线一段时间后,会在索引里发现一些“不该出现”的页面:还没写完的草稿、只发给客户看过的预览地址、测试环境里的商品页,或者一排写满“敬请期待”的占位栏目。它们往往不是被主动提交的,而是在某个环节被蜘蛛顺手抓到,然后安静地留在索引里。
未完成页面通常从哪来
先分清来源,才能对症处理。常见的几类:
- CMS 草稿与定时发布:文章保存为草稿但已生成正式 URL,或者设置了定时发布,页面其实已经能访问。
- 预览与分享链接:给同事、客户看的预览地址,带着一串随机 token,本身可公开访问且不设 noindex。
- 测试与备用域名:test、dev、staging 之类的子域,解析正常、robots 未限制,被外链或日志泄露后被抓取。
- 占位与空栏目:栏目建好了但内容为空,模板仍输出标题和分页。
- 临时活动页:活动结束后页面保留,内容过期,却没有下线或跳转。
蜘蛛是怎么找到它们的
蜘蛛不会区分“这个页面还没准备好”,它只跟着链接走。常见的进入路径包括:
- 正式页面上误留了指向预览地址或测试域名的链接。
- 站点地图或 RSS 把草稿、定时发布页一起输出了。
- 编辑在外部平台、邮件、文档里分享过链接,被爬虫或第三方工具带走。
- 空列表页自动生成分页或“相关内容”,把空页面互相串起来。
上线前的自查清单
- 确认草稿不产生可访问 URL。检查 CMS 是否给草稿分配了正式路径,能否被未登录访客直接打开。
- 给预览链接加限制。预览页应要求登录或校验 token,并加上 noindex,不要只靠“没人知道地址”。
- 测试域名统一拦截。用 robots.txt 全站屏蔽,再加一层基础认证;不要把测试域名的链接发到正式站。
- 空栏目先不要输出。内容为零的栏目可以先不生成列表和分页,避免蜘蛛反复抓空页。
- 核对站点地图与 RSS。确认输出范围只包含已发布、可公开访问的页面。
- 活动页设到期处理。活动结束前决定是下线、跳转到新页,还是保留并更新内容。
- 抽查索引状态。隔一段时间用站点查询或站长工具看看,是否出现陌生的路径片段,如 /draft/、/preview/、?token=。
已经被抓到了怎么办
发现之后不要慌,按顺序处理:先让页面不可公开访问或加上 noindex,再确认返回状态码是否符合预期,然后走正常的移除流程等待重新抓取。顺序反了,容易白等一轮。
状态码别弄混
- 页面永久不再需要:返回 404 或 410。
- 内容迁移到新地址:用 301 指向对应的正式页面。
- 只是暂时不想被看到:可以用 noindex,但页面仍需正常返回 200。
临时用 robots.txt 屏蔽只是应急手段。如果页面本身不应该被索引,robots.txt 挡不住已收录的 URL 出现在结果里,最终还是要靠 noindex 或状态码解决。
把“未完成”留在后台
这件事的核心不在于技术多复杂,而在于流程:谁来建栏目、谁来发布、预览链接谁能拿到、测试环境谁来管。把这些约定写进上线核对清单,比事后清理索引要省力得多。定期花十几分钟看一眼抓取日志和索引概况,往往就能提前发现漏出去的页面。