蜘蛛池里生成了几千个入口页,第一道坎不是页面质量,而是蜘蛛压根不知道这些 URL 存在。URL 发现和 URL 抓取是两件事:前者决定蜘蛛会不会来,后者决定来了之后怎么走。把这两件事分开看,很多操作上的纠结会清楚一些。
站内链接:最基础,也是唯一能持续带路的通道
sitemap 和推送解决的是“第一次知道”,站内链接解决的是“一直找得到”。蜘蛛进入任何一个入口页之后,能不能顺着链接走到池子里的其他页面,取决于页面之间的连接结构。
- 入口页之间至少要有互相可达的路径,不要全部指向首页,也不要全部指回自己。
- 每个页面往外输出的链接数量要控制,几十个以内比较稳。几百个链接的页面,蜘蛛会挑着走,剩下的可能连看都不看。
- 尽量用普通 a 标签,脚本注入的链接、按钮跳转、需要点击才展开的列表,蜘蛛不一定执行。
如果池子里每个页面都是孤岛,只靠 sitemap 和推送,蜘蛛拿到的就是一批互相没有关系的 URL,爬完就走,很难形成持续抓取。
sitemap:批量,但不保证被处理
sitemap 的优势是量,几百上千条 URL 一次交出去,成本最低。但它只是“声明有这么些页面”,是否读取、多久读一次、一次读多少条,由搜索引擎自己决定。
- 单个 sitemap 建议不超过 5 万条,超过就拆分,并用 sitemap 索引文件串起来。
- 只放你希望被索引的、状态正常的页面。404、重复页、参数页放进去,只会消耗读取额度。
- lastmod 要真实。每次生成都刷新时间戳,等于告诉蜘蛛“全都变了”,几次之后这个字段就不被信任了。
sitemap 的位置和声明方式要保持一致,robots.txt 里的 Sitemap 行和各站长平台的提交入口都别漏,也不要只提交一个平台就当全通了。
主动推送接口:适合刚上线、数量不大的页面
部分搜索引擎提供 API 推送,比如百度普通收录的推送接口、被 Bing 与 Yandex 等采用的 IndexNow 协议。这类通道反馈快,但通常有配额,且更适合“新产出或刚更新”的 URL。
所以推送的用法应该是:池子新上一批入口页时,挑其中结构完整、内容站得住的那部分推一批,观察抓取和后续表现,而不是把全部 URL 一次性灌进去。推送额度是稀缺资源,用在最需要被看见的页面上。
把提交量当成抓取量,是这类操作里最常见的偏差。提交的只是可能性,抓取才是结果。
三条通道怎么配合
- 先修站内链接,保证蜘蛛进来之后有路可走。这一步没做好,后面两个通道的效果都会打折。
- 再用 sitemap 兜底,把链接结构覆盖不到、层级较深的页面交出去。
- 最后用推送补新,只针对刚上线、需要快速被知道的一小批 URL。
几个容易踩的误区
- URL 带一堆参数:同一个页面生成出多种参数版本,蜘蛛会当成不同页面,抓取预算被摊薄。
- 提交了却不看日志:推送之后没有任何访问反馈,说明 URL 没被处理,这时候继续加量没有意义。
- 所有页面同等对待:入口页也分主次,把推送和链接权重集中在少数页面上,比平均撒开更容易看到变化。
URL 发现这件事没有太多技巧,核心是让蜘蛛用最低的成本找到最多的有效页面。站内链接打底、sitemap 兜底、推送补新,三条通道各司其职,通常比在单一通道上不断加量更靠谱。