BuildNot yet confirmed elsewhere1 publisher2 min readPublished
Dev.to crawl finds 43% of Shopify product pages ship a first-loaded image without width or height
A dev.to analysis of 199 Shopify stores found 43% of product pages have a first-loaded image with no width or height. Image format is mostly settled at 94% WebP or AVIF, but 19.5% of pages have a first image with no alt attribute.
The Engineer · Build desk
Four shares of Shopify product pages: 43% have a first-loaded image with no width or height (CI 36 to 50%); 55% when lazy-loaded images are included; 19.5%, about 1 in 5, have a first-loaded image with no alt attribute (CI 15 to 26%); 10.8% still get a JPEG or PNG first-loaded image (CI 7 to 16%).
- 43 % of pages No width/height, first image, claim 4 CI 36 to 50%
- 55 % of pages No width/height, with lazy-loaded, claim 15 author keeps narrower first-loaded figure
- 19.5 % of pages No alt attribute, first image, claim 5 about 1 in 5; CI 15 to 26%
- 10.8 % of pages First image still JPEG or PNG, claim 12 CI 7 to 16%
| Figure | Value | Note | Claim |
|---|---|---|---|
| No width/height, first image | 43 % of pages | CI 36 to 50% | 4 |
| No width/height, with lazy-loaded | 55 % of pages | author keeps narrower first-loaded figure | 15 |
| No alt attribute, first image | 19.5 % of pages | about 1 in 5; CI 15 to 26% | 5 |
| First image still JPEG or PNG | 10.8 % of pages | CI 7 to 16% | 12 |
What happened
- The crawler read each page's HTML without running JavaScript and requested every referenced image with the Accept header a current Chrome sends.
- 97% of the WebP and AVIF responses carried a Vary: Accept header, so the server picked the format from the browser's stated preferences.
- A follow-up spot check on 12 October asked 24 stores for the main product image at 600px wide, accepting AVIF, and got no AVIF back.
- On 10.8% of Shopify pages the first-loaded image still came back as JPEG or PNG, and the author could not say where those files are hosted.
- On WooCommerce, 77.5% of pages served a JPEG or PNG first-loaded image, in a sample of only 43 stores.
Why it matters
- decision A Shopify merchant's checklist is short. The write-up's closing advice opens with "On Shopify, format is not your problem." and points to the theme's main product image for width and height.
- cost WooCommerce owners keep the format work. WordPress is able to serve WebP, yet if no plugin or CDN handles format negotiation, browsers receive whatever file was uploaded, so choosing and running that plugin or CDN falls to the store owner.
- constraint None of this is a speed result. Page weight, rendered sizes, srcset selection and Largest Contentful Paint were not measured, so the write-up cannot say what fixing the 43% would buy in load time.
Because every request used the same Chrome-style Accept header [7], the 94% [2] is the CDN's answer to one kind of client. For it to hold for your visitors, their browsers have to send something similar. Going by the Vary: Accept header, the author concludes that the platform's image CDN picks the format for every store, whether the owner uploaded a JPEG or not [9]. The sample is one page per store: 199 Shopify stores from the September 2026 HTTP Archive crawl [1].
AVIF needs the same care. The 60% of pages with AVIF [3] means "at least one AVIF file somewhere on the page", in the author's words [11]. The spot check agrees. Of 24 stores, 22 returned WebP for the main image, or 92% [20], and AVIF turned up only on some small size variants, not consistently [10].
If an image lacks width and height, the browser learns its shape only once the file loads, and the text beneath it can jump. Some themes head that off in CSS with aspect-ratio or a fixed-ratio wrapper [14]. The crawl read HTML only, so it cannot say which themes do. The author calls a missing attribute "a risk, not proof of layout shift" [14]. For the 43% to be a layout-shift rate, none of those pages could have its space reserved in CSS.
Counting lazy-loaded images lifts the figure to 55% [15], 12 points above the headline number [21]. The author kept the narrower first-loaded count as the headline because lazy-loading markup can include source elements that never carry these attributes [15]. The interval on the 43% runs from 36 to 50% [4].
The alt count is strict. A page is flagged only when the attribute is missing entirely, and alt="" is scored as present because it is correct markup for a decorative image [16]. Whether existing alt text is any good was not assessed [16]. The interval around the 19.5% runs from 15 to 26% [5].
Heavy files are rare in the sample. The median image file on a Shopify product page is 42 KB, and 3% of pages had a first-loaded image over 1 MB [6]. Those are single-file sizes that include every srcset variant, and the author warns against adding them into a page weight, since a phone will not download the biggest variants [19].
What to watch
- A rerun that renders the pages and records layout shift would show how many of the 43% actually move.
- A larger AVIF check than 24 stores at a single 600px width would show whether Shopify's CDN ever returns AVIF for main product images.
- A WooCommerce sample bigger than 43 stores would narrow the 63 to 88% interval on JPEG or PNG first images.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence62
- Adoption
- Insufficient
- Hype gap−10
- Incentives35
- Confidence60
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
The write-up checked one product page on each of 199 Shopify stores and 43 WooCommerce stores, sampled from the HTTP Archive crawl of September 2026.
- [2]
On Shopify, 94% of product image files came back as WebP or AVIF.
- [3]
AVIF showed up on 60% of Shopify pages (95% CI 53 to 66%).
- [4]
43% of Shopify product pages have at least one first-loaded image with no width or height attribute (CI 36 to 50%).
- [5]
19.5% of Shopify product pages, about 1 in 5, have a first-loaded image with no alt attribute at all (CI 15 to 26%).
- [6]
The median image file on a Shopify product page is 42 KB, and only 3% of pages had a first-loaded image over 1 MB.
- [7]
The crawler read each page's HTML without running JavaScript and requested every referenced image with the same Accept header a current Chrome sends, recording format from Content-Type and size from Content-Length.
- [8]
97% of the WebP and AVIF responses carried a Vary: Accept header, meaning, per the author, the server picked the format based on what the browser said it accepts.
- [9]
The author concludes that the platform's image CDN picks the format for every store, whether the owner uploaded a JPEG or not.
- [10]
In a follow-up spot check on 12 October 2026, the main product image of 24 stores was requested at 600px wide while accepting AVIF: 22 came back as WebP, 2 as JPEG, none as AVIF. AVIF only showed up on some small size variants, and not consistently.
- [11]
The author says to read 'AVIF on 60% of pages' as 'at least one AVIF file somewhere on the page', not as stores choosing AVIF for their product photos.
- [12]
On 10.8% of Shopify pages (CI 7 to 16%) the first-loaded image still came back as JPEG or PNG; only hashes of image URLs were stored, so the author cannot say where those files are hosted.
- [13]
On 77.5% of WooCommerce pages (CI 63 to 88%) the first-loaded image was JPEG or PNG, in a smaller sample of 43 stores; only 1 page in 43 served any AVIF.
- [14]
Without width and height the browser does not know an image's shape until it loads, so text below can jump. Some themes prevent that with CSS (aspect-ratio or a fixed-ratio wrapper), so a missing attribute is 'a risk, not proof of layout shift'. The author read HTML only and cannot tell which themes cover it in CSS.
- [15]
If lazy-loaded images are included, the Shopify missing width/height figure rises to 55%. The author keeps the narrower first-loaded number as the headline because lazy-loading markup can include source elements that never carry these attributes.
- [16]
Only images where the alt attribute is missing entirely were counted; alt="" was counted as present because it is correct markup for a decorative image. Whether existing alt text is any good was not assessed.
- [17]
The write-up did not measure total page weight, which image a browser actually picks from a srcset, rendered image sizes, Largest Contentful Paint, images injected by JavaScript, or CSS background images.
- [18]
The write-up's closing advice for Shopify merchants begins 'On Shopify, format is not your problem.' and tells them to check the theme's main product image for width and height attributes.
- [19]
The file sizes are for individual files, including every size variant a page lists in srcset. A browser on a phone will not download the biggest variants, so the author says not to add them up into a page weight.
- [20]
22 of the 24 spot-checked stores returned WebP for the main image, about 92%.
- [21]
Including lazy-loaded images adds 12 percentage points to the missing width/height share (55% against 43%).
- [22]
WordPress can serve WebP, but unless a plugin or CDN negotiates the format, the browser gets whatever file was uploaded.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toShopify Product Images in 2026: Formats Are Mostly Solved. Layout and Alt Text Are Not.
1 article · October 12, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
- Web PerformanceFollow
- Web AccessibilityFollow
- E-commerce image optimizationFollow