You can shoot perfect product photos, name the files properly, write good alt text and still have Google index almost none of them. Discovery is a separate problem from quality. Google has to find the image URL, be allowed to fetch it, be able to associate it with a product, and be permitted to show it at a useful size. Break any one of those links and your photos simply do not appear in Google Images, Google Lens, Shopping surfaces or AI-generated shopping answers.

This guide covers the plumbing: image sitemaps, structured data image fields, the robots directive most stores are missing, and licensing metadata. It assumes you have already sorted the basics of alt text, file names and compression.

How Google actually finds your product images

Google discovers images through a small number of paths, and several common storefront patterns block all of them.

Lazy loading is fine and expected in 2026, but it must be implemented so the image URL is present in the markup rather than injected only after a scroll event. If the URL only appears in JavaScript that runs on user interaction, treat it as invisible.

The image sitemap: exact format and limits

An image sitemap is a normal XML sitemap with an extra namespace. It does not replace your page sitemap; it extends it.

What your platform gives you already

Shopify auto-generates a sitemap that includes the primary product image for each product. That is a meaningful gap: your secondary gallery shots, lifestyle images and infographic panels are not listed, and those are often the images that win in visual search. WooCommerce with Yoast or Rank Math includes page images in the relevant sitemap entries, which covers more of the gallery but depends on the images being rendered in the page markup rather than in a JavaScript slider.

If you sell across several storefronts, the practical fix is to generate one supplementary image sitemap containing every gallery image URL and submit it in Search Console alongside the platform sitemap. There is no penalty for an image appearing in two sitemaps.

Structured data: the image fields that matter

Product structured data is what tells Google that a given image is a product photo rather than a banner, a logo or a blog illustration. That association is what makes the image eligible for shopping and Lens surfaces rather than just generic image results.

Practical rules for the image property:

Getting one master shot exported cleanly at several ratios and sizes is exactly the kind of repetitive job worth automating. A batch resizer such as PixelPrep will turn a single high-resolution original into the square, 4:3 and 16:9 versions your markup references without you opening an editor twenty times.

The one-line tag most stores are missing

Without an explicit directive, Google limits image previews to small thumbnails. The fix is a single site-wide meta tag in the head:

<meta name="robots" content="max-image-preview:large">

This governs large previews across web search, Google Images and Discover. Discover eligibility in particular expects images at least 1,200 pixels wide alongside this directive. Many themes ship without the tag, and many SEO plugins add it by default, so check your rendered source rather than assuming.

Licensing metadata and the Licensable badge

If you have paid for photography, you can claim it. Google supports two routes, and you can use both:

For most sellers the value is not licensing revenue, it is provenance. When a dropshipper lifts your photos, embedded rights metadata and a licence page make the takedown conversation much shorter.

Signal-by-signal summary

SignalWhere it livesWhat it doesWhat breaks without it
img src / srcsetPage HTMLPrimary discovery pathCSS-background images are never indexed
Image sitemapXML file, submitted in Search ConsoleSurfaces gallery and CDN-hosted imagesOnly the primary image gets found on most platforms
Product structured data image arrayJSON-LD in page headMarks the image as a product photo; feeds Shopping and LensImages treated as generic page decoration
max-image-preview:largeRobots meta tagAllows full-size previewsThumbnail-only display; no Discover eligibility
og:image / primaryImageOfPagePage headChooses the thumbnail Google showsGoogle picks for you, often badly
license / IPTC rightsMarkup and file metadataLicensable badge and provenanceNo ownership signal when images are copied

File-level details that quietly block indexing

Google Search supports BMP, GIF, JPEG, PNG, WebP, SVG and AVIF. Two practical traps: the file extension must match the actual file type, which catches sellers who rename a HEIC or PNG to .jpg without converting it; and image URLs should stay stable. Every time a re-upload changes the filename hash, you reset that image's indexing history. Retouch and replace at the same URL where your platform allows it, and keep one canonical URL for an image used on multiple pages so crawl budget and caching both work in your favour.

Implementation checklist

  1. View source on a product page and confirm every gallery image appears as an img src, not a CSS background.
  2. Confirm max-image-preview:large is present in the head site-wide.
  3. Generate a supplementary image sitemap covering all gallery images, not just the primary shot, and submit it in Search Console.
  4. Verify your CDN or image host in Search Console and check its robots.txt allows crawling.
  5. Make the structured data image property an array with at least 1:1 and 16:9 versions, all above 500 x 500.
  6. Align the feed image_link with the same master asset, ahead of the January 2027 enforcement date.
  7. Set og:image deliberately on product pages; do not let the theme default decide.
  8. Add licence metadata to commissioned photography, in markup and in the file.
  9. Re-run the Rich Results Test after any theme update, because theme updates are where image markup usually gets lost.

None of this improves a bad photo. What it does is make sure the good ones are actually findable, at full size, correctly attributed to your product, on every surface Google now uses to answer a shopping question.