Skip to content
Start Free 14-Day Trial
SEO与数字营销

Shopify Product Photos Missing from Google? Four Checks Before You Reshoot

Why Shopify product photos and product pages disappear from Google, and how to separate a page-indexing problem from an image-reference problem or a fields and structured data gap. A four-check order for English-speaking Shopify merchants and store operators, with the reshoot decision tied to observable delivery conditions, plus where Guangsuan's Shopify technical maintenance and custom development service fits. Brand promotion.

· ·MySEOShop

Brand promotion: this article introduces Guangsuan's Shopify technical maintenance and custom development service. It is a vendor introduction, not an independent review or a commissioned evaluation.

When a Shopify product photo looks correct on your storefront and still does not appear in Google Images, the natural instinct is to book another shoot. Reshooting replaces the file. It does not change whether the product page is in Google's index, whether the page exposes the image in a way a crawler can read, or whether the fields and structured data on the page still describe the product a buyer can actually buy right now.

This article gives you a check order for a Shopify store that separates three different failures - a product page that is not indexed, an image the crawler cannot read, and page data that no longer matches the product - so you can decide whether the next step is a new photo, a field fix, or handing the technical work to someone else.

The short answer

Work through these four checks in order. Each one rules out a different failure, and each failure has a different fix.

  1. Is the product page itself in Google's index? If the page is not in the index, the photograph is not the problem, and neither is the camera setting.
  2. Is the image referenced as a real file, and does the request for it succeed?
  3. Do the page fields and structured data still describe the product as it is sold now?
  4. Is the file the browser downloads the one you think it is, and is reshooting even the right next step?

Two limits apply to everything below. None of these checks guarantees a position in image results, which also depends on the query, the competition and Google's own judgement. And a status label in Search Console is a starting point for inspection rather than a diagnosis: a page reported as crawled but not indexed does not by itself prove the content is weak, and a page reported as discovered but not crawled does not by itself prove you need a paid indexing service.

Check 1: Is the product page in Google's index at all?

Crawling and indexing are two different steps, and they are not mutually exclusive: a search engine can index a page without crawling it if it discovers the address through another means. That distinction decides the order of the work. If the page has never been indexed, changing the image changes nothing, because there is no indexed page for an image to belong to.

Start with your own first-party data. Open URL inspection in Search Console for that exact product URL and read its index status, the last crawl date and the canonical address Google recorded. If Google selected a different canonical address than the one you are looking at, you are diagnosing a different page. Keep three observations apart rather than merging them into one: the page is indexed; image search has recorded impressions for that URL; and a particular query returns the image you expected. The third does not follow from the first two, and a missing result for one query does not prove the file was never indexed.

Then check the crawl rules that actually apply to that address. Shopify's default robots.txt lets crawlers request public content such as product, collection, page, blog and policy pages, and it blocks filtered collection URLs because they duplicate content that is already on the collection page. Two details of the default file are worth knowing. First, if your theme includes a robots.txt.liquid template that outputs the default rule groups, your store's file can also contain rules the default file no longer has, such as Disallow: /search or Disallow: /policies/. Second, editing robots.txt.liquid is outside what Shopify Support covers, and Shopify's documentation points store owners to a Shopify Partner for that work. Read the live file for the specific path and the user-agent you care about rather than assuming the default applies.

One condition is easy to overlook: rules in a robots.txt file are directional and advisory, and not all crawlers are guaranteed to follow them. A "indexed, though blocked by robots.txt" line in Search Console is usually expected behaviour rather than a fault - many pages are intentionally blocked, and Shopify's documentation notes that if a normal page such as the homepage shows that status, it usually means Google's data about the store is outdated. If you change rules, you can test the result with Google's robots.txt Tester.

Shopify's documentation also makes a point that is easy to miss if you only think about open-web search. If you sell through agentic storefronts such as ChatGPT or Microsoft Copilot, your product data is syndicated to those channels through Shopify Catalog independently of /robots.txt. Blocking crawlers at the robots.txt layer affects open-web discoverability only; it does not stop your catalogue from being shared through that channel. A rule you add to block AI crawlers is therefore not a way to stop product data from reaching those storefronts.

Check 2: Is the image referenced in a way a crawler can read?

