上线前核对抓取与索引配置,核心是确认三件事:爬虫能拿到页面、页面允许被索引、索引入口指向正确版本。最稳妥的做法是在预发布环境用“禁止索引”保护,正式切换时再放开,而不是上线后一边收流量一边补配置。
快速建站常把测试站和正式站放在同一套代码上,如果测试阶段没做隔离,搜索引擎可能先抓到测试域名,等正式上线时,正式页反而被当成重复内容。两种方案适用条件不同:
X-Robots-Tag: noindex,或全站输出 <meta name="robots" content="noindex">。判断结果是:用抓取工具请求测试页,返回头或 HTML 里能看到 noindex,且测试页不出现在搜索结果中。如果测试域名和正式域名不同,方案A几乎是必选项;如果测试环境只在内部网络、外部爬虫根本访问不到,方案A可以简化,但仍要检查正式环境的配置,避免把测试期的 noindex 一起带上线。
robots.txt 是抓取阶段的规则,它决定爬虫能不能来,但不决定页面是否被索引。核对时不要只打开首页看有没有报错,要逐条确认关键路径:
/robots.txt,检查 Disallow 是否误伤了这些目录。常见问题是模板自带 Disallow: / 或 Disallow: /*?,把带参数的列表页全部挡住。Sitemap 行指向正式域名的 sitemap 地址,而不是测试域名。注意,robots.txt 只约束遵守规则的爬虫,不能当作保密手段。真正不想被索引的页面,应该用 noindex,而不是只靠 robots.txt 屏蔽。
抓取允许之后,索引阶段看的是“哪个 URL 该被收录”。快速建站容易出现同一内容有多个入口:带 www 与不带 www、http 与 https、带尾斜杠与不带尾斜杠。核对时做一次全站抽样:
<link rel="canonical">,确认它指向正式域名的规范 URL,而不是测试域名或带参数的临时地址。判断结果是:同一篇内容只有一个规范 URL,sitemap、canonical、内链三者指向一致。如果三者不一致,优先修正 canonical 和 sitemap,再处理内链。
配置改完后,不要凭感觉判断。可以按下面步骤做一次可执行的检查:
假设一个快速建站项目上线前发现详情页 canonical 指向测试域名,那么即使 robots.txt 允许抓取,正式页也可能被判定为重复内容。修正 canonical 后重新抓取,是比“等搜索引擎自己发现”更可控的做法。
第一项是环境变量。测试环境写死的 noindex 或测试域名,如果通过配置文件带入正式环境,会导致正式站被屏蔽。切换前搜索代码库中的 noindex、测试域名和 robots 相关配置,逐项确认。第二项是重定向。如果旧站有历史 URL,上线前要确认旧 URL 是否 301 到新 URL 的对应页面,而不是全部跳首页。判断结果是:随机抽取旧 URL,访问后落到内容相关的新页面,且状态码为 301。
下一步:在正式切换前,用抓取工具对首页、列表页、详情页各做一次网址检查,把 robots.txt、noindex、canonical、sitemap 四项结果记录在同一张表里,确认无冲突后再放开索引。