入口页自己没被收录,和入口页里的链接能不能被抓,是两条不同的链路。前者属于索引层,后者属于抓取层。多数情况下,只要入口页被抓取过,里面的目标链接就会被发现并进入待抓队列,跟入口页本身是否出现在搜索结果里没有直接关系。
抓取和收录不是一回事
搜索引擎处理一个 URL,大致分三步:发现、抓取、索引。发现是从链接、sitemap、外链等途径知道这个地址存在;抓取是真正去请求页面、拿到 HTML;索引是判断这个页面值不值得放进搜索结果。
收录失败,通常发生在第三步;而目标 URL 能不能被发现,取决于第二步有没有走通。所以入口页没被收录,并不等于蜘蛛没来过,也不等于里面的链接被忽略。
入口页为什么常常自己没收录
- 页面内容高度模板化,和其他页面几乎一样
- 页面本身没有对应的搜索需求,没有展示价值
- 页面被 noindex 或 X-Robots-Tag 挡住
- 域名较新、整体信任度不足
- 入口页只是跳转壳,正文几乎是空的
这些原因基本只影响“要不要放进索引”,不影响“要不要来抓一次”。反过来也成立:入口页被抓过很多次,也不代表它一定会被收录。
什么情况下蜘蛛仍然会抓入口页
- 日志里已经出现过该入口页的抓取记录,说明地址早已被发现
- 入口页被站内其他页面或外部链接指向
- 入口页本身在 sitemap 里提交过
- 站点整体抓取配额正常,服务器响应稳定
只要入口页被请求过一次,里面的可抓链接通常会被解析出来。之后再抓不抓,就由目标 URL 自身的状态和优先级决定。
什么情况下才是真的抓不到
先分清“没收录”和“没抓过”。如果日志里从来没有入口页的访问记录,问题就不在收录,而在发现环节。
- 入口页从未被任何链接、sitemap 或外链暴露过
- robots.txt 禁止抓取入口页所在的路径
- DNS、证书或服务器层面不可达,蜘蛛根本连不上
- 入口页里的链接只在 JavaScript 渲染后才生成,且渲染未被执行
- 入口页长期返回 5xx 或验证页,抓取被反复中断
怎么用日志和后台验证
- 在服务器日志里找入口页的访问记录,确认有没有目标搜索引擎的 UA 请求过,返回码是什么
- 再看目标 URL 的日志,入口页被抓后的那段时间里有没有对应的请求出现
- 在站长后台查看“已发现但未抓取”的 URL 列表,判断链接是否已被解析
- 对比操作前后:新增外链、提交 sitemap、调整内链结构之后,抓取频次有没有变化
实操上的几个注意点
- 不要把全部希望压在单个入口页上,多入口、多路径更稳
- 入口页返回码要稳定在 200,避免频繁 302 或间歇性 5xx
- 入口页不要堆几百个链接,关键链接尽量靠前
- 入口页本身最好有点实际内容,纯跳转空页容易被判低质
- 发现抓取频次下降时,先查服务器响应速度和整站质量,而不是继续加入口页
结论:入口页没被收录,不代表里面的目标链接不会被抓。真正需要排查的是入口页有没有被“发现”和“抓取”过。收录是结果,抓取是过程,把过程理顺,结果才有机会出现。