你站有 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 脚本,再套这张决策表:
| 字数 | 决策 |
|---|---|
< 100 | 410 删除 |
| 100-300 | noindex,follow 或合并到相关 hub |
| 300-500 | 扩到 800+,否则 noindex |
| 500+ | 保留,看质量 |
要真正腾出 crawl budget,优先用 410 / robots,而不是 noindex。noindex 页 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 官方只支持
JobPosting和BroadcastEvent(直播)页面。用它提交普通文章会被忽略,且据 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。