大多數站点的頁面里,图片和媒体文件往往占了最大的体积份額,却常常是最少被检查的部分。栏目規划、内鏈、标题模板這些容易被反复讨论,图片却经常停留在“能顯示就行”的狀態。實际上,图片同时影响两件事:訪客的加载体驗,以及搜尋蜘蛛在有限抓取预算下愿意走多深。
先摸清家底:图片到底占了多少
自查的第一步不是優化,而是統計。打開站点日誌或 CDN 报表,按资源類型看請求量和流量占比,再挑几個代表性頁面,用浏览器開發者工具的 Network 面板看實际加载情况。
- 單頁图片總請求數是多少,有多少張是首屏根本不需要的。
- 單張图片体积分布:有没有超過 500KB 的大图,有没有几十張 200KB 以上的中等图。
- 同一張图是否在不同頁面被重复加载了多個尺寸版本。
- 图片請求的响應時間是否明顯慢于 HTML 本身。
把這些數字记下来,一個月後再對比,比凭感觉说“好像快了一点”有用得多。
体积與格式:最容易见效的一步
图片優化里,收益最直接的是压缩和格式選擇。JPEG 适合照片,PNG 适合需要透明或线條清晰的图,WebP 和 AVIF 在同等观感下通常体积更小。不需要一次性全站替換,先把首屏大图和列表頁缩略图換掉,效果就足够明顯。
几個常见做法
- 上传前先按實际展示尺寸裁剪,不要上传 3000px 宽的图再靠 CSS 缩到 300px。
- 用响應式图片属性提供多档尺寸,让不同设备取合适的版本。
- 首屏之外的图片使用懒加载,但要注意實現方式,见下文抓取部分。
- 压缩时保留合理质量,压到画面發糊反而伤害体驗。
文件名與替代文本:图片也是可理解的资源
图片文件名和 alt 文本,是蜘蛛理解图片内容的少數线索之一。随机字符串命名、alt 留空,等于主動放弃這部分信息。
- 文件名用简短英文描述内容,多個词用连字符分隔,避免中文和空格。
- alt 寫清楚图片表達的内容,装饰性图片可以留空,不要為每張图硬塞關鍵詞。
- 图片周围的正文要與图片相關,上下文比 alt 本身更重要。
坏图與失效图片:比 404 更隐蔽
頁面返回 200,但里面的图片全挂了,這種問题爬虫和訪客都會遇到,却很少被监测到。常见原因包括:图片目錄迁移後没做跳轉、CDN 回源配置改了、文件名大小寫不一致(Linux 服務器区分大小寫),以及防盗鏈規則誤伤了搜尋引擎的抓取。
自查方式很直接:抓取一批頁面,逐個請求其中的图片地址,統計非 200 的比例。如果某段時間坏图率突然上升,優先检查最近是否改過存储路径或 CDN 配置。
抓取层面容易踩的几個坑
懒加载挡住蜘蛛
如果图片地址是通過脚本在滚動时才寫入的,而蜘蛛並不滚動,那么這些图片對蜘蛛来说等同于不存在。稳妥的做法是首屏图片直接輸出,其余图片用原生懒加载属性,或确保脚本在無交互时也能拿到地址。
robots 與防盗鏈
检查 robots.txt 是否誤屏蔽了图片目錄,检查防盗鏈規則是否只允许浏览器来源而拒绝了蜘蛛。這两條一旦出错,图片流量會整体掉下去,而頁面本身看不出任何異常。
图片站点地图
如果有大量以图片為主的頁面,可以考虑單獨维護图片站点地图,把重要图片的地址、标题和說明整理進去。它不保證被抓取,但能让發現路径更明确。
图片自查不需要一次做完,先解决大图和坏图這两類問题,通常就能覆盖大部分影响。
可执行的月度清單
- 導出上月图片請求與流量資料,和這個月做對比。
- 抽查 10 個主要頁面,看單頁图片總体积是否超标。
- 批量檢測坏图,记錄失效地址和来源頁面。
- 检查新增图片的文件名與 alt 是否符合規范。
- 確認 robots.txt、防盗鏈、CDN 缓存規則近期没有變化。
把這些動作固定下来,图片這块就不會長期處于無人看管的狀態。它不像内容更新那样顯眼,但属于那種一旦松手就會持續累积成本的基础工作。