该电商平台的 SEO 团队重写了其索引规则,此前一个简单的“少于 3 个列表 = noindex”策略导致分类页面从 Google 中消失,且需要数周时间才能重新出现。通过添加一个单向“解锁”记录,允许页面从 noindex 变为 index 但永远不会转回,该网站成功解决了这种反复波动的问题。
为什么原始规则适得其反
该分类广告平台会生成大量的“分类+地点”页面。当一个页面首次出现时,通常只包含少量列表,因此团队决定在列表达到三个项目的最低阈值之前,将其从搜索结果中隐藏。逻辑非常简单:
- < 3 个列表 → 添加
noindex元标签 - ≥ 3 个列表 → 移除该标签(允许索引)
最初,这确实将内容薄弱、低价值的页面排除在 Google 搜索结果之外。但随着列表到期,问题出现了。一个今天有五个列表的页面,到了明天可能就只剩下两个,从而瞬间切回 noindex。Google 遵循了这一指令,将该 URL 从索引中移除,导致页面失去了之前建立的所有排名。当新列表出现时,页面虽然再次变得可索引,但重新进入索引的过程却需要数周时间。
结果导致了一个不断的“开启-关闭”循环:页面进入索引、消失、再次进入,如此循环往复。
单向“解锁”修复方案
核心缺陷在于该规则没有“记忆”;它在每次请求时都会重新计算阈值。团队引入了一个微型数据库表——seo_unlocks——用于记录页面首次达到三个列表标记的时间。新的工作流程如下:
- 检查列表数量。 如果页面有三个或更多活跃列表,则继续执行。
- 写入解锁行。 在
seo_unlocks中为该页面插入一条记录。 - 将页面视为永久可索引。 即使后续数量降至三个以下,由于存在解锁行,页面也不会进入
noindex流程。
由于解锁记录只能写入一次,页面可以从“noindex”变为“index”,但绝不会转回。团队还增加了保护措施,以确保过滤后的 URL(例如带有价格范围的搜索结果)不会为其父级分类创建解锁记录,并将数据库调用封装在 try/catch 块中,以防止数据库故障导致整个网站崩溃。
这对抓取预算和薄弱页面意味着什么
一个常见的误区是认为 noindex 可以节省抓取预算。Google 仍然需要抓取页面、读取标签,然后将其从索引中移除。如果目标是防止 Google 请求整个 URL 模式,正确的工具应该是 robots.txt。只有当你希望 Google 看到页面但不希望其在搜索结果中显示时,才使用 noindex。
对于依赖大量自动生成页面的目录网站、招聘网站和电商平台,教训是显而易见的:针对薄弱页面的规则必须与持久层相结合,该持久层需要记住页面何时获得了进入索引的资格。如果没有这种“记忆”,内容的暂时减少会导致页面丢失已建立的排名,且重新进入索引可能需要数周时间。
总结
对于动态列表网站,“如果数量 < 3 则 noindex”这种静态规则会造成 SEO 波动。添加单向解锁记录可以赋予规则“记忆”,使页面即使在列表波动时也能获得并保持其索引状态。将其与正确的 robots.txt 使用方法相结合以实现真正的抓取预算节省,你就可以同时保护排名和服务器资源。
