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.
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
- See every field Optimise can populate in The 20 enriched fields
- Understand how the output is scored in Feed Health Score explained
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.