一个新 URL 从上线到被蜘蛛读到,通常有两条路:一条是蜘蛛自己顺着链接或清单走过来,另一条是站点主动把 URL 递过去。两条路的成本、可控性和反应速度都不一样,实际运营里更容易出问题的是把它们当成互相替代的方案。
被动发现:蜘蛛自己走过来的那条路
被动发现指的是站点只负责把“路标”做好,由蜘蛛自己决定什么时候走、走到哪。常见的入口有这几类:
- Sitemap:一份相对完整的 URL 清单,适合让蜘蛛批量了解站点有哪些页面,尤其是内链不容易覆盖到的角落。
- 内链:从已有页面指向新页面,是蜘蛛持续发现新内容最稳定的方式。
- 外链:其他站点指向你的链接,蜘蛛顺着外部链接进来,往往会连带抓取站内若干层。
- 历史抓取队列:蜘蛛再次访问之前抓过的页面时,会顺带看看有没有新链接。
被动发现的优点是自然、不需要额外接口,缺点是节奏不由你控制。一个新页面既没有内链、也没有出现在 Sitemap 里,只靠外链,发现时间可能会拉得很长。
主动推送:把 URL 直接递到门口
主动推送是站点通过接口或订阅源,把新增或更新的 URL 直接告诉搜索引擎。它解决的是“发现”环节,不解决“抓取”和“收录”。
常见的推送方式
- 搜索引擎站长平台的提交接口:各家名称和配额不同,通常对站点有验证要求,提交后能在后台看到处理状态。
- IndexNow 这类通用协议:一次提交,参与该协议的搜索引擎可以共享,适合需要同时维护多个引擎的站点。
- RSS / Atom 订阅源:适合更新频繁、结构规整的内容站,蜘蛛会定期来取。
- 站内数据接口或日志联动:内容系统在发布时自动触发推送,减少人工遗漏。
需要注意,推送只是“通知”,不等于蜘蛛一定立刻抓取,更不等于页面会被收录。配额用完之后,多提交的部分通常会被直接丢弃。
推送替代不了内链
有些站点上线推送接口之后就不太管内链了,结果发现新页面还是迟迟不被抓。原因不难理解:蜘蛛抓到一个页面后,靠页面上的链接继续往下走。如果新页面在站内没有任何入口,蜘蛛抓到它之后也走不到相关内容,久而久之这个页面的抓取优先级会下降。
推送负责“告诉你这里有新东西”,内链负责“让你在这里待得住、走得下去”。两者是配合关系,不是替代关系。
比较稳妥的做法是:新内容发布时,先在栏目页、列表页或相关内容模块里挂上链接,再走一次推送,让两条路同时指向同一个 URL。
推送时容易踩的坑
- 把全站 URL 一股脑提交:既浪费配额,也稀释了真正需要被发现的页面。只提交新增、更新或此前未被发现的 URL。
- 提交会返回错误状态的 URL:404、跳转链、需要登录才能访问的页面,提交了没有意义,还会让后台数据难以解读。
- 提交后立刻改动 URL:蜘蛛还没来,地址就变了,等于白推一次。发布流程尽量把最终 URL 定下来再推。
- 重复推送同一批 URL:不少接口对重复提交会去重或直接拒绝,频繁推送还可能触发限制。
- 只推送首页和栏目页:真正需要被发现的是详情页,首页通常早就在抓取队列里。
怎么判断推送有没有起作用
判断效果不要只看推送接口返回的“成功”字样,那只能说明请求被接收了。可以结合三个方面观察:
- 服务器日志:看推送后的一段时间内,这些 URL 是否出现蜘蛛的访问记录,以及首次访问距离推送过了多久。
- 抓取统计:看整体抓取量有没有变化,还是只是抓取对象发生了转移。
- 覆盖率数据:区分“已发现未抓取”“已抓取未收录”和“已收录”,不同状态对应的处理方式并不相同。
如果推送后日志里长期看不到对应 URL 的访问记录,先检查 robots.txt 是否屏蔽、Sitemap 是否包含该 URL、页面是否有内链入口,再回头排查推送环节本身。
一个可以落地的组合节奏
- 发布前:确定最终 URL,确认页面能正常返回内容,且没有被 robots 规则挡住。
- 发布时:在栏目页和相关内容模块补上内链,同时更新 Sitemap 中对应的条目。
- 发布后:对新增或更新的 URL 走一次推送,避免批量重复提交。
- 持续:定期用日志核对推送 URL 的抓取情况,把长期不被抓取的 URL 挑出来单独排查。
把主动推送当成加速器,把内链和 Sitemap 当成底盘,两条路都稳,URL 发现这件事才不会时快时慢。