An image that exists only as a CSS background, or that appears after a script assembles the gallery, is a harder case than an ordinary image element with a real file URL. The practical question is simple: does the page contain a reference to a real image file, in a format browsers and crawlers support, with text nearby that describes what the picture shows?

There is a Shopify-specific trap here. If your gallery swaps images using URL fragments - a colour selector that changes the address after a hash, for example - Google does not use fragment identifiers in indexing, so /product/t-shirt#black and /product/t-shirt#white are treated as the same page. Every colourway image then sits behind one indexed address. Google's ecommerce guidance asks that each product variant be identifiable by a separate URL, that the canonical product URL be used on variant pages, and that the same URL is used in internal links, sitemap files and canonical tags. If the product answers at more than one address, decide which one represents it and point the others at it.

Then check the request itself. Request the exact image URL the page uses, signed out, and read the status, the content type and the body. A 200 response with an HTML body is not a delivered photograph. If a rule rejects the request, a new photograph inherits exactly the same rejection.

Check 3: Do the fields and structured data still match the product?

This is where a store that "works fine" quietly loses its product pages. Shopify's help documentation states that officially supported themes and themes from its theme store already include structured data - but the current version, your own modifications and the apps you installed still have to be checked. On many stores the starting problem is not missing markup but values inside the markup that no longer describe the page.

A few things to establish before editing anything:

  • Which output are you looking at? Check both the raw HTML and the rendered DOM, and locate the JSON-LD and microdata output and where each comes from. It is not safe to assume a theme prints only microdata and apps print only JSON-LD.
  • Which type is printed? Shopify's structured_data filter can output Product or ProductGroup depending on whether the product has variants.
  • Do several markup blocks coexist? Related and multi-entity markup can reasonably exist side by side. What needs fixing is markup that is wrong, contradictory or needlessly duplicated for the same entity - not the mere fact that two blocks exist.

Then compare field by field, with the conditions of the moment: the name, model and variant shown with the selected specification; the price and currency in the market being checked, including list price, discount validity and taxes; availability for that exact specification; ratings and reviews a visitor can actually read on the page; the image belonging to that variant, with a reachable address; and the shipping and returns policy the store really applies. Two habits keep this honest: do not invent ratings when the store has none, and do not write availability mechanically when stock is zero but ordering is still allowed.

The conclusion matters as much as the comparison. If the admin product data is wrong, fix the data; if the page is right and the markup is wrong, locate the theme, the app or the custom output that produces it; if only one market is wrong, check that market's configuration, the cache and the URL.

Having markup in the page is not proof that the values are right, and a report with no errors does not guarantee that price or ratings are displayed. Run the rich results test, deal with the errors it flags first, and verify each one against the real content - do not fill in values that do not exist just to clear a warning. After publishing, re-check the public page and the cache, save both the URL inspection history and the live result, and request reprocessing if you have the permission to do so; a change does not mean the search engine has adopted it immediately. Price, inventory and theme changes should each trigger a re-check, and the useful cadence is the one that matches how often your catalogue actually changes.

Guangsuan publishes a longer Chinese-language, field-by-field walkthrough of the same comparison - price, availability, reviews and policy - in its Shopify product structured data audit note.

Check 4: Is the delivered file what you think it is, and is reshooting the right next step?

Separate three jobs that all get called "the images". The file: how many bytes it takes at the dimensions you exported. The delivered file: which of those files the browser is actually sent for the slot it fills. The load order: which images are fetched first and which wait for a scroll. Compression only changes the first. A large export placed in a small phone slot stays large unless the page offers a smaller version, and that is a delivery question, not a photography question.

Decide from what you observe rather than from what you assume:

What you seeCheck firstIs a re-shoot next?
The page feels slow, but the photos look sharp at display sizeDelivered file size, dimensions, format and load orderNot yet
The photo looks soft or blocky even when the correct file is servedSource resolution, focus and compression qualityPossibly - check the original first
Colour or material is wrongCalibration, lighting and editingRe-shoot or re-edit
The page is slow and the images are already smallScripts, apps, fonts and cachingNo
The images do not appear in image searchChecks 1 to 3: index, reference and contextNo - that is a separate job

