站点每天产生新 URL,蜘蛛能不能拿到,取决于它有没有路可走。很多站点的问题不是内容差,而是所有路都从同一个口子进去——入口单一,一旦这个口子出问题,全站的 URL 发现都会跟着停摆。
蜘蛛进入站点的常见入口
- 首页与主导航:绝大多数蜘蛛的起点。
- Sitemap:主动提交的 URL 清单,适合批量告知。
- 内链:从已有页面顺着链接走到新页面。
- 外部链接:其他站点指向你的链接,尤其是被频繁抓取的页面上的链接。
- 历史抓取记录:蜘蛛会回访之前抓过的 URL,看内容有没有变化。
这些入口不是并列关系,而是互相补位。只用其中一个,容错空间就很薄。
入口单一会带来什么
假设一个站点只有首页一个入口:新发布的详情页要等蜘蛛抓完首页、再抓列表页、再走分页,才能发现。首页改版、临时不可用,或 robots.txt 配置出错,都会让新 URL 的发现中断。
另一种常见情况是入口集中在列表页。列表页按时间排序,旧内容被不断挤出第一页,如果分页链接靠 JS 加载、没有可抓取的 href,蜘蛛对列表深层的访问就会明显减少。
判断入口是否单一,看抓取日志里同一批新 URL 的来源页面是否高度重合。如果九成新页面的第一次访问都来自同一个 URL,就该补入口了。
把入口分散开的几种做法
1. 内链不要只依赖列表页
在相关文章、专题页、标签页里加上指向新页面的正文链接,让蜘蛛从多个方向都能碰到它。链接放在正文里,通常比塞进页脚更有意义。
2. Sitemap 保持分片与更新
URL 数量大时用索引文件分片,按内容类型或更新时间切分,避免一个文件里塞进几万条陈旧地址。lastmod 写真实的修改时间,不要批量刷新成当天。
3. 保留可以被抓取的 HTML 链接
分页、加载更多、筛选后的列表,尽量给出可点击的真实 href。完全靠接口或 JS 渲染出来的路径,蜘蛛不一定能走通。
4. 服务器稳定是入口能用的前提
入口再多,如果响应经常超时或返回 5xx,蜘蛛会降低抓取频率,恢复需要时间。把响应时间和错误率纳入日常监控,比事后翻日志省事得多。
几个容易忽略的细节
- 首页被大量参数化链接占满,真正重要的栏目入口被挤到很后面。
- Sitemap 里混进了被 robots 屏蔽或标了 noindex 的 URL。
- robots.txt 挡住了入口页本身,蜘蛛连走进去的机会都没有。
- 外链集中在一个很少被访问的页面上,等于没有入口。
用什么观察入口是否有效
- 看抓取日志里的 referer 字段,统计新 URL 首次被抓时的来源分布。
- 对比 Sitemap 提交量与日志中实际被抓的 URL 数量,差距大说明某些入口没被使用。
- 抽查若干新页面,手动确认从首页出发需要几次点击能到达。
- 给关键入口页做可用性监控,404、超时、被屏蔽都能第一时间发现。
入口分散不是为了讨好蜘蛛,而是让 URL 发现这件事不依赖某一个页面。结构越扁平、入口越多样,内容被发现的节奏就越稳定,运营侧也更容易判断问题出在哪个环节。