All guidesPlatforms

Image SEO on Shopify: What the Platform Does For You and What It Quietly Breaks

Shopify renames your files on upload, serves everything from its own CDN, and generates an image sitemap you cannot edit. Here is what that means in practice, which levers you still control, and where the real product-image wins are.

August 30, 20268 min read
A neatly arranged retail stockroom shelf with plain cardboard boxes and a handheld barcode scanner resting on the edge

Shopify occupies an unusual position in image SEO. It solves the hard infrastructure problems for you, entirely and by default, and then constrains a handful of things you would ordinarily control. Advice written for a self-hosted site therefore misfires in both directions: it tells you to fix things that are already fine, and it stays silent on the things that actually go wrong.

Here is the accurate division.

What Shopify already handles

Delivery. Images are served from Shopify's own global CDN, with sensible caching and automatic modern-format conversion. Delivery speed, one of the largest levers on a self-hosted site, is essentially solved before you start. The format question of WebP versus AVIF versus JPEG is one you mostly do not have to answer here, because the platform negotiates it per-browser.

Crawlability. The CDN is crawlable, robots-permissive by default, and there is no separate hostname configuration for you to get wrong. On a self-hosted site, the robots.txt on the image hostname is the classic silent killer. On Shopify it is one of the few things you can safely stop worrying about.

Sitemaps. Product images are included in the generated sitemap set automatically, and it stays current as the catalogue changes.

Responsive candidates. The theme's image helpers generate a srcset of sensible widths from a single source file. You do not have to build a resize pipeline.

That is a genuinely strong baseline. Most stores are not losing image visibility to any of the above.

What Shopify constrains

EXIF metadata does not survive. Files are reprocessed on upload, and embedded metadata is dropped in the process. Any descriptive fields, copyright strings or GPS coordinates written into the file before upload will not be present on the served asset. Nothing is broken, but it does mean the metadata layer of image SEO is unavailable to you on the storefront and any effort spent embedding it is wasted.

That is not a reason to abandon metadata everywhere. It matters for files you distribute or syndicate outside the store, and it matters if the same imagery is used on a WordPress site or a Google Business Profile, where metadata is preserved and does carry weight. It just does not travel through Shopify's pipeline.

Sitemap editing. You cannot add, remove or annotate entries. If an image is not appearing, the sitemap is not where the fix lives.

Theme-level markup. How alt attributes are rendered, whether captions exist, whether loading and fetchpriority are set sensibly, and what the structured data contains are all theme decisions. A poorly-built theme can undo good admin-side work, and you will not see it in the admin.

Version parameters in URLs. Served URLs carry a version query string that changes when the image changes. This is correct cache behaviour, but it means the URL of an image is not permanently stable, and any external process that stores image URLs needs to tolerate that.

The filename, which you do control

Shopify preserves the descriptive part of the filename you upload. It normalises characters and appends a version parameter, but a file uploaded with a meaningful name keeps that name in the served URL.

This matters more than it sounds, because upload is the only opportunity. Renaming later means deleting and re-uploading the asset, which breaks the existing URL and any accumulated image-search history.

So the practical rule on Shopify is that filenames are decided in the folder before upload, not in the admin afterwards. A store importing a supplier's catalogue with vendor SKUs as filenames has permanently locked in meaningless names for its entire product range, and correcting that later is a per-product manual job. A naming convention applied at the point of export is trivially cheap and is the difference.

The counterpart lever, alt text, is fully editable at any time from the image detail view in the admin, and unlike the filename it costs nothing to revisit.

Where the real wins are

Ranking one product image is rarely the objective. Selling more of the product is. Those overlap less than people assume, and the overlap is mostly in shot selection.

Shot Search value Conversion value
Plain white background hero High — expected format, clean subject Moderate — necessary, not persuasive
In-use or in-context Moderate High — answers scale and fit
Scale reference Low High — largest single returns reducer
Detail or material close-up Moderate High for considered purchases
Packaging and what is included Low High — removes a common hesitation
Lifestyle scene with people Low — subject is ambiguous Moderate — brand-building

The white-background hero is what visual search and image results tend to select, because the subject is unambiguous. Everything below it exists to sell. A catalogue optimised only for the first row looks tidy and converts poorly.

The broader argument for which shots to prioritise, independent of platform, is covered in product image SEO for ecommerce. What is Shopify-specific is that adding those shots is nearly free — image count has no meaningful platform cost, and the theme's helpers handle sizing.

Visual search deserves particular attention for physical products, because it is the surface where product photography maps most directly onto commercial intent. A shopper photographing an object to find where to buy it is deep in the funnel, and the selection logic rewards exactly the plain, well-lit, single-subject shot ecommerce already produces. What actually applies when optimising for Lens is a short list, and Shopify stores are unusually well-positioned on it.

Variant images, and the thing that goes wrong at scale

Shopify lets you attach images to variants, so a shopper selecting a colour sees that colour. This is good merchandising and it introduces two search-side wrinkles worth knowing about.

The first is volume. A product with six colours and four shots each is twenty-four near-identical files, differing only in hue. Near-identical images are grouped rather than indexed separately, so twenty-four files do not produce twenty-four opportunities. They produce roughly one, plus a much heavier page. The variant images are earning their place through conversion, not through search, and it is worth being clear which job each image is doing.

The second is alt text. Variant images inherit whatever description you gave them, and a bulk process that sets the product title on every image produces two dozen identical strings on one page. That is the exact pattern that reads as automated. If variant images are going to carry alt text at all, it should name the variant, because the variant is the only thing distinguishing them.

