蜘蛛进入一个站点时,手里的信息其实很少:几个入口 URL、一份 Sitemap,以及上一轮抓取留下的印象。接下来它要在有限的时间里决定,是先在栏目层横向扫一圈,还是顺着某条路径一路往详情页深处挖。这个“深度与广度”的分配,直接决定了哪些 URL 能被发现。
抓取队列不是单纯的深度优先或广度优先
多数搜索引擎的抓取调度更像一个带优先级的队列:入口页先入队,解析出的链接按一定规则排进待抓列表,再逐条取出。权重高、更新频繁、历史抓取正常的页面会被提前,点击深度深、外链少、内容稀薄的页面则往后排。所以“蜘蛛会怎么走”没有固定路线,但站点结构确实能影响它先看到什么。
横向铺不开,新内容就容易卡在门外
- 新开的栏目页只在首页某个角落出现一次,蜘蛛扫过首页时可能顺手记下,之后再无入口。
- 改版后的新 URL 结构缺少从老路径过来的链接,等于凭空多出一批孤岛。
- 列表页只放出极少数条目,后面的内容全靠“下一页”,横向通道太窄。
横向广度不够时,表现往往是:日志里抓取集中在首页和几个主栏目,新增的详情页长期只有零星几次抓取,甚至完全没有记录。
纵向挖得太深,抓取概率会一路衰减
从入口算起,每多一次跳转,页面被访问到的概率就会下降一截。第三层、第四层之后,很多页面只能靠 Sitemap 或站外链接偶尔被翻到。常见的深层结构是:首页 → 栏目 → 子栏目 → 列表第 5 页 → 详情,走到详情时已经没多少余力继续跟。
把核心内容控制在三次点击以内
这不是硬性规则,而是一个方便自查的标尺:从首页出发,三次点击应该能到达大部分想被收录的页面。做不到的话,通常意味着中间少了一条直达的横向通道,比如专题页、热门标签页或编辑推荐的聚合入口。
内链怎么同时照顾深度和广度
- 首页给主要栏目稳定的入口链接。位置固定、长期不变,比一次性的推荐位更有用。
- 列表页留出足够的横向出口。分页要能正常跟到,同时可以用“相关栏目”“更多分类”这类链接把同级内容串起来。
- 详情页之间做横向关联。相关内容、上下篇、同标签列表,都是让蜘蛛从一条路径跳到另一条的通道。
- 面包屑固定回上级的路径。它既帮用户定位,也让蜘蛛能顺着层级回到列表页继续横向抓取。
Sitemap 是深度抓取的安全网,不是万能钥匙
Sitemap 的价值在于给深层 URL 一个不依赖点击深度的入口。URL 数量多、层级深的站点,分片提交并与内链保持一致,能减少漏抓。但要注意两点:一是 Sitemap 里的链接最好都能在站内正常访问到,纯粹只存在于 Sitemap 的页面,抓取优先级通常不高;二是 Sitemap 不能替代内链,把它当成唯一发现通道,等于放弃蜘蛛自然漫游带来的抓取动力。
可以从日志里观察的几个信号
- 抓取是否过度集中在一两个列表页,说明横向出口太少或结构过于单一。
- 栏目页反复被抓,但下面的详情页很少,可能是列表页链接输出不足或链接被遮挡。
- 某些深层页面只有 Sitemap 提交当天出现过一次抓取,说明站内缺少通向它的路径。
- 整体抓取量不低,但覆盖的目录很窄,可能是广度被少数高频页面吃掉了。
为了“广度”而在每个页面堆上几十上百条链接,通常不会带来更好的抓取效果。链接的价值来自它指向的内容是否值得抓,而不是数量。
与其猜蜘蛛的路线,不如按目录统计一段时间内的抓取分布:哪些层级被抓得多,哪些目录几乎空白。深度和广度的问题,基本都会在这张分布表上显出来。