一个客户在去年春天的周二早上给我打电话,声音里充满了恐慌。他运营一个房产列表网站,大约有42,000个页面,Google Search Console刚刚告诉他其中只有5,800个被索引了。他丧失了大约86%的可索引页面,看起来是一夜之间发生的。没有算法更新。没有人工操作。也没有他能想起的最近部署。就这样... 消失了。
关键要点:当一个40,000页面的WordPress网站只有6,000个页面被收录时,原因几乎总是架构问题:分面网址、薄模板和爬虫浪费,而不是谷歌惩罚。
在Seahawk的12,000+个WordPress项目中,我看过这种情况无数次。最让人抓狂的是,大型网站的索引丢失很少只有一个原因。通常是三四个小故障悄悄叠加,直到某个环节崩溃。
以下是我实际的诊断方法。
---
从Google Search Console开始,但不要止步于此
我总是做的第一件事是在Google Search Console中打开Pages报告。不是旧的Coverage报告,Google在2023年更新了这个,新的Pages视图将已索引和未索引的页面分开,并提供了适当的原因代码。在第一天拍一张截图。你需要一个基准。
这些原因代码非常重要。"已爬取,当前未索引"与"被'noindex'标签排除"是完全不同的问题。一个是质量信号问题;另一个是配置灾难。我见过开发人员将两者同样对待,结果浪费了数周去追踪错误的问题。
我在大型网站上最常看到的原因
- 已爬取,当前未索引:Google访问了该页面,但认为它不值得索引。通常是薄内容、近似重复或没有获得反向链接或内部链接的页面。
- 已发现,当前未索引:Google找到了该URL(可能在你的sitemap中),但还没有费力去爬取它。这是爬虫预算问题,而不是内容问题。
- 被'noindex'标签排除:某人,可能是你,可能是某个插件,添加了noindex指令。详见下文。
- 重复内容,Google 选择了其他规范标签:你的规范标签指向意外的位置,或 Google 正在覆盖它们。
- 页面有重定向:一个应该可被索引的页面正在重定向到某个地方,可能正确也可能不正确。
不要只看总数。为每个原因代码下载完整的 CSV 列表。在有 40,000 个页面的网站上,你需要能够排序和筛选。
---
爬虫预算是真实存在的,它会摧毁大型网站
早在2019年,Seahawk与一个大型电子商务客户合作,大约有28,000个产品页面,我们无法弄清楚为什么Google每天只爬取大约3,000个页面。网站速度很快。Sitemap很干净。表面看起来一切正常。
结果发现这个网站生成了数千个多面导航URL(比如?colour=red&size=large&sort=price),这些URL是可爬取的,但没有正确规范化,在谷歌机器人到达真正的产品页面之前,就已经消耗殆尽了它的爬取配额。
爬取预算本质上是指在给定时间内,谷歌机器人愿意在你网站上爬取的URL数量。谷歌官方文档中关于爬取预算的内容真的值得一读,他们坦诚讲述了其工作原理。简单来说:如果你把它浪费在垃圾URL上,重要页面就不会被爬取。
如何真正审计爬虫预算
- 查看你的服务器日志。不是谷歌的爬取统计数据,而是实际的服务器日志。Screaming Frog Log File Analyser这样的工具可以让你纯粹筛选谷歌机器人的访问记录。
- 查看Googlebot访问中有多少百分比落在你真正关心的URL上。如果低于60%,你就有预算问题。
- 找出消耗最多抓取的URL模式。按频率排序。最常见的问题几乎总是:分面导航、分页存档上的分页、会话ID参数,以及空的分类/标签存档页面。
- 解决根源,而不仅仅是症状。在robots.txt中对永远不应该被抓取的参数进行Disallow。对其他一切使用rel="canonical"标签。
在那个电商项目上,我们通过robots.txt阻止了分面URL,并为所有过滤视图添加了rel="canonical"。在六周内,索引页面从8,000增加到24,000。内容相同。只是Googlebot最终到达了。
---
noindex 灾难(发生的频率比你想象的要高)
我需要谈论这个问题,因为我自己也经历过。不是我最闪耀的时刻。在 2021 年为一个新闻网站进行从测试环境到生产环境的迁移时,我们没有取消 WordPress 设置 → 阅读中的"阻止搜索引擎为该网站编制索引"选项。网站上线时带着全站 noindex。过了十一天,客户才注意到自然流量急剧下降。
WordPress把这个复选框放在没人想到的地方。而且某些SEO插件,比如Yoast、Rank Math,甚至AIOSEO,都在文章类型级别、分类法级别和单个页面级别有自己的noindex开关。其中任何一个都可能无声地对你网站的大片内容进行noindex处理。
如何大规模检查 noindex
对全站运行Screaming Frog,筛选返回noindex指令的页面。导出列表。然后与你的重要URL组进行交叉引用,比如产品页面、服务页面、博客文章,无论业务关心什么。
还要检查你在yourdomain.com/robots.txt的robots.txt文件。查找过于宽泛的Disallow规则。我见过像Disallow: /wp-content/这样的规则阻止了谷歌渲染页面所需的CSS和JS,这可能导致渲染失败,看起来像索引问题,但实际上是谷歌机器人看到了一个损坏的页面。
---
暗地里失效的规范标签
规范标签是大型 WordPress 网站上最隐蔽的索引杀手。因为它们单独看起来没问题,只有在大规模情况下才会暴露它们的危害。
我经常看到这样的模式:一个WooCommerce网站的产品可以通过多个URL路径访问,比如/product/red-shoes/、/product-category/footwear/red-shoes/,有时还有/shop/red-shoes/。每个都有一个规范标签,但如果这些规范标签指向略有不同的URL(HTTP vs HTTPS、有末尾斜杠 vs 无末尾斜杠、www vs 非www),谷歌会将其视为指向不同页面的信号,拒绝合并。
修复方法很平凡但很必要:
- 审计 WordPress 安装生成的每个 URL 结构。使用 Screaming Frog 的网站爬行功能→按"规范标签"筛选→导出。
- 检查是否存在协议不匹配、尾部斜杠差异和子域变体。
- 确保你的规范标签始终与你的首选 URL 完全匹配,逐个字符对应。
Rank Math 和 Yoast 都会自动生成规范标签,但这两个插件都不了解你的 .htaccess 重定向或 CDN 的 URL 规范化。你必须验证渲染后的规范标签,而不仅仅是插件认为它输出的内容。使用 httpstatus.io 这样的工具获取页面,并检查实际的响应头和 HTML。
---
大型网站上的 XML 网站地图通常是错的
大多数WordPress SEO插件会自动生成站点地图。其中大多数也会在站点地图中包含你不想要的URL,比如分页页面(/page/2/、/page/3/)、作者存档、只有两篇文章的标签页、附件页面。
网站地图应该是你最好的、最规范页面的精选列表。而不是 WordPress 曾经生成过的每个 URL 的转储。
我实际遵循的网站地图卫生规则
- 排除分页归档页面。总是这样做。
- 排除作者归档页面,除非这是一个多作者网站,且作者页面具有真实的内容价值。
- 排除标签归档,除非标签是由编辑管理的,且具有有意义的内容。
- 设置一个文章计数阈值,我通常会排除任何少于五篇文章的存档页面。
- 将大型网站地图拆分为网站地图索引。保持单个网站地图文件在 10MB 以下且 URL 数量在 50,000 以下。Google 在这里记录了具体限制。
以这篇文章开头的那个房产列表网站为例,它的站点地图有41,000个URL,包括每个标签存档、每个分页页面,以及——我还是得说——WordPress登录页面。先清理一下。总是要先清理。
---
内部链接是一个索引问题
人们不认为内部链接是一个索引工具。他们应该这样认为。
如果一个页面没有内部链接指向它,Google爬虫可能根本找不到它,即便它在你的网站地图中。网站地图告诉Google一个URL存在。内部链接告诉Google一个URL很重要。这是两个不同的信号。
在大型内容网站上,孤立页面随处可见。一篇三年前发布的博客文章,从文章存档中链接但从未从任何其他文章链接过,其爬取频率会随着时间推移降至几乎为零。
我使用Screaming Frog的"孤立页面"报告(在网站结构下)来识别网站地图中没有任何内部链接指向的页面。然后我回过头来查看内容,找到合适的地方添加链接。不是生硬的链接,而是真正相关的链接。这需要时间,但对索引的影响是真实的。
---
系统诊断检查清单
如果我要把这个交给 Seahawk 的初级开发者,这是我让他们按顺序进行的步骤:
- 拉取 Google Search Console → 页面报告 → 下载所有未索引的 URL 及其原因代码。
- 检查 robots.txt 中是否有意外的广泛禁止。
- 验证 WordPress"阻止搜索引擎索引"复选框已关闭。
- 运行 Screaming Frog 并筛选页面级的 noindex 指令。
- 检查规范标签、渲染输出,而不是插件设置。
- 拉取服务器日志,检查 Googlebot 在不同 URL 类型中的爬取分布情况。
- 审核 XML 网站地图,查找垃圾 URL(分页、空存档、非规范变体)。
- 运行孤立页面报告,识别内部未链接的页面。
- 检查分面导航或基于参数的 URL 是否生成了重复的可爬取路径。
- 验证页面速度,经常超时的页面会被Google爬虫降低抓取优先级。
不要一次性尝试修复所有问题。修复一个类别的问题,等待三至四周让 Google 重新爬取,测量效果,然后处理下一个。如果你同时改变所有内容,你永远不会知道什么真正起作用了。
---
常见问题
页面为什么会在一周内被索引,然后在下一周被移除?
Google的索引不是静态的。它根据质量信号、新鲜度和抓取效率不断重新评估页面。一个在六个月前被索引的页面,如果没有获得任何链接、没有被内部链接到,或者Google对你的网站域名的质量评估发生了变化,就会被删除。这在网站迁移或大规模内容改版后尤其常见——Google会重新抓取、重新评估,有时会认为之前被索引的页面不再达标。
网站速度会影响索引吗?
直接影响程度比大多数人意识到的要大。如果页面响应缓慢,初始服务器响应时间持续超过2-3秒,Google爬虫会降低抓取它们的优先级。大规模来看,这意味着慢速页面根本没有足够频繁地被抓取以保持索引。在关心其他速度相关的任何东西之前,先修复你的首字节时间(TTFB)。像WP Rocket这样的廉价缓存插件会产生可衡量的效果。Core Web Vitals对排名很重要,但TTFB对抓取很重要。
网站地图中的页面过多会影响索引吗?
没有直接影响,但一个臃肿的网站地图包含低质量的URL会削弱你发送给Google的关于什么重要的信号。如果你的网站地图包含40,000个URL,其中30,000个是低质量的存档页面,Google会学会把你的网站地图当作噪音看待。保持网站地图精简且高质量。把它看作编辑策划,而不是URL清单。
我应该使用Google的URL检查工具来手动请求索引吗?
对于单个重要页面,绝对可以。但不要试图为成千上万的URL手动请求索引。这根本不可扩展,Google也说过它不会长期给手动请求的URL特殊待遇。修复潜在的抓取和质量问题,让Google的自然抓取去工作。使用手动检查来验证特定页面是否可以被索引,而不是强制索引一切。
---
诚实的真相是,索引诊断不是光彩的工作。它是电子表格、日志文件,还有大量的等待。但在一个大型网站上,即使恢复20%的丢失索引页面也能意味着有机流量的显著增长,在一个40,000页的房产列表网站上,那是真金白银。在追逐任何复杂的东西之前,把基础做对。几乎永远都不是复杂的东西。
