< BACK 大型WordPress网站索引问题:诊断指南 -- 线条艺术插图

大型WordPress网站的索引问题:诊断指南

一个客户在去年春天的周二早上给我打电话,声音里充满了恐慌。他运营一个房产列表网站,大约有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上,重要页面就不会被爬取。

如何真正审计爬虫预算

  1. 查看你的服务器日志。不是谷歌的爬取统计数据,而是实际的服务器日志。Screaming Frog Log File Analyser这样的工具可以让你纯粹筛选谷歌机器人的访问记录。
  2. 查看Googlebot访问中有多少百分比落在你真正关心的URL上。如果低于60%,你就有预算问题。
  3. 找出消耗最多抓取的URL模式。按频率排序。最常见的问题几乎总是:分面导航、分页存档上的分页、会话ID参数,以及空的分类/标签存档页面。
  4. 解决根源,而不仅仅是症状。在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),谷歌会将其视为指向不同页面的信号,拒绝合并。

修复方法很平凡但很必要:

  1. 审计 WordPress 安装生成的每个 URL 结构。使用 Screaming Frog 的网站爬行功能→按"规范标签"筛选→导出。
  2. 检查是否存在协议不匹配、尾部斜杠差异和子域变体。
  3. 确保你的规范标签始终与你的首选 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 的初级开发者,这是我让他们按顺序进行的步骤:

  1. 拉取 Google Search Console → 页面报告 → 下载所有未索引的 URL 及其原因代码。
  2. 检查 robots.txt 中是否有意外的广泛禁止。
  3. 验证 WordPress"阻止搜索引擎索引"复选框已关闭。
  4. 运行 Screaming Frog 并筛选页面级的 noindex 指令。
  5. 检查规范标签、渲染输出,而不是插件设置。
  6. 拉取服务器日志,检查 Googlebot 在不同 URL 类型中的爬取分布情况。
  7. 审核 XML 网站地图,查找垃圾 URL(分页、空存档、非规范变体)。
  8. 运行孤立页面报告,识别内部未链接的页面。
  9. 检查分面导航或基于参数的 URL 是否生成了重复的可爬取路径。
  10. 验证页面速度,经常超时的页面会被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页的房产列表网站上,那是真金白银。在追逐任何复杂的东西之前,把基础做对。几乎永远都不是复杂的东西。

< BACK