发布一个新页面之后,很多人的第一反应是刷新抓取日志,看蜘蛛有没有来。实际上,从页面可公开访问,到它进入待抓取队列,中间隔着几个环节:入口有没有被走到、链接能不能被解析、服务器有没有稳定回应。把这几步拆开核对,通常比反复提交更有效。
一、发现的前提是有一条蜘蛛能走的链接
蜘蛛不会凭空知道一个新 URL。它需要从某个已经抓取过的页面出发,沿着 HTML 里可解析的链接走到新地址。所以新页面发布后,第一件该做的事是确认它至少出现在一个抓取频率较高的页面上。
- 首页或栏目首页的最新列表,通常是抓取频率最高的位置;
- 相关老页面正文里的自然内链,能提供语境、也提供入口;
- 分类列表页、专题聚合页,适合承载一批同时上线的新 URL。
如果新页面只挂在很深的层级,或者只能从站内搜索、筛选结果里进入,发现时间往往会明显拉长。链接层级越浅、入口越靠近高频抓取页面,被走到的机会越大。
二、Sitemap 与提交入口是补充,不是替代
Sitemap 声明和手动提交当然有用,但它们的作用是告诉蜘蛛「这里有个地址」,前提仍是这个地址可访问、可解析。常见的误判是把 Sitemap 当成唯一入口:页面在线,却没有任何站内链接指向它,Sitemap 里写了,日志里依旧长期没有抓取记录。这种情况下更应该补的是内链,而不是继续增加提交次数。
提示:提交行为不等于收录承诺,它只是把 URL 放进待处理列表。是否抓取、何时抓取,取决于蜘蛛自身的调度。
三、让链接可解析,比让链接更多更重要
可发现性的几个细节
- 用标准 a 标签加 href,不要用纯脚本跳转代替链接;
- URL 不要依赖点击之后才写入,静态写在 HTML 里最稳;
- 避免把入口藏在需要交互之后,比如点击展开、滚动加载。
需要说明的是,蜘蛛优先解析的是 HTML 中已经存在的链接。依赖用户操作才出现的地址,发现时间可能被推迟到渲染阶段甚至更晚,而渲染又受抓取配额影响,不确定性更大。
四、服务器响应决定发现之后能不能立刻抓
即便链接被走到,如果服务器响应慢、频繁返回 5xx、或者经常超时,蜘蛛会倾向于降低该站点的抓取频率,新 URL 的排队时间随之变长。集中上线大量页面时,尤其要注意响应时间是否稳定,别让一次发布把整体抓取节奏拖慢。
五、发布流程里的检查顺序
- 确认页面可公开访问,状态码正常,没有登录墙与拦截规则;
- 确认至少有一条来自高频抓取页面的内链;
- 确认链接是可解析的 a href,而不是靠脚本生成;
- 更新 Sitemap,并核对里面的 URL 与实际地址一致;
- 观察几天抓取日志,确认是否出现该路径的请求记录。
如果日志里长期没有该 URL 的请求,优先回头检查第二步和第三步,而不是重复第四步。发现延迟这件事,多数时候卡在入口,而不是卡在提交。