width and height attributes 实测:25 个首页里,1,711 张图有一半没声明尺寸

2026-09-22 我们抓了 25 个首页的 1,711 张图,其中 864 张没写 width and height attributes——占 50.5%。三个首页整页没有一张图声明尺寸,另有 102 处属性值根本不是像素数。

改写与发布5 分钟读完2424 次阅读
width and height attributes 实测:25 个首页里,1,711 张图有一半没声明尺寸

实测 · 2026-09-22 · 25 个首页 · 单次抓取 · 只看 <img> 的 width/height

样本与口径:2026-09-22 用桌面 Chrome UA 对 30 个首页各请求一次,不执行 JavaScript。5 个站返回挑战页、跳转壳或没有任何 <img> 的 JS 空壳,如实剔除;剩下 25 个站、1,711 个 <img>。只统计 HTML 里的 width 和 height 属性,CSS 里的尺寸不算。

25 个热门首页上,一半的图片没有告诉浏览器自己多大。1,711 个 <img> 里,761 个同时带 width and height attributes,86 个只带其中一个,864 个两个都不带——占 50.5%。有三个首页,整页没有一张图声明了尺寸。

怎么测的

对每个首页发一次请求、跟随跳转,用严格的标签解析器读服务器返回的 HTML。没有浏览器、没有 JavaScript、不渲染。所以这是一个「服务器发了什么」的计数,不是「访客最终看到什么」:由前端 JS 插进去的图片这个方法完全看不到,一张都不算。

被剔掉的五个站是结论的一部分,不是脚注。Reddit、Medium、Stack Overflow、Canva 和纽约时报返回的是 403、跳转环或 JS 空壳,HTML 里一个 <img> 都没有,没得测。25 个样本比本站其他实测常用的 27 个小,原因只有这一个。

读表之前先定一个口径:「两个都有」指的是 HTML 里确实同时出现 width 属性和 height 属性,跟值是不是合理的像素数无关——这一点下面还会说。

结果

分散度本身就是结论。六个首页给每一张图都声明了尺寸,三个一张都没声明,其余的落在中间。图最多的站,并不是做得最好的站。

首页图片两个都有两个都无
discord.com1718156
framer.com16314716
webflow.com1525363
bbc.com1360136
theverge.com1011982
figma.com92866
slack.com91655
ycombinator.com86383
techcrunch.com736012
cloudflare.com68167
nextjs.org65650
arstechnica.com61601
railway.com601446
notion.com58580
supabase.com572136
wired.com52052
shopify.com512526
linear.app38353
stripe.com31301
github.com24022
netlify.com23230
substack.com1981
vercel.com19190
mozilla.org13130
wikipedia.org770

总数下面有三条线索。第一,六个满分站——notion.com、mozilla.org、nextjs.org、vercel.com、netlify.com、wikipedia.org——图片都出自组件或模板,属性在那里被统一写死一次。第二,三个零分站不小:bbc.com 发了 136 张没尺寸的图,wired.com 52 张,github.com 24 张。第三,1,711 张图里有 143 张位于 <picture> 元素内,615 张带 srcset——响应式那套机器和「声明尺寸」的习惯不是一起到的。带 srcset 的 615 张里,202 张(32.8%)两个属性都没有。

为什么 width and height attributes 重要

没声明尺寸的图,加载前占的位置是零,加载完把下面的内容整个推下去。这个位移就是布局偏移(Cumulative Layout Shift),Core Web Vitals 三项之一。写上 width 和 height,浏览器就能在图片字节到达之前先把框留好;现在的规则是只写属性就够了——就算 CSS 覆盖了显示尺寸,浏览器也能从这两个数字推出长宽比。

这是排版属性,不是排名技巧。我们不宣称加上这两个属性就能提排名,这次测量也没有测这件事。它真正说明的是:一个页面可以很快,却依然在读者的手指下面抖,而原因往往就是一行 HTML。

还有一层更安静的成本。尺寸不等于形状。一张图写了 width="1200" height="630",它告诉了浏览器比例;一张图写了 width="Auto",它什么都没告诉,却在一个朴素的审计里照样算「合格」——我们怀疑不止一个商业工具是这么判的。

对你意味着什么

你大概一分钟就能查完自己的站,因为规则是机械的。打开页面看源码,搜 <img,凡是缺了其中一个属性的,都是浏览器留不出框的地方。

  • 给每个 <img> 写上 width 和 height,用图片文件真实的像素长宽。
  • 屏幕上多大交给 CSS;属性只负责提供长宽比。
  • <picture> 和 srcset 里的图也要补——它们最容易被漏。
  • 别写 width="100%"width="Auto" 去糊弄审计。我们在样本里数到 102 处不是整数的属性值,它们一个都留不出框。
  • 别只写两个里的一个。我们数到 86 张只有其中一个,半个比例等于没有比例。

要排优先级,先修首屏。位移在那里才看得见,指标也在那里计分。靠下的图同样该修,但读者不会注意到它们。

常见问题

CSS 已经定了尺寸,width/height 还有用吗?

有用,而且这正是它们被设计出来应对的情况。CSS 决定图在屏幕上画多大;属性告诉浏览器图片文件加载前的长宽比,好让它先把框留出来。没有属性,就没有比例可留。

你们是怎么测的?

2026-09-22 对每个首页发一次请求,桌面 Chrome UA,不跑 JavaScript,跟随跳转,用严格的 HTML 标签解析器读。我们只数每个 <img> 上 width 和 height 属性在不在,没有判断值合不合法。

缺 width/height 会不会影响排名?

我们没测这件事,也不会宣称。这两个属性有文档记载的作用是稳定布局,布局稳定影响布局偏移,而布局偏移是 Core Web Vitals 的一项。它会不会在你这个站上变成名次变化,是另一个问题,那一个是 页面速度到底影不影响 SEO 在回答的。

为什么这次是 25 个站,别的实测是 27 个?

因为 30 个首页里有 5 个返回了挑战页、跳转或 JS 空壳,HTML 里一张图都没有。我们本可以改成测渲染后的页面把数字凑够,但那等于中途换了方法,所以我们剔掉它们并把原因写出来。

这跟你们那篇 alt 实测是同一批图吗?

不是。不同的一次抓取、不同的一天、不同的问题。那一篇问每张图有没有替代文字,这一篇问它有没有声明尺寸,两张表不能直接比。

要记住的边界:这里测的是服务器发回的 HTML,不是浏览器最终画出来的东西。JS 加进去的图、CSS 设的背景图、CDN 在出口改写过的东西,全都不在计数内。在计数内的那些图里,诚实的一句话是:一半让浏览器去猜,而修法是两个属性。把这次修法变成真的发上线的改动,是 QueryWin 在做的事;同一个故事「加载」的那一半,在 1,677 张首页图片的 lazy 与 eageralt 文本实测 里。

width and height attributes 实测:25 个首页里,1,711 张图有一半没声明尺寸