站点运营

站点运营:图片與媒体资源自查,別让蜘蛛把抓取量耗在大图上

图片往往是站点里最大的体积来源,也是最容易被忽略的抓取消耗。這篇文章讲清哪些图片值得被蜘蛛抓、如何優化格式與尺寸、首屏图為什么不能延迟加载,以及图片站点地图和 CDN 缓存该怎么配合,並给出一份可直接执行的自查清單。

站点运营

站点运营:图片與媒体资源自查,別让蜘蛛把抓取量耗在大图上

图片是很多站点里最容易被忽略的体积来源。一次改版之後,首頁往往多了几張大图、几個轮播、几個装饰性背景,頁面在浏览器里看着還行,但服務器日誌里會看到蜘蛛反复抓取同一批图片资源。图片本身要被抓取才能進入图片搜尋,但如果一張图是 2MB 的未压缩 PNG,抓取它就是實打實地花掉了抓取预算和带宽。

先分清哪些图片值得被蜘蛛抓

不是所有图片都需要被收錄。可以粗略分三類:

  • 内容图:正文里的示意图、流程图、产品實拍图,這類图有獨立检索價值,值得被抓取和索引。
  • 装饰图:分隔线、背景纹理、纯样式的圆角阴影,這類图對用戶有观感價值,但對检索没有意义。
  • 交互图:图标按钮、hover 狀態切图,通常由 CSS 或雪碧图合成,蜘蛛抓到也没用。

分類之後處理方式就清楚了:内容图優化体积並寫好替代文本;装饰图和交互图尽量用 CSS 實現,或者至少不要出現在可抓取的 img 标簽里。

体积、格式與尺寸

這三項是图片優化里最直接见效的部分,判断标准也很简單:

  • 尺寸按實际展示的最大宽度導出,別用 2000px 宽的图缩到 400px 顯示。
  • 照片類内容優先 WebP 或 AVIF,配合 JPEG 兜底;带透明通道的图标用 SVG。
  • 压缩工具過一遍,通常能在肉眼基本無感的情况下砍掉一半以上体积。
  • 响應式场景用 srcset 提供多档尺寸,別让手机端下载桌面大图。

加载方式:首屏图不要延迟加载

lazy loading 用不好會同时伤到用戶和蜘蛛。首屏主图如果被加上 loading="lazy",在某些渲染策略下可能一直不触發加载,蜘蛛拿到的是空白占位。建议首屏第一張图用 loading="eager" 並加 fetchpriority="high",折叠线以下的图再用 lazy;同时给 img 寫上 width、height 或 aspect-ratio,避免加载過程中布局跳動。

文件名與替代文本

文件名是少數几個蜘蛛能直接讀懂图片内容的信号之一。IMG_2381.jpg 不如 disk-water-level-monitor.png 這類带语义的名字。alt 寫清楚這張图在說明什么,不要堆關鍵詞,也不要寫「图片」「点击查看大图」這類没有信息量的占位文本。装饰性图片用空 alt(alt=""),明确告诉辅助技術和抓取程序這張图可以跳過。

图片站点地图與 CDN

如果站点图片量較大,可以單獨维護一份图片 sitemap,把内容图的 URL、所在頁面、标题和 caption 一並列出。注意两点:一是图片走 CDN 时,確認 CDN 没有對图片請求返回異常狀態碼或错誤的 Content-Type;二是 CDN 的缓存策略要和图片更新节奏對齐,換图後记得刷新缓存,否則蜘蛛拿到的是舊图。

可执行的自查清單

  1. 拉一份最近 7 天的訪問日誌,按扩展名統計抓取量占比,看看图片請求是不是明顯偏高。
  2. 抽查首頁和栏目頁,找出体积最大的前 20 張图,逐張判断是否必须保留。
  3. 检查首屏图片有没有被誤加 lazy loading。
  4. 批量掃描 alt 缺失、alt 重复、alt 寫成「图片」的頁面。
  5. 確認 CDN 對图片返回 200 且 Content-Type 正确。
  6. 換图後执行一次缓存刷新,並在日誌里確認蜘蛛抓到了新版本。
图片優化的目标不是把所有图删掉,而是让每一張被抓取的图都對得起它花掉的那份抓取预算。

這件事不需要一次性做完。每周挑一個栏目,把上面六條過一遍,几個月下来整站的图片负担會明顯下降,蜘蛛也能把更多時間花在真正需要收錄的頁面上。