做蜘蛛池的人经常纠结一个问题:目标 URL 到底该靠入口页里的链接被发现,还是干脆整理成 Sitemap 提交上去。这两条路并不冲突,但它们解决的问题不太一样,混着用容易既没把量做上去,也看不清到底是哪条路在起作用。
Sitemap 的优势是清单明确,劣势是缺少上下文
Sitemap 本质上是一份 URL 清单,搜索引擎抓取它的成本很低,解析速度也快,适合批量、结构化地告诉搜索引擎“我这里有哪些地址”。当目标 URL 数量大、层级深、站内互链稀疏时,Sitemap 往往是更省事的申报方式。
但 Sitemap 只给地址,不给上下文。一个 URL 出现在 Sitemap 里,并不代表搜索引擎就认为它值得抓、值得留。它没有锚文本、没有页面位置、没有和周围内容的语义关系,因此在判断优先级和重要程度时,Sitemap 能提供的信息相当有限。很多站点把几万条 URL 塞进 Sitemap,实际被请求到的只是其中一小部分,原因通常就在这里。
入口页内链的优势是带上下文,代价是依赖前置条件
页面里的链接天然带着锚文本、所在段落、周围内容以及页面本身的权重信号,搜索蜘蛛顺着链接走的时候,能顺便拿到这些信息。入口页内链的另一个好处是“发现”和“抓取”往往连着发生,不像 Sitemap 那样容易排进队列后长期不动。
代价是它有前置条件:入口页自身得先被抓到、得能被稳定访问、链接不能藏在 JS 渲染之后或者被 robots 规则挡住。入口页一旦不被回访,里面写得再整齐的链接也等于零。
两者配合时,比较稳妥的做法
- 目标 URL 数量大、结构规整:先用 Sitemap 兜底,保证地址至少被申报过,再用入口页内链给其中重点的 URL 加一层上下文。
- 目标 URL 数量少、需要强调:以入口页内链为主,Sitemap 作为补充,不必为了几十条 URL 专门维护一个文件。
- 目标 URL 分散在不同域名或子域下:按可提交的域名边界分别整理 Sitemap,不要混在一个文件里,跨域混装容易被忽略。
- 入口页里的链接:保持真实可点击、指向最终地址,避免多层跳转之后才落到目标 URL。
几个常见误区
- 把 Sitemap 当成“提交即抓取”的通道,忽略了入口页本身也需要持续被回访。
- Sitemap 里塞入大量参数页、筛选页、重复页,反而稀释了真正想推的那些 URL。
- 入口页里只放一条指向 Sitemap 的链接,不放具体地址,等于把入口页做成了一张目录页。
- 两边长期不一致:Sitemap 里有、入口页里没有,或者反过来,却从不核对。
发现路径多一条,不等于抓取和收录就多一份。搜索蜘蛛的时间和带宽是有限的,最终仍按它自己的判断来分配。
怎么判断哪条路在起作用
看日志比猜更靠谱。可以重点观察三件事:一是搜索蜘蛛请求 Sitemap 文件的频率和返回状态;二是入口页被访问的频次,以及访问之后有没有对目标 URL 的后续请求;三是目标 URL 上出现的抓取请求,其来源或时间戳能否和入口页的访问对上。
如果 Sitemap 抓得很勤,但目标 URL 上几乎没有后续请求,说明清单被读取了却没有被优先处理;如果入口页本身的访问量就很低,那问题多半出在入口页,而不是链接的写法上。
小结
Sitemap 和入口页内链不是二选一的关系。Sitemap 解决“有哪些地址”的覆盖问题,入口页内链解决“这条地址为什么值得看”的上下文问题。实际运营中比较常见也比较好维护的做法是:用 Sitemap 保证覆盖面,用入口页内链突出重点,然后定期用日志回过头核对两条路各自的实际产出。