提到抓取,很多人第一反应是页面和链接。但蜘蛛实际下载的资源里,还包括图片、PDF、Office 文档、视频封面等非 HTML 文件。这些资源如果处理不当,要么被抓成空链接,要么反复占用抓取额度,要么在图片搜索里留下失效入口。
为什么非 HTML 资源也值得管
图片和附件通常和页面一起被抓,数量往往比页面还多。一个列表页如果有 30 张缩略图,蜘蛛除了抓页面本身,还会顺带请求这些图片地址。如果其中一部分是 404、是占位图、或者需要登录才能访问,那么这些请求就是白跑的。
另外,图片和附件的索引入口和普通页面不完全一样。图片可能出现在图片搜索,PDF 可能被单独收录。这些入口一旦失效,用户点进来看到的是错误页,而不是你的内容。
几类常见问题
懒加载与占位图
为了加快首屏,很多站点会用懒加载。做法通常是把真实地址放在 data-src 之类的属性里,src 先指向一张占位图。如果脚本没有在蜘蛛渲染时执行,或者执行得太晚,蜘蛛拿到的就是占位图。结果是每张图片看起来都一样,且没有有效内容。
自查方法:用抓取工具查看渲染后的 HTML,确认图片地址已经就位;或者对首屏图片直接输出真实 src,把懒加载留给下方内容。
缩略图与原图的关系
列表页用的是压缩缩略图,详情页才是原图。如果缩略图地址和原图地址不同,且缩略图外面没有指向详情页的链接,蜘蛛可能会把缩略图当成独立资源抓取,却又找不到对应的页面。更稳妥的做法是让图片包在一层指向详情页的链接里,缩略图只是它的展示形式。
附件与下载文件
PDF、Word、Excel 这类附件容易被忽略。它们体积比页面大,抓取成本更高。如果附件和页面同名同地址、内容又一致,就形成了重复;如果附件已经过期,仍然挂在内页里,就会持续产生 404 或空内容。
建议在附件集中存放的目录上做一次清点:哪些还在被引用,哪些已经没人用。对不再使用的附件,要么从页面里删掉链接,要么返回规范的状态码。
图片站点地图与 robots 规则
如果站点有大量图片,可以考虑用图片站点地图标注主要图片。但注意,不要在 robots.txt 里把图片目录整片屏蔽,否则页面里的图片会变成一个个无效请求。确实不想被索引的目录,可以用响应头控制,而不是直接拒绝访问。
一次可执行的自查
- 随机抽 5 到 10 个有图片的页面,查看渲染后的 HTML,确认图片地址不是占位图。
- 查看抓取日志里图片和附件的请求数量,以及这些请求的状态码分布。
- 整理站点内引用到的附件目录,找出长期没有被点击或被引用的文件。
- 检查 robots.txt,确认没有误屏蔽图片、附件、静态资源目录。
- 确认列表页缩略图都有一条指向详情页的可抓取链接。
处理时的几个原则
- 能抓到的,就给它一个明确去处。图片最好挂在有内容的页面上,附件最好有对应的说明页。
- 不想要的,用清晰信号拒绝。用 404 或响应头,而不是让蜘蛛拿到一个 200 状态的空壳。
- 体积大的,少让它重复出现。同一张原图不必在每个列表页都输出一次。
非 HTML 资源不会直接影响排名,但它们会占用抓取额度、影响图片和附件的入口质量。把这块清干净,收益通常体现在抓取效率上,而不是立竿见影的流量变化。
这类自查不需要大动干戈,一次把图片和附件的引用关系理清楚,之后每次上新内容按同样的规则处理,就能减少很多无效请求。