site:yourdomain.com/tag/* 搜出几十条 tag 归档页,但 site:yourdomain.com/articles/* 只有实际文章数的 30%。Search Console Pages 报告:tag URL 都在 Indexed,文章 URL 大多卡在 “Discovered” 或 “Crawled - currently not indexed”。
为什么标签页比文章页更容易被收录?因为每篇文章都自动反链到它带的所有 tag,tag 页变成了内链网络中的枢纽节点。文章页只靠”其他文章的内链”,往往稀疏。
这不是 tag 页 bug,是链接分布问题。
症状
site:yourdomain.com /tag/*出几十条site:yourdomain.com /articles/*远少于实际文章数- Search Console Pages 报告:标签 URL 都在 Indexed,文章 URL 大多 Not indexed
- tag 页本身可能没什么流量(关键词竞争弱)
快速结论
每篇文章都会反链到标签,所以标签页对 Google 来说很好发现。文章页靠”其他文章的内链”,往往稀疏。这是链接分布问题,不是标签页 bug。
常见原因
1. 标签自动挂到每篇,形成厚密 tag ↔ article 网
<!-- 文章模板末尾 -->
<aside>
<h3>标签</h3>
<a href="/tag/seo">#seo</a>
<a href="/tag/google">#google</a>
<a href="/tag/sitemap">#sitemap</a>
</aside>
每篇文章 → 5 个 tag 页。Google 顺着抓 tag 页,tag 页全收。
2. 文章之间只通过通用 “相关文章” 组件互链,且只取最新 3 篇
const related = await getCollection('posts').slice(0, 3); // 最新 3
每篇文章只链到最新 3 篇 → 老文章没人链 → 文章页内链信号弱。
3. 正文里没有跨文章的内链
很多写手写文章时不会回链到自己的老文章。结果文章正文里全是外链或没链接——文章页之间互链密度低。
4. tag 页本身没内容,只是文章卡列表
tag 页自动生成、无独有编辑内容——虽然进了索引但通常 0 关键词排名。它们浪费 crawl budget 却不带流量。
5. tag 数量爆炸
如果你站有 500 个 tag 但每个只 1-3 篇文章——大量薄 tag 页消耗 crawl budget。
最短修复路径
Step 1:把相关文章组件改成主题相关的,不只是最新
// 错:只取最新 3
const related = posts.slice(0, 3);
// 对:按 tag 重叠度计算相似度
function getRelated(currentPost, allPosts) {
return allPosts
.filter(p => p.slug !== currentPost.slug)
.map(p => ({
post: p,
score: p.tags.filter(t => currentPost.tags.includes(t)).length
}))
.filter(x => x.score > 0)
.sort((a, b) => b.score - a.score)
.slice(0, 8) // 5-8 篇
.map(x => x.post);
}
每篇文章末尾出 5-8 篇真正主题相关的——这样文章之间形成密集网络。
Step 2:每篇新文章正文里加 2-3 个内链到老相关文章
写作 SOP:
1. 草稿写完
2. 选 2-3 个关键论点位置
3. 找老站内最相关的文章,加文中内链
4. 锚文本是话题词(不是"点这里")
例:
新 prompt 不奏效时,**先测试它在 [chat 模式](/articles/chatgpt-prompts/) vs API 调用下的差异**——这两种环境的 system message 处理不同。
Step 3:弱标签页 noindex
# 找出薄 tag
ls src/tags/*.md | while read f; do
tag=$(basename "$f" .md)
count=$(grep -l "tags:.*$tag" src/articles/*.md | wc -l)
[ "$count" -lt 5 ] && echo "$tag: $count posts"
done
少于 5 篇的 tag:
<meta name="robots" content="noindex,follow" />
或干脆从 sitemap 删除 + 401 删除。腾出 crawl budget 给文章页。
Step 4:检查标签页是否意外比文章页内链多
# 数 tag 页有多少内链
rg -c 'href="/tag/' src/ | sort -t: -k2 -nr | head
# 数文章页有多少内链
rg -c 'href="/articles/' src/ | sort -t: -k2 -nr | head
如果 tag 内链总数远超 articles,说明结构失衡。
Step 5:把强 tag 页升级为 hub 页
不是所有 tag 都该删。少数关键词热度高的 tag(10+ 篇文章 + 真实搜索量)应该升级:
- 加 200 字编辑导语
- 加”必读 5 篇”+ 编辑点评
- 加 self-canonical
这样 tag 页本身也能带流量。
Step 6:观察文章页收录率
修完后 4-8 周:
Search Console → Pages → 看 /articles/* 这一分区
对比 4 周前的 Indexed 数字
期望提升 20-40%。
哪些情况可能不是你操作错了
新站标签先收、文章后收,几周延迟是常态——Google 还在构图。耐心等 4-8 周再判。
容易误判的情况
- 删全部标签很少帮助:文章页收录慢通常和标签无关,是文章之间内链不足
- 以为 tag 页被收录就有流量:tag 页大多不带流量,浪费 crawl budget
- 以为 noindex tag 会丢权重:用
noindex,follow,权重仍能传到文章
预防建议
- 做真实的”相关文章”算法(话题相似度),不是”最新 N 条”
- 在编辑模板里强制要求正文加 2-3 个内链
- tag 规划:每个 tag 至少 5 篇文章才设
- 弱 tag 默认 noindex,强 tag 升级为 hub 页(带编辑层)
- 每月扫一次薄 tag(< 5 篇)然后清理
FAQ
Q:标签页要 noindex 吗? A:只在它们薄或重复时 noindex。强标签页(10+ 篇 + 真实搜索量)有用。
Q:为什么标签页收录更快? A:它们在大量内链交叉点上——抓取信号强。
Q:用 category 替代 tag 会更好吗? A:可能。category 数量更少,每个更深,更容易做成 hub。但根本上还是要”少而精”。