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 errorsMissing description

Why Google rejects products with no description, and how to fix it

What the error means

Description is a required attribute. A product submitted without one is rejected outright rather than shown with a blank field.

Why Google rejects it

Google uses the description to match your product to a search. With nothing there, it cannot judge relevance, so the item is not eligible to serve.

titlepricedescriptionimage
The catalogue row as Google reads it: everything present except the description.

How to fix it

  1. Write at least a couple of sentences describing the product itself: material, size, fit, what it is for.
  2. Do not paste your shipping or returns policy here. Google treats policy text in the description as unrelated content.
  3. Avoid HTML that renders empty. A description of only markup counts as missing.

A typical case

A candle store with 300 products had 40 gift sets with empty descriptions after a bulk import. One template fix cleared all 40 at once, because the pattern was the import mapping, not the products.

Common causes

Imported products have a blank source field

A supplier CSV or app import can create products while leaving the description column empty. The storefront may still look complete because the theme shows images, options and a price. Compare several affected products and the import mapping; identical blank fields usually point to the source feed rather than an individual edit.

Descriptions exist in a metafield, not the product description

A theme can display marketing copy from a custom field while the product data source sent to Merchant Center remains blank. Open the product record and compare the field used by the feed integration with what appears on the page. A visually filled page does not prove the connected source attribute is populated.

The feed rule maps the wrong attribute

A custom feed may map description to a short excerpt, wrong column, or deprecated field. The final feed then omits the product description even though the catalog contains text elsewhere. Inspect the processed item data in Merchant Center or the feed preview and compare it with the source field.

Markup or template output is empty

Some themes print an empty container or HTML-only value when the product field is unset. Google may still receive no usable description. Check the raw product page and the feed value; the description should be real product-specific text, not an empty tag or policy boilerplate.

A bulk edit or sync erased existing copy

An app can overwrite descriptions during resync when its source column is empty, or a bulk edit can replace text across many records. Look at the timing: if many products changed together, review import and app sync history before manually rewriting items that may be overwritten again.

Fix it on your platform

On Shopify

  1. Open an affected product in Shopify admin and inspect the Description field, not only the product page preview or a custom metafield shown by the theme.
  2. If descriptions come from a supplier or feed app, inspect its field mapping and source file; correct the source before triggering another sync.
  3. Write accurate product-specific details such as material, dimensions, fit or included items. Keep shipping and returns information in their policy fields rather than using it as product copy.
  4. After syncing, inspect the product's Google channel status or Merchant Center item details to confirm the submitted description is populated.

On WooCommerce

  1. Edit the product and check its main product description and any short description separately; inspect which one the feed extension maps to Google's description attribute.
  2. Review the feed plugin's attribute mapping and generated feed preview for an affected item before regenerating the full catalog.
  3. If an import plugin owns product data, repair the source column or import mapping so future imports do not erase the corrected copy.
  4. Update the item and confirm the refreshed data source shows the new description in Merchant Center.

On other platforms

  1. In Wix, BigCommerce, Squarespace or another catalog, identify the product field connected to the Google feed; do not assume a custom page block is the mapped attribute.
  2. Check marketplace or feed app mappings for the destination description field and preview one corrected product before resyncing a large catalog.
  3. For custom feeds, send a plain, meaningful description in the supported description attribute and escape or normalize source content according to the feed format.
  4. Keep a source-of-truth field for each product so scheduled imports preserve rather than overwrite the corrected copy.

How to confirm it is fixed

  1. Check several affected products in the catalog and confirm each has accurate product-specific description text rather than policy copy or blank markup.
  2. Inspect the processed product data in Merchant Center or the feed preview to confirm the description attribute is present.
  3. Run Shipwork's feed check to find other public catalog products with missing or very short descriptions; its description finding is based on public catalog data.
  4. After the next feed sync, review product diagnostics for processing or policy issues and verify that imports have not overwritten the descriptions.

Questions

How long should a Google Merchant Center product description be?
Google's current product data guidance allows descriptions up to 5,000 characters and recommends roughly 500 to 1,000 characters when possible, with key details near the beginning. Shipwork's feed check flags public catalog descriptions that are missing or under 50 characters, but that threshold is a tool detection rule, not Google's recommended writing length.
Why does Merchant Center say description missing when my product page has text?
The feed may map a different product field from the one your theme displays. Check the submitted description attribute in Merchant Center or the feed preview, then compare it with Shopify's product description, WooCommerce's mapped description field, or the source field used by your platform integration.
Can I use the same description for every product?
Avoid generic copy that does not identify the individual item. Google expects product information to be relevant and useful; repeated text can make products difficult to distinguish. Keep shared policy language in policy pages and describe each product's real material, size, features or included components.
Does Google require a product description for Shopping?
Google's product data requirements include a description for products in relevant Merchant Center listings, and missing required attributes can prevent an item from serving. Confirm the requirement for the destination and product type in Merchant Center's current product data specification, then inspect whether the submitted item actually contains the value.
Why do my product descriptions disappear after I edit them?
A scheduled catalog import or feed app may overwrite manual edits from its source data. Check the import mapping and update the upstream description field, then resync. If a custom field feeds the page but not the Google integration, map the correct source field instead of repeatedly repairing the same output item.
Find out if this is happening to you

Shipwork reads your public catalogue and flags every product whose description is missing or under 50 characters. Free, no account, no signup. Paste your store address.

Check my store for Missing description

Go deeper: Merchant Center requirements, in plain words

See the check: Every check, explained

Other errors like this