大型内容站收录缓慢:先判断是不是 crawl budget,再修

几千页只收录一小部分。怎么判断到底是不是 crawl budget,2026 年真正能推进的是什么。

你站有 10,000 篇文章,Search Console 显示 Indexed 只有 2,500(25% 收录率),Crawl Stats 看 Googlebot 每天只抓 200 URL,新发的文章 2 个月才被收录。

最快的修法:找出那一半薄页 / 重复页,把它们从抓取路径里移除(410 删除、noindex、或 robots 屏蔽),再把内链集中到值得保留的页面上。大站点的约束是 crawl budget 加上质量需求(demand),不是发文数量。要做的是”砍薄的一半,强化剩下的”,不是”发更多”。

但先确认 crawl budget 真的是你的问题。按 Google 官方 crawl budget 文档(截至 2026 年 6 月),crawl budget 真正成为瓶颈,只对以下站点:

  • 100 万+ 唯一页面、内容大约每周更新的站,或
  • 10,000+ 唯一页面、内容每天大量更新的站,或
  • 任何 “Discovered — currently not indexed” 数量大且持续增长的站。

如果你低于这些门槛、页面却不被收录,原因通常是质量 / 需求(Google 发现了页面,但觉得不值得收录),而不是抓取容量本身。下面的”判断”部分帮你确定属于哪种情况。

症状

  • Index Coverage 报告 “Discovered — currently not indexed” 长到几千条
  • 多数新页 2+ 个月才被收录(或始终没有)
  • Crawl Stats 在 10k+ 页站点上每天只抓 100-500 URL
  • 整体收录率 < 50%

你属于哪种情况?

信号大概率原因去哪看
”Discovered — currently not indexed” 巨大;Crawl Stats 每天抓的 URL 很少抓取容量 / 预算Crawl Stats → 总请求数
”Crawled — currently not indexed” 巨大;Google 抓了却丢弃质量 / 需求Index → Page indexing 报告
Crawl Stats 显示大量非 200(3xx/4xx/5xx)响应预算浪费在垃圾 URL 上Crawl Stats → “按响应(By response)“
对 Googlebot 平均响应 > 1s,或 5xx 频发服务器容量被降速Crawl Stats → “平均响应时间”

“Discovered — currently not indexed” 意思是 Google 知道这个 URL 存在、但还没花预算抓——这是 crawl budget 信号。“Crawled — currently not indexed” 意思是 Google 抓了这个页、却选择不收——这是质量信号。两者修法不同,所以先看这个报告。

快速结论

大站点的瓶颈是 crawl budget 加内容需求。Google 在站点、分区、页面三层,根据服务能力、流行度、独特性、新鲜度,决定花多少抓取和收录资源。修法不是”发更多”,而是”砍薄的一半,强化剩下的”。

常见原因

1. 大量页很薄或重复,吃掉抓取预算

10,000 页里如果有 5,000 是 < 300 字的薄页 / 几乎相同的程序化生成页,Googlebot 抓完它们就用光当日预算,正经文章排不上号。Google 明确把重复 / 近重复 URL 视为被浪费的”perceived inventory”。

如何判断

// scripts/count-thin.mjs
import fg from "fast-glob";
import fs from "node:fs";
import matter from "gray-matter";

let total = 0, thin = 0;
for (const f of fg.sync("src/content/**/*.{md,mdx}")) {
  const { content } = matter(fs.readFileSync(f, "utf8"));
  const words = content.replace(/```[\s\S]+?```/g, "").split(/\s+/).filter(Boolean).length;
  total++;
  if (words < 300) thin++;
}
console.log(`Thin (<300 words): ${thin}/${total} = ${(thin/total*100).toFixed(1)}%`);

20% 薄页就是大问题。

2. 分面导航 / URL 参数生成大量低价值 URL

电商或大型博客典型:

/products
/products?color=red
/products?color=red&size=M
/products?color=red&size=M&sort=price
... 排列组合可能爆出 10 万 URL

每个变体都被 Googlebot 当独立 URL 爬,浪费预算。这是 Google 针对大站点点名最多的一类 crawl budget 黑洞。

如何判断:Crawl Stats → “按 URL 路径(By URL path)“,看哪些目录或路径模式吃请求最多。

