Issue reference
Your products have no image in their product data
- SCHEMA_PRODUCT_IMAGE_MISSING
- Read the details
- —
- Medium
What it means
tragent reports this at the “Read the details” stage. The question there is “Can it understand what the product is?” Name, description, images and variants have to be readable as data, not just rendered as a page.
What it does to an agent
Agents can usually carry on, but more slowly or less sure of what they found, and an unsure agent is likelier to recommend another store.
Agents show products with a picture, and Google will not show a merchant listing without one. An image in structured data is also how an agent confirms it found the right variant: the black shoe should not come back with a photo of the white one.
The markup needs at least one absolute image URL that answers with an image. Relative paths and lazy-loading placeholders count as missing.
How to fix it
Add Product.image with at least one absolute URL; Google will not show a merchant listing without one.
"image": "data:image/gif;base64,R0lGODlhAQABAAAAACw="
"image": [ "https://shop.example/images/trail-runner-2-black.jpg", "https://shop.example/images/trail-runner-2-black-side.jpg" ]
On your platform
Shopify
The structured_data filter includes the product's featured image. Products with no media uploaded produce markup without an image, so the fix is in the admin: add at least one image per product, and per variant where colours differ.
WooCommerce
WooCommerce uses the product's featured image. Set one for every product, including variable products, where the parent needs its own image.
Headless or custom
Serve full https URLs from your CDN, not paths relative to the page, and not the low-quality placeholder a lazy loader swaps out later.
In practice
Use images an agent can show: the product on a plain background, at least 800 pixels on the long side, in a format every reader decodes, which means JPEG, PNG or WebP. Lifestyle shots are useful for people but make poor thumbnails in an answer, so list the clean product image first. For variants that look different, give each variant its own image.
Image URLs in the markup should be stable. URLs signed to expire, or that change on every deploy, break the listing an agent cached an hour ago. Serve images from a CDN path that stays the same while the image does, and when you replace a photo, keep the old URL redirecting to the new one for a while.
Check that the image in the markup is the one on the page. Themes sometimes put a placeholder in the structured data while the page swaps in the real photo after load, and some image apps rewrite the page's images without touching the markup. An agent then shows a shopper a different picture from the one they see when they click through, which reads as a mistake or a bait.
Check the fix
- Open the image URL from the markup in a browser and confirm it loads.
- Run the scan; the image finding should be gone or list fewer products.
Run the check that reported SCHEMA_PRODUCT_IMAGE_MISSING again after the change. The scan needs no account; an issue found during an AI shopping test needs that test run again.
npx @tragent/cli scan https://your-store.comCommon mistakes
- Image URLs that need cookies or a referrer to load.
- One generic brand image on every product.
- Protocol-relative URLs (//cdn…), which some readers do not resolve.