把几十上百条目标 URL 平铺在入口页,页面会很长,也不好维护,所以不少站点会把 URL 做成「第 1 页 / 第 2 页 / …」的分页列表。问题随之而来:搜索蜘蛛是只抓第一页,还是会一路往后翻?
先理解:分页本身不是问题,链接是否可达才是
搜索蜘蛛发现 URL,靠的是顺着页面上的 a 标签一层层跟。分页只是把链接从「一张长列表」拆成「多张短列表」,只要页码链接是真实的 HTML 链接,蜘蛛就有机会沿着它继续走。真正决定它能翻多远的,是抓取预算、页面深度和这些分页地址本身的质量。
搜索蜘蛛翻页通常走三条路
1. 顺着「下一页」或页码链接往下走
这是最直接的方式。第 1 页里有指向第 2 页的链接,第 2 页里有指向第 3 页的链接,蜘蛛就能依次跟进。注意如果「下一页」只是一个按钮,点击靠 JS 拼接参数,蜘蛛在 HTML 层面可能看不到任何链接。
2. 从分页地址本身进入
如果 list?page=3 这类地址被抓过,蜘蛛可以直接从这一页开始解析里面的链接,不必从第 1 页开始翻。前提是这个地址曾经被任何地方(sitemap、其他页面、历史抓取记录)暴露过。
3. 通过 sitemap 一次性看到全部 URL
把真正想被发现的地址写进 sitemap,往往比分页翻页更可靠——蜘蛛不必逐页走过去。分页列表更适合做「顺带发现」,不适合当作唯一的发现渠道。
分页会拖慢 URL 被发现的速度吗
会,但影响通常有限。越靠后的分页,被访问的频率一般越低:蜘蛛会优先抓列表前几页,抓取间隔也会拉长。如果某个目标 URL 只出现在第 8 页,它被发现的时间通常晚于出现在第 1 页的同一条链接。这不是「翻不到」,而是「翻得慢」。
入口页做成分页列表时的实操建议
- 重要的 URL 放前面。把最希望被发现的地址放在第 1 页靠上的位置,越靠后越次要。
- 页码必须是可抓的链接。用真实的 a 标签,href 直接写分页地址,不要只做成 JS 点击事件。
- 控制总页数和每页条数。十几页、每页几十条链接,比几十页、每页十几条更容易被走完。没有必要的分页,不如直接删掉。
- 分页页自身别乱设 noindex。如果不想让分页页进入索引,可以用 noindex 配合 follow 让它仍被跟进链接,但要清楚不同搜索引擎对 follow 的处理不完全一致。
- 分页地址保持稳定。页码参数一会儿是 page=2,一会儿是 /page/2,一会儿又变成 p=2,会让蜘蛛重复抓取同一批内容。
- 别让分页地址无限增长。列表为空、超出最大页数时,返回 404 或 410,不要让服务器一直返回 200 的空列表页。
三个常见误区
- 「只要入口页被收录,里面的链接都会被翻完」——不一定,抓取是有预算的。
- 「分页越深,蜘蛛越不会跟」——它更多表现为抓取频次下降,而不是绝对不跟。
- 「把分页全部屏蔽,蜘蛛就会去抓目标页」——Disallow 会让蜘蛛连页码链接都看不到,反而更难发现后面的 URL。
搜索引擎的抓取策略随时会调整,上面说的是常见规律,不是保证。真正可靠的做法是把重要 URL 放在浅层、放在多个发现路径里,而不是指望某一种分页结构。
怎么验证蜘蛛到底翻到第几页
- 看服务器日志里搜索蜘蛛的 UA,按访问路径统计分页地址的抓取记录。
- 观察抓取时间分布:如果只有第 1、2 页有记录且间隔很久,说明翻页动力不足。
- 对某个只出现在第 5 页的目标 URL,单独记录它首次被抓的时间,和第 1 页的目标 URL 做对比。
- 如果后排 URL 长期没有抓取记录,把其中最重要的几条挪到第 1 页或补进 sitemap,再看是否改善。
分页只是链接组织方式的一种。对蜘蛛池来说,入口页的价值在于「让 URL 被看见」,而不是「让 URL 排到前面」。把发现路径做短、做稳,比把列表拉长更有用。