3. 内链结构差,多数页距首页 5+ 次点击

首页 → /blog → /blog/page/15 → /blog/2023 → /blog/2023/04 → 文章

埋在 5 次点击深处的文章,抓取优先级最低。内链是 Google 发现并排序 URL 的方式,所以深度直接对应抓取频率。

4. Sitemap 巨大,混入参数 URL / noindex 页 / 404

# 看 sitemap 大小和 URL 数
curl -s https://yourdomain.com/sitemap.xml | wc -c
curl -s https://yourdomain.com/sitemap.xml | grep -c "<loc>"

# 单文件 > 50MB(未压缩)或 > 50,000 URL → 拆分

如果 sitemap 里混着 410 / noindex / 重定向的 URL,等于把 Googlebot 引向死路,浪费 sitemap 本该带来的发现价值。用 sitemap index 指向多个干净的子 sitemap,并带上准确的 <lastmod>,让 Google 优先抓真正变动过的页。

5. 站点权威低,Google 压低抓取需求(demand)

如果你站 DR < 20 或月流量 < 10k,抓取需求本身就低——Google 暂时没多少理由深抓你站。即使结构完美,在流行度和独特性上来之前,你也只能在一个小预算内分配。

6. 服务器响应慢 / 不稳定

Googlebot 对慢站会主动降速。如果你站对 Googlebot 平均响应 > 1s,或经常返回 5xx / 429,Google 会调低抓取容量上限,每天抓的总量下降。这是你能完全掌控的那个抓取容量杠杆:服务更快、更稳,天花板就更高。

最短修复路径

Step 1:审 sitemap

# 列出 sitemap 里的 URL,验证每个返回 200
curl -s https://yourdomain.com/sitemap.xml | grep -oE 'https://[^<]+' > all-sitemap.txt
while read url; do
  status=$(curl -sI -o /dev/null -w "%{http_code}" "$url")
  [ "$status" != "200" ] && echo "$status $url"
done < all-sitemap.txt

删掉 sitemap 里:

  • 404 / 410 URL
  • noindex
  • 参数 URL(utm / sort / filter)
  • 不到 100 字的页

Step 2:识别最薄的 20-30% 页面,合并或 noindex

用 Step 1 的 thin-page 脚本,再套这张决策表:

字数决策
< 100410 删除
100-300noindex,follow 或合并到相关 hub
300-500扩到 800+,否则 noindex
500+保留,看质量

要真正腾出 crawl budget,优先用 410 / robots,而不是 noindexnoindex 页 Google 仍得抓一次才能看到标签,所以它继续消耗预算;410 或 robots 屏蔽的路径则直接停止抓取。

Step 3:通过 robots.txt 阻止分面 / 参数 URL

