很多站点的 HTML 本身并不大,真正吃掉服务器带宽和抓取时间的,是图片、视频封面、附件 PDF 这类媒体资源。它们平时不出问题,一旦换 CDN、改目录结构或者批量替换模板,就容易留下大量指向旧地址的引用,蜘蛛顺着爬过去只拿到一串 404。这篇把图片与媒体资源的自查拆成几块,可以按顺序过一遍,也可以只挑当前站点最可疑的部分检查。
先确认图片目录没有被挡住
图片通常放在 /uploads/、/static/、/assets/ 这类目录下。有些站点为了省流量,会在 robots.txt 里直接屏蔽整个图片目录,或者用防盗链规则把非本站 Referer 的请求全部拦掉。屏蔽图片本身不一定有问题,但如果你同时又希望图片出现在图片搜索结果里,两边就会打架。
建议顺手确认三件事:
- robots.txt 中是否有针对图片、附件目录的 Disallow 规则,是否还符合当前预期。
- 防盗链规则是否把搜索引擎的抓取 UA 也拦住了,常见表现是图片在浏览器里能看,抓取日志里却全是 403。
- 测试环境或临时目录是否被误同步到正式站,导致出现两套图片地址。
URL 稳定性:换了域名或 CDN 之后最容易出问题
图片地址一旦变化,页面上的引用、站外转载、收藏夹里的链接都会同时失效。自查时可以关注这些点:
- 是否还残留指向旧域名或旧 CDN 域名的图片地址,这类地址如果已经不再解析,用户看到的是破图,蜘蛛看到的是错误状态码。
- 图片 URL 里是否带上了会变化的参数,比如时间戳、随机会话 ID、临时签名。签名过期的地址短期内就会失效。
- 缩略图是否使用了固定的尺寸命名规则。如果同一张图有七八种尺寸,最好确认这些衍生地址是否真的需要被单独抓取。
对于已经确认不用的图片地址,返回 404 或 410 比返回一个空图片更清楚,避免让抓取工具反复回来确认。
懒加载与 JavaScript 渲染
为了提升首屏速度,很多站点把图片改成滚动到可视区域再加载。如果实现方式只是在页面初始 HTML 里放一个占位符,真实地址由脚本后面写进 src,那么不执行脚本的抓取方式就只能看到一个空壳。常见做法是把真实地址放在 data-src 之类的属性里,同时保留一个可用的 src 兜底,或者确保图片地址在初始 HTML 中就能被读到。
自查时可以用禁用 JavaScript 的方式打开页面,看看图片是否还有可访问的地址,而不是只剩占位色块。
体积与格式:别让一张图吃掉整页预算
图片体积不直接影响收录,但会影响加载速度和服务器压力,间接影响抓取效率。可以按这几个方向梳理:
- 尺寸:页面展示宽度是 800 像素,就不要上传 4000 像素的原图再由 CSS 缩小。
- 格式:照片类内容可以考虑 WebP 等体积更小的格式,图标和简单图形用 SVG 往往比位图更省。
- 响应式:如果用了 srcset,确认各档尺寸的地址都存在,避免小屏用户请求到大图或反之。
- 宽高属性:给图片写上 width 和 height,可以减少页面加载过程中的布局跳动。
文字信息:alt、文件名和周边内容
alt 文本首先是给看不见图片的用户用的,顺带也能帮助理解图片内容。写法上不必堆关键词,说清楚图里是什么就够了。文件名同理,2024-03-product-01.jpg 比 IMG_8832.jpg 更有信息量,但也不用为了塞词把文件名写成一长串。
另外可以留意图片周围的正文和标题是否和图片相关。一张商品图放在完全不相关的文章里,对用户和抓取都没有帮助。
容易被忽略的非 HTML 资源
除了常规图片,还有几类文件值得纳入巡检范围:
- 产品手册、白皮书这类 PDF,是否还在被页面引用,文件本身是否可正常打开。
- 视频封面图与播放器资源,确认封面地址没有失效。
- 站点图标和分享卡片图,地址变更后社交平台可能仍缓存旧图。
- 字体文件,跨域配置不正确时会出现文字闪烁甚至显示异常。
一份可执行的巡检清单
- 从访问日志中筛出图片与附件的错误状态码,按出现次数排序,先处理高频的。
- 抽查若干主力页面,禁用 JavaScript 后确认图片地址仍可读取。
- 检查 robots.txt 与防盗链规则,确认没有误伤抓取。
- 统计单页媒体资源总体积,挑出最重的几个页面做压缩或换格式。
- 补全缺失的 alt 和宽高属性,优先处理列表页和详情页首图。
- 对已确认下线的媒体地址,统一返回 404 或 410,不再保留空文件。
这套检查不需要一次做完,可以按季度安排一次全量抽查,平时发布内容时留意新上传的文件即可。媒体资源的问题通常不会立刻显现,但积累起来会实实在在增加服务器负担和无效抓取。