the pipeline · for people who read the details before installing

What actually happens when FeedWarden scans.

No magic claims. This page walks the pipeline end to end: what gets fetched, how the two sides are matched, what each detector looks for, and what happens when something is wrong.

  1. stage 01 · fetch

    Both sides, every scan.

    From Shopify: every variant with its price, compare-at price, stock, title, image, barcode, and URL, plus 30-day order revenue per variant. From Google: every Merchant Center item with its submitted attributes, item statuses, disapproval reasons, and the datasource that submitted it. Read-only on both sides.

  2. stage 02 · match

    A matching ladder, not a guess.

    Feeds name products differently, so matching runs a ladder: the standard channel offer-id convention first, then exact SKU, then GTIN with zero-padding normalized, then the variant id embedded in the offer id. Ambiguous keys never match; a wrong pairing would poison every comparison downstream.

  3. stage 03 · detect

    Ten detectors over the matched catalog.

    Missing products

    Active Shopify variants with no matching Merchant Center item.

    Ghost items

    Products deleted in Shopify but still served to Google surfaces.

    Field drift

    Price, sale price, availability, title, image, GTIN, or URL disagreeing between Shopify and GMC.

    Stale prices

    A mismatch that persists past your sync window. Stale sale prices are a fast path to disapproval.

    Source takeovers

    The winning datasource for an offer changed between scans: the footprint of two feeds fighting over one product.

    Count drops

    The Merchant Center item count fell sharply since the last scan.

    Empty feed reads

    Merchant Center returns zero products while Shopify has an active catalog: a connection or account problem, caught as one incident instead of hundreds.

    Status changes

    Items disapproved or limited in GMC, held open as incidents until Google actually recovers them.

    Page and crawl failures

    Product pages that Google's crawler cannot reach or that contradict the feed.

    Duplicate submissions

    The same offer visible from more than one source in a single scan.

  4. stage 04 · crawl

    Live page checks on the riskiest offers.

    For products with page-related disapprovals or suspicious drift, FeedWarden fetches the live product page the way a crawler does and verifies:

    • HTTP status and full redirect chain, hop by hop
    • robots.txt rules as Google's crawlers read them
    • meta noindex tags
    • canonical URL versus the served URL
    • structured-data price and availability versus the feed
    • image URL reachability
    • access walls: password pages, login redirects, bot challenges

    Requests are throttled to be polite to your storefront, and every redirect hop is re-validated before it is followed.

  5. stage 05 · rank

    Money first.

    Every detection carries the 30-day revenue of the variants it touches, in your store currency. Detections group into incidents, incidents sort by revenue at risk, and incidents that touch your best sellers escalate in severity.

  6. stage 06 · report

    Incident, cause, owner, evidence.

    Each incident gets a plain-English root cause (Shopify data, GMC ingestion, feed source conflict, page or crawl issue, structured data, policy, or stale sync), a recommended fix owner, specific fix guidance, and a downloadable evidence packet in Markdown or JSON. Incidents persist across scans and resolve only when the underlying state recovers.

    See a finished incident

access & data

Exactly what it needs. Nothing else.

Shopify scopes
read_products, read_orders. No write scopes, ever.
Google access
Merchant Center content scope via your own Google sign-in. FeedWarden reads items, statuses, and datasources. It never writes to your feed.
Data retention
Catalog snapshots, incident history, and crawl results for your store. Kept 30 days (90 on Command), and deleted on uninstall.
Scan cadence
Scheduled scans by plan, plus catalog-change flags from Shopify webhooks, plus manual scans whenever you want one.
Monitoring health
FeedWarden reports on itself too. A failed scan shows a banner with the exact error, three consecutive failures trigger an alert, and Settings shows the delivery status of every alert channel.

The first scan builds your baseline in about an hour.

Install on Shopify