搜索抓取

抓取日志里的 Referer:反推每一个 URL 是被哪条链接带进来的

服务端日志里除了状态码和 UA,Referer 一列常被忽略,却能回答一个很实际的问题:这条 URL 是被哪条链接带进来的。本文讲清几种典型来源形态的含义、如何用它反查孤岛页面的入口、以及 Referer 不准的常见情况与核对步骤。

搜索抓取

抓取日志里的 Referer:反推每一个 URL 是被哪条链接带进来的

Referer 是日志里最容易被忽略的一列

服务端日志通常记录时间、IP、UA、请求路径、状态码和字节数,很多人只看这几列。如果把 Referer(来源地址)也留下来,就能回答一个很实际的问题:这条 URL 是被谁带进来的。它不能决定收录,也不能反映排名,但在核对内链结构和发现路径时,比凭空猜测有用得多。

几种典型 Referer 形态的含义

  • 来源是站内某个列表页或导航页:说明这个入口有效,链接被跟随了。
  • 来源是 sitemap 地址:说明这次抓取走的是 Sitemap 提交渠道,而不是站内链接。
  • 来源是外部域名:外链仍然存在,抓取从站外进入。
  • 来源为空:信息量最少的一类,可能来自 Sitemap、接口提交、手工输入、第三方工具,也可能是跨协议或隐私策略把它抹掉了。

需要提醒的是,空的 Referer 不等于没有来源。不要仅凭这一条就判断某个页面是孤岛,也不要据此认定它已经被正常发现。

用 Referer 反查孤岛 URL 的入口

思路很简单:把一段时间内的日志按 URL 聚合,找出只被抓过一两次、且来源为空或只有 Sitemap 的页面,再回到站点侧确认这些 URL 在站内是否真的没有链接入口。如果确实没有,那它们就只靠 Sitemap 和提交接口撑着,入口一旦变动,发现链路就断了。

  1. 导出 7 到 30 天日志,保留路径、状态码、UA 和 Referer 四列。
  2. 筛出目标 URL 集合,统计每条 URL 的来源去重列表。
  3. 来源全空、且不含 sitemap 路径的,标记为待补链。
  4. 在列表页、面包屑或相关推荐中补上入口,两到四周后再看来源里是否出现站内页面。

Referer 不准的几种情况

  • HTTPS 页面跳向 HTTP 页面时,来源可能被丢弃。
  • 站点设置了 Referrer-Policy,例如 no-referrer 或只保留域名,日志里就看不到完整路径。
  • CDN、反向代理或 WAF 可能改写、截断该字段,回源日志里的值未必是原始值。
  • 部分抓取工具、预渲染服务和监控探针的请求本来就不带正常来源。

所以 Referer 只能当线索,不能当结论。它要和状态码、UA、请求时间一起看,才不至于把工具流量误判成搜索抓取。

把 Referer 与内链位置对上

站内链接的位置有强弱之分。同一条 URL,如果来源大量集中在首页或频道导航,说明它离入口近,被反复经过的机会更多;如果只来自很深的列表页,出现频率通常更低。可以按来源类型分组统计:导航链接、列表页链接、正文内链、页脚链接、相关推荐。

判断一条 URL 的发现链路是否健康,看的是它有没有多个稳定的站内入口,而不是某一次抓取来自哪里。

几个容易踩的坑

  • 只看总抓取量、不看来源分布:总量看着正常,但来源单一,入口一改就会掉。
  • 把 Sitemap 文件的抓取当成页面抓取:抓取了 sitemap.xml 本身,不代表里面的 URL 都会被访问。
  • 忽略分片:日志里的 Sitemap 路径有很多变体,核对时要按前缀聚合再看。
  • 拿 Referer 去推断收录或排名:它只说明这次请求从哪来,与索引结果没有直接对应关系。

小结

Referer 不是必看字段,但对定位“这个 URL 到底有没有站内入口”很有帮助。先把日志字段保留完整,再做一轮 URL 与来源的对照,通常能找出几批只靠 Sitemap 支撑的页面。补上内链入口之后,再回来看来源结构有没有变化,比一次性改动全部模板更稳妥。