常见问题

入口页用了 base 标签:相对链接会被搜索蜘蛛解析到哪个域名

入口页里一个 base 标签,可能让相对链接的解析域名整体偏移。搜索蜘蛛按 HTML 规范处理,不会替你纠正。本文说明 base 如何影响 URL 发现、常见误用场景,以及用绝对地址和抓取测试排查的方法。

常见问题

入口页用了 base 标签:相对链接会被搜索蜘蛛解析到哪个域名

做蜘蛛池入口页时,很多人习惯把链接写成相对路径,例如 /a/123.html 或 page/456.html。如果页面头部多了一个 <base href='https://旧域名.com/'>,搜索蜘蛛解析出来的目标地址可能完全不是你想要的域名。这个问题不常被注意,但会直接影响 URL 发现。

搜索蜘蛛会按 HTML 规则解析 base

HTML 规范里,文档中相对 URL 的解析基准可以受 base 标签影响。搜索蜘蛛抓取入口页时,通常也按这套规则处理。它不会因为你主观上想指向新站,就自动忽略 base 指向的旧域名。

  • 如果 base 指定了域名,相对链接会拼到该域名下。
  • 如果 base 只指定了路径,链接会在当前域名下按新路径拼接。
  • 写成绝对 URL 的链接不受 base 影响,会按原样识别。

所以问题不在于搜索蜘蛛能不能识别链接,而在于它识别到的是哪一个地址。入口页里看起来正常的文字,解析后可能变成另一个站点的 URL。

常见误用场景

模板复制、测试环境切正式环境、旧站改版新站,都容易留下 base 标签。以下几种情况比较常见。

  1. 从旧模板复制入口页:base 还指向旧域名,页面上所有相对链接都被带过去。
  2. 测试环境和正式环境混用:本地测试时用 base 指向测试域名,上线后忘记删除。
  3. base 指向带目录的地址:相对链接会拼到该目录后面,可能批量产生 404。
  4. 同时存在多个 base:浏览器和蜘蛛通常只认第一个,后面的不生效,容易误判。

这些情况不一定马上被发现。因为入口页本身可以正常打开,肉眼看到的链接文字也没变,只有查看源码或看日志时才会暴露。

相对路径、根路径和绝对地址的区别

理解三种写法的差异,有助于判断 base 会带来多大影响。

  • 相对路径:如 page/123.html,会受 base 的域名和目录影响。
  • 根路径:如 /page/123.html,通常只受 base 的域名影响,目录部分影响较小。
  • 绝对地址:如 https://目标站.com/page/123.html,基本不受 base 影响。

如果你的入口页链接混合了这三种写法,排查时会更麻烦。搜索蜘蛛可能一部分链接抓对了,另一部分抓到了旧域名,日志里看起来像是“有些 URL 发现了,有些没发现”。

怎么排查和修正

不需要复杂工具,先看源码,再做抓取测试。

  1. 在浏览器里打开入口页,查看源代码,搜索 base 标签。
  2. 确认 base 是否存在、指向哪个域名、有没有多余目录。
  3. 用抓取测试工具或日志确认搜索蜘蛛实际请求的 URL,而不是只看页面文字。
  4. 把关键链接改成绝对地址,尤其是目标 URL 列表。
  5. 如果确实不需要 base,直接删除,避免后续复制模板再次带出问题。
入口页的作用是把搜索蜘蛛带到目标 URL。如果 base 把相对链接解析到另一个域名,入口页等于在帮倒忙。先保证解析结果正确,再谈更新频率和数量。

如果 base 已经造成错误解析

先修正入口页,让相对链接回到正确域名。然后观察日志里搜索蜘蛛对正确 URL 的请求变化。已经抓错的那部分,通常需要重新被发现,不会因为改回 base 就自动回到目标站。入口页本身如果被缓存,还要确认缓存版本是否同步更新。

如果入口页由 CDN 或反向代理提供,旧版本可能还在缓存中。搜索蜘蛛抓到旧 HTML 时,base 和链接仍按旧版解析。此时除了改源文件,还要处理缓存刷新,否则修正不会立即反映到抓取端。

小结

base 标签不是搜索蜘蛛的盲区,它会影响相对链接的解析域名。入口页出现链接“跑到别的站”或批量 404 时,优先检查 base。对蜘蛛池和站点运营来说,入口页的链接最好用绝对地址,减少模板复制和环境切换带来的解析偏差。这样搜索蜘蛛发现的 URL 才更接近你真正想提交的目标。