ShipworkSite inspection
Feed check

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

All errorsPrice missing or zero

Why a product with no price or a zero price is rejected

What the error means

A product with a missing price, or a price of zero, is rejected. There is no partial credit.

Why Google rejects it

Shopping is a commerce surface. An item with no price cannot be bought, so it cannot be listed.

ZERO PRICE$0.00Valid price$25.00
A zero price is a rejection; any price above zero is a listing.

How to fix it

  1. Set a price above zero on every variant, not only the default one.
  2. Check placeholder and coming-soon products, which frequently sit at zero.
  3. Make sure the price on the page matches the price in the feed. A mismatch is a separate and very common rejection.

A typical case

Draft and coming-soon products published at $0.00 are the usual source. They sit in the catalogue invisible to shoppers but fully visible to Merchant Center. Delete the drafts or set real prices before the next sync.

Common causes

Price field is empty or malformed

The product record may omit price, contain text instead of a number and currency, or use an unsupported currency code. A value that looks acceptable in the storefront can still be malformed in the feed. Check the processed Merchant Center value and the source field mapping.

Default variant has no purchasable price

A product may show a starting price in the catalog but its submitted variant has no price, a zero placeholder, or an option that cannot be purchased. Inspect the exact item ID and variant in the feed, then test that selection through checkout.

Feed price differs from page or checkout

A sale, tax setting, currency conversion, or automatic discount can cause the feed, landing page, and checkout to show different amounts. Google requires the submitted amount and currency to match the page and checkout requirements. Compare one country and one variant at a time.

Price is a placeholder for unreleased stock

Coming-soon items and drafts may be published with a zero or token price so the page template can render. If the product cannot be bought at that amount, the feed is not describing a real offer. Keep unpublished products out of the channel until they have a valid offer.

Zero is used for a supported subscription case

A zero price is not universally invalid: Google's price specification says to submit price 0 for eligible physical goods subscription offers, where that value is ignored and subscription_cost carries the recurring amount. This is a narrow case with country and category limits, not a workaround for ordinary free or unpriced goods.

Fix it on your platform

On Shopify

  1. Open the affected product and inspect the price for every variant, not just the first selection. Confirm that a public customer can purchase the selected variant at the submitted amount.
  2. Check the Google & YouTube app or feed integration to see which price field it sends and when it syncs. Remove placeholder prices from products that are not ready to sell or exclude those products from the channel.
  3. Review Shopify Markets and currency settings for the target country. The landing page, checkout, and product data must use an allowed and consistent currency and price for that market.
  4. For a sale, confirm the current price and compare-at price are mapped to price and sale_price correctly. Do not encode member-only or cart-only amounts as the general product price.

On WooCommerce

  1. Open the product's General pricing fields and inspect both regular and sale prices. For variable products, verify each variation has a valid price and that the feed includes the same purchasable variation.
  2. Inspect the feed plugin's field mapping for price, sale price, currency, and any tax adjustments. Confirm that automatic discounts or currency plugins do not alter the shopper's amount after Google fetches the page.
  3. Test checkout for the target country and compare the submitted amount with the visible product and cart price. Include required merchant charges through the appropriate shipping configuration rather than hiding them until checkout.
  4. Exclude draft, coming-soon, or unavailable items from the active data source until the actual purchase price is set.

On other platforms

  1. Check the catalog value sent to Merchant Center, including numeric formatting and ISO currency code. Compare it with the public product page and checkout for the same target country.
  2. For price rules by region, use supported regional pricing features where available instead of changing price based on a visitor's IP address.
  3. Map standard and sale price fields separately and make sure discounts are available as advertised. Do not submit a member-only amount as the general price.
  4. If the item is a supported physical goods subscription, confirm eligibility and use the required subscription cost details. Do not reuse the zero-price exception for ordinary products.

How to confirm it is fixed

  1. Compare the exact item and variant in Merchant Center with its public landing-page amount and checkout amount, including currency and target country.
  2. Check that every purchasable variant has a valid amount and that no draft or coming-soon placeholder is included as a normal offer.
  3. Resubmit or sync product data, then review the item in Merchant Center's Needs attention or Diagnostics after processing.
  4. Run the price check to compare public catalog prices with product-page pricing signals on the store.
  5. For a disapproval, use the review action shown in Merchant Center after the corrected feed and live page are available.

Questions

Does Google Merchant Center allow a product price of zero?
For ordinary purchasable products, the submitted price must describe the amount a customer pays and match the landing page and checkout. Google has a narrow exception for eligible physical goods subscriptions: submit price 0 and use subscription_cost for the recurring amount. That exception applies only to supported categories and markets, so do not use zero as a placeholder.
Why is my product price wrong in Merchant Center?
The feed may use a stale field, a different variant, the wrong currency, or a sale price that no longer matches the site. Compare the processed Merchant Center value with the exact landing page and checkout for the target country. Then correct the source mapping and resubmit the product data.
Should I include tax in my Merchant Center product price?
Tax handling depends on the target country and product context. Google specifies that US and Canada prices should exclude sales tax, GST, VAT, and import tax, while other locations may require VAT in the submitted price. Check the current requirements for each country you target and keep the page and checkout consistent.
Can I submit a sale price as the regular price?
Submit the standard price in price and use sale_price for a current sale when you use those feed attributes. The sale must be available to users and clearly shown on the landing page. Member-only pricing has separate rules and should not be submitted as the general price.
How do I fix a price mismatch between my feed and checkout?
Check the same item, variant, currency, and destination in the feed, product page, cart, and checkout. Correct stale syncs, automatic discounts, regional pricing, or hidden merchant charges at their source. Resubmit the corrected product data and review Diagnostics after Google processes it.
Find out if this is happening to you

Shipwork reads the price of the first variant of every product and flags anything missing or zero. Free, no account, no signup. Paste your store address.

Check my store for Price missing or zero

Go deeper: Merchant Center requirements, in plain words

See the check: Every check, explained

Other errors like this