很多人盯的是“入口页有没有被爬”,但真正影响结果的,往往是蜘蛛从入口页出发后,能不能顺利走到你希望它看到的那一页。这中间隔了几次点击,就是链接深度。
为什么深度会影响抓取结果
搜索引擎给每个站点的抓取量是有上限的,这个上限受站点权重、更新频率、服务器响应速度等因素影响。蜘蛛每天能抓的页面数量有限,它会先把额度花在离首页近、链接多、看起来更新的页面上。
深度每增加一层,被抓到的概率就会打一次折扣。不是因为蜘蛛“懒”,而是它必须在有限时间里做取舍:同一批链接摆在面前,浅层的通常先被排队。
深度不是唯一变量,但它往往是运营者自己最容易搞坏的那一个。
入口页到目标页,隔几层比较合适
一般的经验是,从入口页算起,目标页尽量控制在三次点击之内。
- 一层:入口页直接链到目标页。抓取路径最短,适合数量不多、重点明确的页面。
- 两层:入口页 → 列表页或聚合页 → 目标页。适合目标页数量较多、需要先做一次分流的情况。
- 三层:再加一层细分,通常已经是可接受的上限。
- 四层及以上:除非站点体量很大,否则建议用 sitemap、主动推送或入口页直链补一条捷径。
这里的“层”指的是实际可点击路径,不是你规划图里的层级。规划得再整齐,只要中间某一步的链接是脚本生成的,对蜘蛛来说那一层就不存在。
几种把层级悄悄做深的写法
- 链接靠 JS 动态插入,HTML 源码里看不到 a 标签。
- 需要点击“展开更多”“查看全部”才出现的链接。
- 目标页被塞在分类的最末级,上级页面本身也不常被爬。
- 入口页只放几条导航链接,把大量目标页全交给分页去带。
- 用跳转脚本、点击事件代替普通链接。
这些写法在浏览器里看起来正常,但对蜘蛛来说,路径可能直接断掉,或者绕了一大圈。
把层级压平的几个做法
- 入口页直接放一批指向重点目标页的链接,数量控制在合理范围内,不要为了压深度把页面堆成链接墙。
- 用列表页、聚合页、标签页承担分流,让蜘蛛先到一层中间页,再散开。
- 面包屑和返回上级的链接要真实可点,方便蜘蛛在层级之间来回走。
- 链接用标准 a 标签写在 HTML 里,必要时配合服务端渲染。
- 分页别做得太深,超过一定页数的内容用其他方式暴露路径。
压平不等于把所有链接都塞到入口页。一个页面塞几百条链接,蜘蛛分到的权重反而更薄,重点链接也容易被稀释。分层的目的是分流,不是清空层级。
怎么验证深度是不是真的生效
- 在访问日志里按 referer 或路径统计,看蜘蛛是从哪一层走到目标页的。
- 观察同一批链接的抓取时间分布,浅层链接是否明显更快被访问。
- 用抓取工具模拟一次从入口页出发的完整路径,确认每一步都有可点的 HTML 链接。
- 记录目标页首次被发现的时间,和入口页被爬的时间做对比。
什么时候不必强求压平
站内页面数量很大时,分层本身就是必要的组织方式。这时候更现实的做法是:把重点页面放在浅层,其余页面交给 sitemap、标签页和站内搜索慢慢带,不追求所有页面都在三层以内。
深度只是抓取路径里的一个环节。把路径理顺,让蜘蛛少走弯路,比反复调整入口页数量更值得先做。