How I Built a Google Shopping Audit Platform That Increased Traffic by 36%
Managing Google Shopping manually doesn't scale. I built a 7-script audit platform that scores every product, fixes issues automatically, and tracks results across Merchant Center, GA4, and Google Ads — with a live dashboard. Here's how it works and the results it delivered.
If you run a Shopify store with more than a few hundred products and you're selling through Google Shopping, you already know the pain. Merchant Center disapprovals that appear out of nowhere, feed quality issues that tank your approval rate, products that should be in Shopping ads but aren't, and the constant whack-a-mole of fixing one issue only to discover three more. I got tired of managing this manually, so I built an automated platform that handles the entire Google Shopping pipeline — from Shopify product quality all the way through to Google Ads performance.
The results speak for themselves: 36.4% increase in web traffic, feed approval rate from 93% to 96.8%, and Google Ads ROAS climbing to 11.5x. Over 15,772 automated product fixes applied with zero errors. Here's how I built it and why it works.
The problem: Google Shopping is a pipeline, not a checklist
Most merchants treat Google Shopping like a checklist. Upload your feed, fix the disapprovals, move on. But Google Shopping is actually a pipeline with four stages, and problems at any stage cascade downstream:
Stage 1: Shopify product data quality. Missing images, incomplete descriptions, wrong product categories, missing GTINs, broken metafields. If the source data is bad, everything downstream is bad.
Stage 2: Merchant Center feed health. Disapprovals, stale products, channel approval rates, shipping configuration. This is where most merchants focus — but by the time you're fixing MC issues, the root cause is usually upstream in Shopify.
Stage 3: Site performance (GA4). Landing page bounce rates, mobile conversion gaps, geographic performance, organic vs paid overlap. You need this data to prioritize which products matter most.
Stage 4: Google Ads efficiency. Campaign ROAS, keyword quality scores, wasted spend on zero-conversion terms, budget utilization. This is where your money goes — and where upstream problems cost you real revenue.
The insight that drove the whole project: fix upstream first. If you fix Shopify product quality on Monday, Google re-crawls by Wednesday, and you can measure the downstream impact on Thursday. That became the core cadence of the platform.
Architecture: 7 scripts, one pipeline
The platform is seven Python scripts, each covering a different part of the pipeline, orchestrated by a weekly runner. Every script writes to its own SQLite database for historical tracking, generates a detailed Excel report, and pushes data to a live web dashboard.
Product Audit scores every Shopify product on a 0–100 scale across 18 weighted checks: images, descriptions, GTINs, pricing, SEO titles, Google product categories, apparel-specific metafields (age group, gender, color, size, condition), and inventory. The scoring is category-aware — a road bike doesn't get penalized for missing a "gender" attribute the way a jersey would. The baseline was 90.3/100 across 8,948 products. Small number, but the products scoring below 80 were disproportionately the ones getting disapproved in Merchant Center.
Product Fixer automatically remediates everything the audit finds. Missing metafields get set (age_group, gender, color, size, condition — all written at both product and variant level because Shopify's Google & YouTube app reads from variants). Missing SEO titles get auto-generated from the product title and vendor. Wrong Google product categories get corrected from a validated taxonomy map of 426 product types. Products without images get unpublished from Google. Eligible products get published. Every fix is logged with status tracking — applied, failed, or skipped — so you can audit what happened.
Merchant Center Audit pulls the full feed from Google's Content API and produces a 12-tab report covering approval rates, disapproval reasons, channel comparisons, performance data (clicks, impressions, conversions, ROAS), price competitiveness benchmarks, and per-issue trending. The trending is the key feature: you can see "Missing GTIN: 5,000 last week → 3,200 this week, down 36%" and know your Monday fixes are actually working.
Analytics Audit cross-references GA4 data with Merchant Center status. It identifies high-traffic products with MC disapprovals (revenue at risk), products selling well organically but not in Shopping ads (untapped opportunities), and high-bounce landing pages that need attention. Device breakdown shows the mobile conversion gap — critical for a multi-location retailer where customers often browse on mobile and buy in-store.
Google Ads Audit covers campaign-level performance, keyword quality scores, search term ROAS, wasted spend analysis, ad copy performance, and day-of-week patterns for ad scheduling optimization. The wasted spend tab alone identified $762 in zero-conversion keyword spend that was easy to pause.
Merchant Cleanup cross-references Merchant Center products against Shopify to find stale data — products that were archived or deleted in Shopify but still sitting in MC, orphaned products with no Shopify match, and products matching exclusion rules that should never have been in the feed. The initial cleanup deleted 2,474 stale products from MC using batch operations through the Content API.
Unified Audit reads from all four SQLite databases without making any API calls and produces a cross-platform intelligence report. This is the single source of truth: a 4-component weighted health grade (Shopify quality, MC feed health, GA4 performance, Ads efficiency), a "What's Working / What's Broken" analysis, revenue-at-risk calculations, and a prioritized action plan with specific product names, estimated revenue impact, and effort level.
The weekly cadence: fix, measure, review
The platform runs on a three-day cycle automated via macOS launchd jobs:
Monday — Fix the source. The product audit scores everything, then the product fixer applies all remediations. Shopify's Google & YouTube app auto-syncs changes to Merchant Center, and Google re-crawls within 24–48 hours.
Wednesday — Measure downstream. By now Google has re-crawled Monday's fixes. The MC audit shows whether disapprovals dropped, the analytics audit shows traffic changes, the ads audit shows performance shifts, and the cleanup script catches any stale products that slipped through.
Friday — Review and plan. The unified audit generates the cross-platform report with the health grade, quick wins, and action plan. I review the trends, note any new issues, and plan the next week's priorities.
This cadence means I'm never reacting to problems — I'm proactively fixing them upstream before they cascade. And because everything is tracked in SQLite with timestamps, the trend data builds over time. After a few weeks, you can see exactly which interventions moved which metrics.
The dashboard: real-time visibility
Excel reports are great for deep analysis, but I wanted real-time visibility without opening a spreadsheet. So I built a Vercel-hosted dashboard using Next.js and Neon Postgres that displays all the key metrics with week-over-week trending.
Each audit script pushes its results to the dashboard via a REST API endpoint. The dashboard shows the overall health grade, feed approval rate, product quality score distribution, Google Ads ROAS, and trend charts for every metric. A dedicated Actions tab computes prioritized recommendations directly from the database — no manual analysis required.
The critical design decision: each data source tracks its own latest date independently. Running only the Monday product audit doesn't zero out the merchant or ads metrics from Wednesday's run. This sounds obvious but was a real bug that took time to get right.
The scoring system deep dive
The product quality score deserves its own section because it's the foundation everything else builds on. Each product gets a 0–100 score based on 18 weighted checks normalized from 113 raw points. The weights reflect how much each factor impacts Google Shopping performance:
- Images (15 pts) — the single biggest factor. No image = automatic MC disapproval
- GTIN (10 pts) — proportional scoring: if a product has 5 variants and 3 have barcodes, it gets 6/10 instead of 0
- Description (10 pts) + Description Length (5 pts) — must exist AND be at least 100 characters
- Price (10 pts) — must be greater than $0
- Apparel attributes (25 pts total) — age_group, gender, color, condition, size — but only scored for apparel products. A bike frame gets full credit automatically
- SEO fields, taxonomy, SKU, inventory — the remaining checks that round out feed quality
The category-aware scoring was essential. Without it, every non-apparel product (bikes, components, tools) would score 25 points lower because they don't have gender or size attributes. The system uses a taxonomy map CSV to classify products — anything under "Apparel & Accessories" in Google's taxonomy is scored as apparel; everything else gets automatic full credit on apparel-only checks.
Critical discovery: variant-level metafields
One of the most impactful findings was that Shopify's Google & YouTube channel app reads metafields from product variants, not from the parent product. This isn't documented anywhere obvious. I was setting age_group, gender, and color at the product level, and the G&Y app was ignoring them. The result: 14,872 products with a persistent "Text too long [custom_label_0]" error in Merchant Center — which is actually Google's misleading way of saying "too many unique custom label values," not that any individual label was too long.
The fix was writing every metafield at both the product level AND the variant level. The product fixer now handles this automatically, including per-variant color and size extraction from Shopify's option values. This single fix resolved the largest recurring MC issue in the feed.
Results
After running the platform for several weeks with the Monday/Wednesday/Friday cadence:
- 36.4% increase in web traffic — the compound effect of better feed quality, more approved products, and optimized ad spend
- Feed approval rate: 93% → 96.8% — 2,474 stale products cleaned, thousands of metafield fixes, taxonomy corrections across 5,000+ products
- Product quality score: 90.3 → 91.7 — systematic improvement across all 8,948 products
- Google Ads ROAS: 11.5x — partially from better feed quality (more products eligible for Shopping), partially from identifying and pausing wasted spend
- 15,772 automated fixes applied, 0 errors — every fix logged, auditable, reversible
The ROI calculation is straightforward. The platform runs automatically with near-zero maintenance. The traffic increase translates directly into revenue for a store that's been selling online for almost three decades. And the trend data keeps accumulating, making each week's decisions better informed than the last.
What I'd tell another Shopify merchant
If you're managing Google Shopping manually — logging into Merchant Center, scrolling through disapprovals, fixing one product at a time — you're doing it wrong. Not because you're lazy, but because manual processes can't keep up with a catalog of thousands of products across multiple channels. The feed changes constantly. Products get added, archived, updated. Prices shift. Inventory fluctuates. Every change is an opportunity for something to break.
The right approach is exactly what this platform does: automate the upstream fixes, let Google re-crawl, measure the downstream impact, and repeat. The technology isn't exotic — Python scripts, SQLite, Shopify's GraphQL API, Google's Content API and Analytics API. What matters is the architecture: fix the source, measure the effect, track the trends, and never manually fix the same class of problem twice.
If your Google Shopping performance has plateaued — or if you're spending hours a week on feed management that should be automated — this is exactly the kind of system I build for clients. The audit suite is tailored to your catalog, your product categories, your business rules. And once it's running, it just runs.
This platform is one of the automations I cover in 5 Shopify automations that save hours every week — check it out for more patterns you can apply to your store.
Keep reading
More on Google Shopping and Automation.
Need help with your Shopify store?
I build custom Shopify solutions, AI automations, and integrations that save real time and drive revenue. Let's talk about your project.
Get in touch