User-agent: *
Disallow: /*?utm_
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?color=
Disallow: /*?size=
Disallow: /search
Disallow: /tag/

Sitemap: https://yourdomain.com/sitemap.xml

Google 官方的大站点建议是:对无限参数空间用 robots.txt(不是 noindex),正因为被屏蔽的 URL 根本不会被抓。这一步可能立刻把 crawl budget 从分面 URL 上腾出 50-80%。

Step 4:扁平化结构

旧:首页 → /blog → page/15 → 文章 (5 clicks)
新:首页 → /articles 索引 → 文章 (2 clicks)
---
// src/pages/articles/index.astro
import { getCollection } from 'astro:content';
const all = await getCollection('posts');
const grouped = groupByTopic(all);  // hub / pillar 页
---
{Object.entries(grouped).map(([topic, posts]) => (
  <section>
    <h2><a href={`/topic/${topic}/`}>{topic}</a> ({posts.length})</h2>
    <ul>{posts.map(p => <li><a href={`/articles/${p.slug}/`}>{p.data.title}</a></li>)}</ul>
  </section>
))}

重要文章 <= 3 次点击可达。加 hub / pillar 页集中权威,缩短到你最好内容的抓取路径。

Step 5:为最强内容争取外链

流行度(popularity)是抓取需求的直接输入,所以外链同时抬高收录优先级和抓取天花板。聚焦在你前 20 篇最有价值的文章,每篇争取 1-3 条权威外链:

  • Reddit / HN 发原创内容
  • 行业站 guest post
  • awesome-list 提交
  • 带新闻角度的数据驱动报告

Step 6:优化服务器响应

# 模拟 Googlebot 测速度
curl -sL -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
  -w "%{time_total}\n" -o /dev/null https://yourdomain.com/articles/foo/

响应时间 > 1000ms 就加 CDN、开缓存、优化 SSR。站点响应快、不再报错时,Google 会调高抓取容量上限,所以响应时间减半往往能明显抬高可抓量。

Step 7:保持耐心 — 4-12 周

可测量改进通常 4-12 周后才出现:

  • 4 周:crawl budget 重分配,新文章抓取速率上升
  • 8 周:薄页面被 deindexed,indexed 总数可能临时下降然后回升
  • 12 周:整体收录率提升 20-40%

怎么确认修好了

别只盯”Indexed”这个总数判断——它动得很慢。每周改看这几项:

  • Crawl Stats → 总抓取请求数呈上升趋势,且 “按响应(By response)”200 占比变高(更少预算花在 3xx/4xx/5xx 上)。
  • 做完 Step 6 后,Crawl Stats → 平均响应时间呈下降趋势。
  • Page indexing 报告:“Discovered — currently not indexed” 数停止增长,然后开始缩小。
  • 用 URL Inspection 工具抽查新 URL:“Crawl → Crawled as” 显示近期日期,而不是 “URL is unknown to Google”。

哪些情况可能不是你操作错了

10k 页新站,Google 故意分几个月慢慢加速度。技术设置完美也不可能几周内全收。耐心 + 持续高质量内容 + 外链 = 唯一路径。

容易误判的情况

  • 逐个 URL Inspection 提交不规模化:手动”Request indexing”按钮每个 property 大约每天只能提 10-12 个 URL(截至 2026 年 6 月),而且它只是促发现的一个推动,不是提高预算。10k 页时毫无意义。
  • Indexing API 在这里帮不上:Google 的 Indexing API 官方支持 JobPostingBroadcastEvent(直播)页面。用它提交普通文章会被忽略,且据 Google Search Relations,可能随时被停用——它不收博客文章或产品页。
  • 多提交几次 sitemap 不会加速收录:sitemap 只影响发现,不影响预算分配。每天重提交什么都不改变。
  • 以为 <priority> 1.0 有用:Google 忽略 sitemap 里的 <priority><changefreq> 提示。
  • 以为发更多内容能”撑起”权威:低质量批量发会把质量信号(SpamBrain)推向反方向,反而压低你整站的抓取需求。

预防建议

  • 只在确认能带新价值时再发一篇
  • 定期内容审计:保留上半,砍掉下半
  • 参数 / 分面 URL 从第一天就 noindex 或 robots 屏蔽
  • sitemap 永远自动生成、带准确 <lastmod>,定期跑健康检查
  • 每周看 Crawl Stats 趋势,及时发现 budget 浪费

FAQ

Q:10k 页站点多久能全收? A:现实地说 3-9 个月,新域名往往更久。完整 100% 收录极少能达到——60-80% 是好站点的实际值。

Q:Google 按固定速率收吗? A:不是。速率随服务能力、内容独特性、流行度、历史抓取健康度动态变化。

Q:能不能让 Google 提高我的 crawl budget? A:不能直接申请。Search Console 里那个能限制 Googlebot 的旧”crawl rate”设置已于 2024 年 1 月 8 日被移除——Google 现在根据服务器响应自动设定抓取速率。从来就没有提高它的开关。唯一的杠杆是:服务更快(抬高容量上限)和权威 / 独特性更高(抬高需求)。如果 Googlebot 正在压垮你的服务器,那就改填那个专门的 “Report problems with Googlebot crawling” 表单。

Q:删一半页面真的能帮其他页吗? A:能。释放 crawl budget + 提升整体质量信号,6-12 周后保留页面的收录率和排名都会上升。

Q:我的页面显示的是 “Crawled — currently not indexed”,不是 “Discovered”。修法一样吗? A:不一样。“Crawled — currently not indexed” 表示 Google 抓了页、判断它不值得收录——这是质量 / 独特性问题,不是预算问题。该去给那些具体页面加深度、加原创,而不是动 robots.txt。

相关阅读

标签: #SEO #Google #Search Console #收录 #排查 #大型站 #抓取预算