搜索抓取

子资源抓取:蜘蛛取走 HTML 之后还会下载什么

蜘蛛抓取并不止于 HTML 主文档,页面依赖的 CSS、JavaScript、图片等子资源同样可能被取走。本文说明这些资源为什么影响蜘蛛看到的页面、被屏蔽后会出什么问题,以及服务器侧的准备事项和一份自查清单。

搜索抓取

子资源抓取:蜘蛛取走 HTML 之后还会下载什么

谈到抓取,很多人脑子里只有一个动作:蜘蛛来拿一个 HTML 文件。实际上,搜索引擎的抓取器除了主文档,还会按需取走页面依赖的 CSS、JavaScript、图片等文件。这些子资源不进正文,却直接影响蜘蛛对页面的理解。

为什么蜘蛛要抓子资源

主要有两个原因。一是渲染:现在大量页面靠 JS 拼装内容,蜘蛛要执行脚本、应用样式,才能看到和用户差不多的页面,这一步必须先下载对应的 JS 与 CSS。二是资源索引:图片、视频封面这类文件本身也会由单独的抓取流程处理,用于图片搜索等场景。

换句话说,主文档只是入口,子资源决定蜘蛛最终“看到”的是什么。

常见会被抓取的子资源

  • CSS:影响渲染结果,也用于判断首屏可见内容。
  • JavaScript:决定内容是否被插入、链接是否生成。
  • 图片与视频封面:主站抓取之外的独立抓取通道。
  • 字体、图标等静态文件:通常随样式一起被请求。
  • 接口数据:页面脚本发起的同域请求,渲染时可能被触发。

不同引擎的取舍不一样,不必逐个猜测,但要把它们当成“可能被访问的 URL”来看待。

子资源被挡住会怎样

最常见的问题是 robots.txt 里为了“省资源”,把 /js/、/css/、/static/ 整目录封掉。结果是蜘蛛拿不到渲染所需的文件,看到的可能只是一个空白框架。内容、链接都看不全,后续的抓取安排自然会受影响。

如果确实要限制某些目录,先确认这些文件不是页面正常渲染的依赖,再动 robots.txt。

服务器侧要做的事

  • 静态资源目录保持稳定,不要频繁改路径,否则旧链接会持续返回 404。
  • 给 CSS、JS、图片设置合理的缓存头,减少重复请求带来的回源压力。
  • 开启压缩,控制单文件体积,抓取和加载都更省时间。
  • 限流策略要区分页面与静态资源,避免把正常资源请求当成异常流量误封。
  • CDN 回源路径要通,蜘蛛拿到 5xx 时不会替你判断“这只是缓存配置问题”。

子资源也占抓取份额

抓取是有额度概念的:同一段时间里,蜘蛛能取多少 URL 是有限的。一个页面依赖几十个脚本和样式文件,主文档只算一条,剩下的都在消耗额度。所以精简第三方脚本、合并无谓的请求,不只是前端性能问题,也和抓取效率有关。

一份快速自查清单

  1. 用抓取工具或服务器日志看一次页面加载,列出实际被请求的资源。
  2. 确认 robots.txt 没有拦住渲染必需的目录。
  3. 检查这些资源返回的状态码,404 和 5xx 都要清掉。
  4. 看静态资源有没有稳定的 URL 规则和缓存头。
  5. 评估页面脚本数量,砍掉不参与内容呈现的部分。

把这些做完,蜘蛛对页面的还原度会更高一些。它是否收录、如何排序,仍由整体质量决定,子资源只是其中一环。