Collection and blog images, which nobody audits

Product pages get attention. The rest of the store does not, and two other image surfaces exist.

Collection images appear in navigation and in category cards, and they have their own alt text field in the admin that is empty on most stores. These images are frequently the ones a shopper sees first, and on a store with fifty collections the total effort to fix is under an hour.

Blog article images sit in a separate part of the admin again, and Shopify's blogging tools are thin enough that many stores paste images inline without ever setting alt text. Editorial images tend to be the ones with genuine image-search potential, because they answer visual questions rather than merely showing a product on white, so leaving them undescribed forfeits the part of the catalogue best placed to earn image traffic.

Neither surface is difficult. Both are simply in a different admin screen from the one everyone looks at.

The three mistakes worth auditing today

Oversized images shipped into small slots. The most common and most costly. A 2048-pixel file rendered into a 400-pixel thumbnail wastes bandwidth on every impression. The theme helpers exist to prevent this; hand-written URLs and hardcoded widths reintroduce it. The mechanics of getting this right, and of writing a correct sizes attribute rather than guessing, are the subject of srcset and sizes done properly and they apply identically inside a Liquid template.

Lazy loading on the hero. Themes frequently apply loading="lazy" to every image including the first one in the viewport, which defers the very asset that determines Largest Contentful Paint. Product pages are where this hurts most, because the hero is large and above the fold by definition. View source on a product page and check the first image element specifically.

Empty or templated alt text at scale. Shopify does not require alt text, so imported catalogues routinely have none. Bulk-setting a title-plus-variant template is a real improvement over nothing and is the right first move. Leaving it forever on your top sellers is not, because a template cannot describe what the photograph actually shows, and describing the actual shot is the entire function of the field.

Verifying the theme

Three checks, once, on a single product page, using view-source rather than the admin:

  1. Does each img carry the alt text you set in the admin, or has the theme substituted its own?
  2. Is the first in-viewport image excluded from lazy loading?
  3. Does the emitted Product structured data include an image field, and does its URL match a real served image?

That third check is worth doing with a validator rather than by eye, because themes populate the field inconsistently. Structured data is also the mechanism behind licence and attribution surfaces if you syndicate imagery, and the ImageObject markup Google actually reads is a separate question from Product markup that most themes do not attempt at all.

The short version

On Shopify, delivery, crawling and sitemaps are handled. Metadata is unavailable. The filename is a one-shot decision made at upload. Alt text and shot selection are fully yours and are where nearly all remaining value sits, and the most likely active problem is a theme shipping oversized or lazily-loaded heroes.

If you want a platform-independent pass over the rest of it, the twelve-item pre-publish checklist covers the general case, and roughly half of it Shopify has already done for you. That is a good position to be in, provided you spend the time saved on the half it has not.

Frequently asked questions

Does Shopify rename image files when you upload them?+

It normalises them rather than replacing them. Spaces and unusual characters are converted, and a cache-busting version parameter is appended to the served URL, but the descriptive stem you upload is preserved. That makes the filename one of the few image signals you fully control on Shopify, and it means naming the file properly before upload is the only chance you get.

Where do you add alt text to Shopify product images?+

In the admin, open the product, click the image, and use the Edit alt text control on the image detail view. The same field exists for collection images, blog article images and most theme-managed assets. Alt text set there is what the storefront renders, so a theme that hardcodes its own alt attribute will override it and is worth checking.

Is the Shopify CDN good or bad for image SEO?+

Good, with one caveat. It is fast, globally distributed, crawlable and serves modern formats automatically, so delivery is largely solved for you. The caveat is that it strips EXIF metadata during processing, so any descriptive or GPS metadata you embed before upload will not survive to the served file.

Does Shopify create an image sitemap automatically?+

Yes. Shopify generates and maintains sitemap files that include product images, and you cannot hand-edit them. This is genuinely convenient, and it also means sitemap-level fixes are not available to you, so discovery problems on Shopify are nearly always caused by theme markup or by pages excluded from the sitemap rather than by the sitemap itself.

How many images should a Shopify product have?+

Enough to answer the questions a buyer would ask before purchasing, which for most physical products is between four and eight. The useful test is whether each image adds information rather than whether you have hit a number. Scale, in-use context, materials and any packaging or included parts are the shots that reduce returns and hesitation.

Do Shopify apps that bulk-edit alt text help?+

They help with coverage and hurt with quality if you let them auto-generate. Bulk-setting a template such as product title plus variant across thousands of previously empty images is a genuine improvement over nothing. Leaving that template in place forever on your most important products is not, because a generated string rarely describes what the specific photograph actually shows.

Should you use Shopify image transformation parameters?+

Yes, through the theme's image helpers rather than by hand-writing URLs. The helpers generate correctly-sized responsive candidates and keep the markup consistent, whereas hardcoded width parameters go stale when the layout changes and quietly ship oversized files. Serving a 2048-pixel-wide file into a 400-pixel slot is the single most common Shopify performance mistake.

Does Shopify support structured data for product images?+

Most modern themes emit Product structured data including an image field, and Shopify's own theme framework provides the data to do so. It is worth verifying with a validator rather than assuming, because the image field is sometimes populated with only the featured image or with a transformed URL that differs from what the page displays.

Let SEOpix handle the metadata

Filenames, alt text, EXIF fields and GPS coordinates written automatically as each image is generated. Start with 10 free images a month — no credit card required.

Keep reading