Product Image SEO: Alt Text, Filenames, and Schema for E‑Commerce (2026)

Marketplace image rules get all the attention — the pure-white main photo, the 1600 px zoom floor, the 4:5 grid. Those rules decide whether your listing stays up. But there is a second, quieter layer that decides whether your product photos get found in the first place: product image SEO — the on-page signals Google reads to index your images and surface them in Google Images, the shopping panel, and the rich results above the organic blue links.

This is the layer most e-commerce sellers skip, because it is invisible and unglamorous. A perfectly lit hero with empty alt text, a filename like IMG_4472.jpg, and no schema will rank for nothing — even when the photo itself is better than every competitor's. The fix is four small, mechanical things done on every product image, every time.

Alt text is the single biggest image-SEO lever

Google cannot see a product photo. It reads the alt text — the alt attribute on the <img> tag — to understand what the image is. That text is the primary signal for Google Images and a meaningful signal for web search, plus it is the accessibility text screen readers read aloud. Empty or keyword-stuffed alt text wastes all three.

Write alt text the way a sighted person would describe the photo to someone on the phone:

  • Name the product and the variant. Red leather crossbody bag on a white background — not bag and not image of bag.
  • Add the differentiator a buyer would search. Color, material, pattern, and the angle: front view, on model, detail of clasp.
  • Skip "image of" and "photo of." Google already knows it is an image; the words add nothing and dilute the signal.
  • One product per image. A gallery shot with three products confuses the alt text and the page's topical focus; give each its own image and its own alt.

Do not stuff keywords. red leather crossbody bag women's cheap buy online sale reads as spam to both the algorithm and a screen-reader user, and it is the one image-SEO tactic Google actively penalizes. Plain, descriptive, specific — every time.

Filenames are a smaller signal that almost everyone wastes

Before Google reads the alt text, it reads the filename. IMG_4472.jpg tells it nothing. red-leather-crossbody-bag-front.jpg tells it almost everything the alt text does. Filenames are a weaker signal than alt text, but they are free — you control the filename before you upload, and the work is a single rename.

The rule: lowercase, hyphens between words, no spaces, no underscores, no IMG_ prefixes, no camera defaults.

  • red-leather-crossbody-bag-front.jpg
  • Red_Leather_Crossbody_Bag.JPG — underscores are not word separators to Google; the case and .JPG are noise.
  • IMG_4472 - copy (2).jpg — worse than useless; the parenthetical and the camera roll ID are pure noise.

Rename the file once, before it goes into your CMS or marketplace. After upload, most platforms lock the filename into the URL and the CDN copy, so the rename has to happen first.

ImageObject and Product schema tell Google the image is a product

Structured data is the bridge between "an image on a page" and "a product image Google can feature in the shopping panel." Two schema types matter for product images:

  • Product with an image field listing the product photos and an Offer nested inside carrying price and availability. This is what makes a listing eligible for the merchant rich results — the price, rating, and image block Google shows above organic results.
  • ImageObject for standalone gallery images, which tells Google the image's URL, caption, and the page it belongs on.

The practical version most stores can ship: a Product JSON-LD block per product page, with the image array pointing at the hero and two or three gallery shots by absolute URL, plus an Offer with price, priceCurrency, and availability. Skip the rating fields unless you have real reviews — fake AggregateRating on a product with no reviews is a fast way to a manual penalty.

If you generate your images with ShotKit, the hero, lifestyle, and detail variants come back as a set of absolute URLs at 2048 px — drop those straight into the image array and the JSON-LD is done.

An image sitemap gets images crawled that the page crawl misses

Google discovers images by crawling pages, but a page crawl does not always pick up every image — especially images loaded lazily, served from a CDN subdomain, or buried in a gallery behind a thumbnail. An image sitemap lists image URLs explicitly and gets them into the index faster.

The format is a sitemap with the image namespace and one image:image block per image:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://shop.com/products/red-crossbody-bag</loc>
    <image:image>
      <image:loc>https://shop.com/img/red-leather-crossbody-bag-front.jpg</image:loc>
      <image:title>Red leather crossbody bag — front view</image:title>
      <image:caption>Red leather crossbody bag on white background</image:caption>
    </image:image>
  </url>
</urlset>

List the hero and the top gallery images per product page. Do not list thousands of thumbnails — list the images you actually want ranking. Submit it in Google Search Console alongside your main sitemap.

The hero image has an LCP budget

The largest image above the fold is usually the Largest Contentful Paint element — the LCP — and LCP is a Core Web Vital. Good is under 2.5 seconds; over 4 seconds Google flags the page as slow, and slow pages rank and convert worse.

A 5 MB hero straight off a phone camera will blow the budget before it even finishes downloading. The fix is mechanical:

  • Compress before upload. Get the hero under a few hundred KB without visible quality loss — WEBP or AVIF where the platform allows, JPG otherwise.
  • Serve the right dimensions. A 4032 px phone photo displayed at 800 px is 25× the bytes you need; resize to the display size (or 2× for retina) before upload.
  • Strip EXIF metadata. Phone cameras write camera model, timestamp, and — if location was on — GPS coordinates into every shot. That metadata is bytes you do not need to ship, and the GPS is a privacy leak you do not want on a product page.

These three — compress, resize, strip — are exactly what the free image compressor, image resizer, and metadata remover tools on this site do in the browser, with no upload and no signup. Run every hero through them before it goes live.

The five-image SEO checklist

Before a product image goes live, run it past these five:

  1. Alt text — names the product, variant, and angle; no stuffing, no "image of."
  2. Filename — lowercase, hyphenated, descriptive; renamed before upload.
  3. Schema — the product page ships Product JSON-LD with the image array and a real Offer.
  4. Image sitemap — the hero and top gallery shots are listed in an image sitemap, submitted to Search Console.
  5. LCP budget — the hero is compressed, resized to display, and EXIF-stripped, under 2.5 s on a cold load.

Marketplace image rules keep your listings from being suppressed. Product image SEO is what gets them found in the first place. The five checks above are the difference between a beautiful photo that nobody sees and one that pulls traffic from Google Images into your store every day.

Turn one product photo into a studio shoot

Upload a product, pick a scene, download a studio-quality shot in seconds.

Try ShotKit free →

Get early access + bonus renders

Join the waitlist for paid plans, an early-bird discount, and a bonus render batch when pricing goes live.

No spam. One email when paid plans launch, then you decide.

Keep reading

AI product photography for your niche

Each category has its own photography problems. Browse all use cases →