GuideUpdated 2026-07-06

How enrichment works

The non-destructive model behind Optimise, how your source data flows into a supplemental enriched layer and out through a stable feed URL, and exactly what gets touched versus what never does.

Plain-English summary

Optimise reads the product data you already have, works out what Google needs, and writes the improvements to its own layer, never back to your store. You point Merchant Center at one stable feed URL, and Google always fetches the enriched version. Your Shopify or platform data stays exactly as it was.

The one rule that shapes everything

Optimise never writes to your store. It reads your product data, works out what Google's specification wants, and records every improvement in a separate supplemental layer that belongs to /tools. Your Shopify (or feed-URL, or CSV) source stays untouched. Google is served the merged result through a single stable URL.

That separation is the whole design. It means enrichment is always reversible, always auditable, and can never corrupt the catalog you run your business on.

The three stages

1. Input: reading your catalog

Optimise pulls your products from wherever they live: a Shopify connection (read at the variant level), a feed URL, or a CSV upload. It reads everything a variant carries (title, description, price, availability, barcode, option values, images) and takes a snapshot. Nothing is written back at this stage; the connection is read-only from your store's point of view.

2. Enrichment: the supplemental layer

For each product, Optimise compares what you have against what Google expects and fills the gaps in its own layer:

  • Rebuilds titles to Google's ordering and length expectations
  • Fills missing GTINs where a confident external match exists
  • Maps each product to a specific google_product_category
  • Normalises messy colour and size values to consistent ones
  • Reconstructs variant relationships (item_group_id) where they're broken
  • Populates custom labels for campaign segmentation

Each of these is stored as an override on top of your source value, keyed to the product. Your original value is retained alongside it, which is what makes the whole thing non-destructive and reversible.

3. Output: the stable feed URL

Optimise merges your source data with the supplemental layer and publishes the result at a single feed URL. You point Merchant Center at that URL once. Google fetches it on schedule and always receives the enriched version. The URL doesn't change when you re-run enrichment, add products, or edit overrides: so you never re-configure Merchant Center after the first setup.

Deep dive What gets touched, and what never does

It's worth being precise about the boundary, because it's the thing merchants most often want reassurance on.

Touched (in the supplemental layer only):

Layer What changes
Enriched fields Title, GTIN, category, colour, size, custom labels, variant grouping and the rest of the enriched set are overridden with Google-ready values
Feed output The published feed carries the merged result: your data with overrides applied
Change log Every override is recorded with a timestamp and the reason it was applied

Never touched:

Layer Why it's safe
Shopify product records Optimise only ever reads them; no write access is used against your store
Source titles, descriptions, options Retained as-is behind every override, so any change is reversible
Prices and stock Passed straight through from source: Optimise reflects your numbers, it doesn't set them
Your platform's own feeds If you also run a native Shopify or channel feed, it's independent of the /tools feed and unaffected

Because the original value is always kept, you can clear an override on any field and the feed instantly reverts to your source value: no re-sync of your store required. This is also why enrichment can run repeatedly without drift: each run recomputes overrides against the latest source snapshot, it doesn't stack edits on top of edits.

Re-runs and fresh data

When your catalog changes (new products, price updates, a bulk edit in Shopify) Optimise reads a fresh snapshot and recomputes the supplemental layer. The feed URL stays the same, so Google picks up the new output on its next fetch without any action from you. Ongoing change monitoring watches for upstream shifts between runs so a quiet regression can't cost you weeks of performance.

Where to go next

Frequently asked questions

Does enrichment change my Shopify products?

No. Optimise reads your catalog and writes every improvement to its own supplemental layer. Your Shopify product records, titles, descriptions, options, everything, are never edited or overwritten. If you disconnected /tools tomorrow, your store data would be exactly as you left it.

What does Google actually see?

Google fetches the enriched feed from the stable URL Optimise gives you. That feed is your source data with the supplemental layer merged on top, so Google sees the corrected titles, filled GTINs, specific categories and normalised attributes, not the raw versions.

Do I need to re-import anything after enrichment?

No. The feed URL doesn't change between runs. Google keeps fetching the same URL on its schedule and picks up the latest enriched output automatically.

Put this into practice. /tools rebuilds messy product data into Merchant Center-ready feeds. Connect a store and see your Feed Health Score in minutes.
Try /tools →