Two delivery details are worth checking on the live page rather than in the admin. Declare the width and height of the image so the browser can reserve space and the layout does not jump while photographs load. And confirm which images load immediately: lazy loading suits images below the fold, but applying it to the first-screen product image delays exactly the element the visitor came for. Alt text is a separate job again - a short description of what the picture shows, written in the words a buyer would use - and it is not a position in image results.

An image that loads correctly is not automatically an image that a search engine has indexed, and an image that a search engine has indexed is not automatically an image that ranks. Those are three separate observations, and only the first is a photography question.

Where Guangsuan fits

Guangsuan provides Shopify technical maintenance and custom development, described as monthly support alongside theme optimisation, with a single-task option and project work. Its published scope covers day-to-day maintenance and troubleshooting, theme customisation and version updates, account and app security, product listing and multilingual maintenance, and feature development with system integration.

Two limits belong in the conversation before any quote. First, what can actually be delivered depends on the Shopify plan, the theme structure, what the installed apps can do and which interfaces are available. Second, the technical service can be bought on its own, without a promotion package attached - a store that only wants the index and image questions diagnosed does not have to buy anything else.

Within that scope, the four checks above are the technical SEO part of the work: confirming that the product URL, the canonical address, the robots rules and the internal links agree, and separating a page-level indexing problem from a field-level data problem. Guangsuan's published monthly option is a trial price of 3980 CNY per month for one store, including 6 hours of technical work; a single task is quoted by task, and a project is quoted by project. Either way, the published process is the same: state the problem and the goal, confirm the scope and the quote, develop and preview in a controlled environment, then release after your confirmation with a change record and applicable rollback notes. Access is handled through Shopify collaborator access or on-demand authorisation, with only the permissions the work requires.

Guangsuan's published service scope, engagement types and delivery process are set out on its Shopify technical maintenance and custom development page.

What to prepare before you ask: the store address, the product URLs involved, the date you checked and what you saw in Search Console, the image URL the browser actually requests, the theme name and version, the list of installed apps, and the pages that must keep working after any change - cart, checkout, payment callbacks and order emails. Do not send store owner passwords, payment information or customer order data through a public channel.

FAQ

Does compressing product images make them appear in Google Images?

Not by itself. Compression changes the bytes of a file at the dimensions it was exported at. It does not decide whether the page is indexed, whether the image is referenced in a crawlable way, or whether access rules allow the request. Those are Checks 1 to 3.

My product page is indexed but the image is not in Google Images. What next?

Check the reference and the context: whether the image is exposed as a real file URL on the page, whether the gallery changes images behind URL fragments, and whether the alt text and surrounding copy describe what the picture shows. If your variants are reachable only behind fragments, the indexed address is one page rather than one per variant, and that is a page-structure fix rather than a photography fix.

Does better structured data get my product into image search?

No such promise is made here. Markup helps a search engine describe the page; it is not a position in image results, and where the markup and the visible page disagree, the fix is to make them agree rather than to add markup on top.

Do colour or size variants need their own URLs?

Google's ecommerce guidance asks that each variant be identifiable by a separate URL and that the canonical product URL be used on variant pages. If a gallery only swaps images behind fragments, the indexed address is one page rather than one per variant. Decide which address represents the product, point the others at it, and keep the same URL in internal links, the sitemap and the canonical tag.

Can Guangsuan guarantee image results or rankings?

No. Guangsuan's published Shopify scope is a technical service - maintenance and fault fixing, theme customisation and version updates, speed optimisation and technical SEO, product listing and multilingual upkeep, and custom development with system integration - and the published terms state that feasibility depends on the plan, theme structure, app capability and available interfaces, with scope and acceptance confirmed before work starts. Image visibility is not something a technical fix can promise.

A closing note on what this article can and cannot do for you. Every check here is one you can run yourself, with your own Search Console data and your own page source. Guangsuan's role, if you use it, is to do that work with you and to record what was changed and what was re-tested afterwards - not to guarantee an outcome that depends on the query, the competition and Google's own judgement.

About the author

MySEOShop writes technical SEO research for the MySEOShop team, focused on what actually moves the needle for Shopify merchants — schema, collection-page architecture, and AI-search visibility.

Run this audit on your store in 90 seconds.

MySEOShop surfaces the schema gaps, cannibalization conflicts, and AI-search opportunities your store is leaving on the table — with one-click fixes deployable from the Shopify admin.