KAIROS.WORKSPACE
技术宇宙 / ONLINE
返回文章列表
自部署运维intermediate6 分钟

一个该进 sitemap、一个不该进:结果页与详情页的收录边界

哪些 URL 该进 sitemap、哪些不该——从参数化结果页、SSR 借数据、noindex 策略三条线,讲清个人站的收录卫生。

#SEO#sitemap#收录#爬虫
排版
字号
行宽
目录 · 7 节

sitemap 不是“站点所有路由的清单”,而是“希望搜索引擎当作文档来抓的清单”。把两者混为一谈,会往索引里灌进一堆“每次抓都是不同空页”的噪音。

该进的:内容页

有独立信息价值、参数无关、稳定可重现的页面:文章详情、项目、标签、系列、工具页、关于。它们的判据是——同一个 URL 任何时候抓取,内容基本一致,且对用户有意义

不该进的第一类:参数化结果页

一次真实修复:/subscribe/status/ 被收录进 sitemap,但它本质是“订阅操作的结果回跳页”——内容完全由查询参数决定,无参数的抓取永远得到“链接无效”(见踩坑《“查看状态页”点进去永远显示链接无效》)。爬虫每抓一次都是一个不同的错误页,白白消耗抓取预算、还可能把“链接无效”当成正文索引。

判据:去掉参数就没有意义的 URL 不进 sitemap。若这类页确实需要存在(确认/退订回跳),给它 noindex,或只在有参数时返回正常、无参数时返回引导态。

不该进的第二类:借数据但无独立价值的 SSR 路由

有一类路由技术上能访问,但对读者零价值:健康检查、内部预览、管理入口。它们要么 noindex,要么本就不在 sitemap 里。能访问 ≠ 该收录

本项目处理过一例:/weekly-digest(周报预览)本属后台工具,早期挂在公开路由,既无公开入口、又链向一个受保护的接口(访客点开得到裸 401 JSON),还带着大量工程术语——典型的“误当作公开页”。最终整体迁入 /admin/ 加会话守卫,公开路径改 404,noindex 也不再需要(整页不再是公开文档)。

noindex 与 sitemap 的分工

  • 不想被收录<meta name="robots" content="noindex, nofollow">(告诉爬虫别索引);
  • 主动告诉爬虫哪些值得来:sitemap(<url><loc> 列表)。

两者要一致:一个页面既 noindex 又出现在 sitemap 里是自相矛盾的信号(等于一边说“别收我”一边递名片)。健康检查页、结果回跳页若确需 noindex,就要同时从 sitemap 移除。

一个务实的 sitemap 卫生清单

  • 只列内容页与真正公开的工具页
  • 排除:带参才有意义的结果页、健康检查、管理预览、内部 JSON/接口
  • 每个静态路由都对应一个真实可渲染页面(无参数访问不报错)
  • noindex 集合与 sitemap 集合无交集
  • 详情类条目带 lastmod(内容更新触发重抓)
  • 死链扫描纳入 release 门禁——sitemap 指向的每条都要 200

抓取预算:个人站也会踩

小站谈不上“预算耗尽”,但把无意义参数页喂给爬虫,换来的是一堆“低质/重复内容”抓取记录,稀释真正内容页的抓取频率,极端情况下让搜索引擎觉得站点信号混乱。卫生的 sitemap 是一种礼貌:你把“值得看的页”划清楚,爬虫就把力气花在那儿。

小结

sitemap 的每个条目都是一句“这个 URL 值得被当作文档对待”。参数化结果页、借数据路由、后台预览——它们要么不该收、要么该先“去参数化才有意义”的结构问题。判断口诀:能脱离查询参数独立成立、且对读者有信息价值的页面,才配进 sitemap。

Conversation

评论与互动

正在加载评论…

提交后需审核,不会立即公开。

Keep exploring

继续探索