Your WooCommerce Product Has Two Performance Reports

April 13, 2026
by Cherry Rose

Your WooCommerce product got 3,000 Shopping impressions last month. 40 clicks. 2 purchases. Now tell me: is that a listing problem or a product page problem?

Google Merchant Center knows the impressions and the clicks. GA4 knows the product page views and the purchases. Neither knows what the other saw—and 67% of data professionals report they cannot trust their analytics data for actual business decisions (Precisely / Drexel University, 2025) precisely because these two data sources are never combined.

They Have Never Been in the Same Room

Every WooCommerce store running Google Shopping is producing two separate product performance reports every single day. The first lives in Google Merchant Center. The second lives in GA4. They track the same products, the same customers, the same journeys—but they cover different stages of the funnel and they live in completely separate systems with no automatic connection between them.

Google Merchant Center owns the Shopping discovery stage: how many times your product appeared in search results (impressions), how many people clicked the listing, and what your click-through rate is. It sees the product before the customer reaches your site.

GA4 owns the on-site stage: how many people viewed the product page, added it to cart, and completed a purchase. It sees the product after the customer arrives. GA4 never saw the 3,000 impressions. Merchant Center never saw what happened on those 40 product page visits.

The most important product optimisation question in WooCommerce ecommerce—should I fix the listing or the page?—cannot be answered from either system alone.

What Each System Actually Measures

Merchant Center’s Product Performance report gives you impressions, clicks, click-through rate, conversions (if Google Ads conversion tracking is enabled), and revenue as Google Ads attributes it. Its native view of the world ends at the click—it knows your product was compelling enough to click, but not what happened next (Google Merchant Center Help, 2025).

GA4’s ecommerce event schema gives you: view_item (product page viewed), add_to_cart, begin_checkout, and purchase—along with the item_id that identifies which product triggered each event. GA4’s world begins when the customer lands on your site. It has no record of the impressions or CTR that preceded the visit (Google for Developers, GA4 Ecommerce Events, 2025).

Google does offer a Merchant Center to GA4 account link, but it only surfaces which campaigns drove sessions—not a product-level join between GMC impression data and GA4 product page conversion data (Google Merchant Center Help, 2025). The diagnostic you actually need requires building that join yourself.

You may be interested in: Your WooCommerce Bestseller List in GA4 Is Built on the Wrong Metric

The Four-Quadrant Diagnostic Every Product Needs

When you combine Shopping CTR from Merchant Center with on-site conversion rate from GA4, four product profiles emerge. Each has a different diagnosis and a different fix.

High CTR, Low On-Site Conversion Rate: product page problem. Your Shopping listing is working—enough people find the product compelling to click. But the page fails to convert them. The fix is on your site: product images, copy, pricing, reviews, or page speed. Investing in better Shopping creative here would be wasted money.

Low CTR, High On-Site Conversion Rate: listing problem. Your product page converts well once people arrive—but not enough people are clicking the Shopping listing in the first place. The fix is in Merchant Center: title optimisation, better hero image, pricing competitiveness, or review count. Redesigning your product page here would be wasted money.

Low CTR, Low On-Site Conversion Rate: both problems. The listing doesn’t compel the click and the page doesn’t close the sale. Start with the listing, since fixing CTR first will tell you whether the page problem is real or whether low-intent traffic has been masking acceptable conversion behaviour.

High CTR, High On-Site Conversion Rate: top performer. This product is working across the full funnel. Scale its impression share, allocate more budget, and use it as the benchmark for optimising everything else.

A good Shopping CTR benchmark for WooCommerce products is 2–5%, varying by category and competition (Catchr Google Merchant Center KPI Guide, 2024). Products with 4+ star review annotations in Shopping see 10–15% higher conversion rates—making review acquisition one of the highest-leverage levers that affects both quadrants simultaneously (Flomaticx, 2025).

Most WooCommerce stores investing in product page redesign do not know whether the problem is the page or the listing. They are optimising the wrong thing.

The Product ID Problem That Makes Combining Them Hard

Here is the technical obstacle that stops most stores from building this analysis: Google Merchant Center and GA4 identify the same product using different IDs by default.

Merchant Center uses the offer ID from your product feed—typically the WooCommerce SKU or a custom attribute you mapped when setting up your Shopping feed. GA4’s ecommerce events use the item_id parameter, which WooCommerce sets to the WordPress post ID by default.

Post ID 4821 in GA4. SKU “TSHIRT-BLK-M” in Merchant Center. Same product. Two completely different strings. No automatic join is possible between the two datasets without resolving this mismatch first.

Performance Max makes this more consequential than ever. PMax draws product signals from both the Merchant Center feed and GA4 conversion data simultaneously for automated optimisation (Google Ads Help, 2025). When the two systems use mismatched product identifiers, PMax cannot accurately connect Shopping performance to conversion performance for the same product—and the automated bidding it trains on is degraded as a result.

You may be interested in: Your WooCommerce Variable Products Are Hiding Your Best-Selling Items in GA4

Solving the Identifier Gap and Building the Analysis

The fix has two components: align the product identifiers, then build the join.

On the identifier side, the goal is to ensure your GA4 purchase events send item_id values that match the offer IDs in your Merchant Center feed—whether that is the WooCommerce SKU, a GTIN, or a custom feed identifier. This standardisation is straightforward for simple catalogues but becomes unreliable for variable products, or stores where SKU values change with inventory updates.

Server-side event capture solves the reliability problem. When purchase events are sent via server-side pipeline rather than browser-side JavaScript, the item_id is pulled directly from WooCommerce’s order data—where the SKU lives alongside every order line item—rather than from whatever the front-end layer happened to expose at checkout. The identifier in the event matches the identifier in the feed, consistently, regardless of theme or plugin stack.

On the reporting side, BigQuery is what makes the join practical. Merchant Center exports product-level performance data to BigQuery. GA4 streams purchase events including item_ids to BigQuery. With aligned identifiers in both datasets, a single SQL query produces the four-quadrant matrix: CTR from GMC’s export tables, on-site conversion rate from GA4’s purchase events, joined on the shared product identifier.

Transmute Engine™ is a first-party Node.js server that runs on your subdomain (e.g., data.yourstore.com). The inPIPE WordPress plugin captures purchase events from WooCommerce order hooks—including the SKU-level item data—and sends them via API to the Transmute Engine server, which streams them to BigQuery with standardised item_ids. That creates the consistent identifier layer that makes the GMC-GA4 product join reliable rather than approximate.

Key Takeaways

  • GMC and GA4 cover different funnel stages for the same product. Merchant Center sees impressions and clicks. GA4 sees product page views and purchases. Neither sees the full picture alone.
  • The four-quadrant matrix (CTR x on-site conversion rate) tells you where to invest. High CTR + low conversion = fix the page. Low CTR + high conversion = fix the listing. Both problems need different solutions and different budgets.
  • Product ID mismatch is the technical blocker. GA4 defaults to WordPress post IDs. Merchant Center uses SKUs or GTINs. Joining the two datasets requires resolving this mismatch at the event level before any analysis is possible.
  • Performance Max bidding degrades when identifiers don’t match. PMax uses both GMC and GA4 signals simultaneously—mismatched IDs mean the automated system cannot connect Shopping performance to conversion performance for the same product.
  • Server-side event capture + BigQuery is the reliable path. Pulling item_id from WooCommerce order hooks server-side ensures SKU-level consistency—enabling a clean product-level join without manual reconciliation.
How do I know if a WooCommerce product has a listing problem or a product page problem?

Export Shopping CTR from Google Merchant Center’s Product Performance report and on-site conversion rate (purchases divided by product page views) from GA4 for the same product over the same period. If CTR is above benchmark (roughly 2–5%) but conversion rate is low, the problem is on your product page. If CTR is below benchmark but conversion rate is strong, the problem is the Shopping listing. This diagnosis is only possible when both data sources are combined—neither answers it alone.

Why do Google Merchant Center and GA4 use different product IDs for the same WooCommerce product?

WooCommerce’s default GA4 integration sends the WordPress post ID as the item_id in ecommerce events. Google Merchant Center uses the offer ID from your product feed—typically the WooCommerce SKU or a GTIN. These two identifiers refer to the same product but are different strings, making an automatic product-level join between GMC and GA4 data impossible without first standardising what is sent in GA4 purchase events to match the feed identifier.

Does the native Google Merchant Center to GA4 account link give me product-level combined data?

No. The native account link shows which Shopping campaigns drove sessions to your site. It does not produce a product-level join between GMC impression and click data and GA4 product page conversion data. Building the four-quadrant diagnostic matrix requires either a manual export and spreadsheet join or a BigQuery integration where both data sources share a common product identifier.

How does product ID mismatch affect Performance Max campaign performance?

Performance Max uses signals from both Google Merchant Center and GA4 simultaneously to decide which products deserve more impression share and what bids to set. When the product identifiers in GMC and GA4 do not match, PMax cannot accurately connect Shopping performance (impressions, CTR) to conversion performance (purchases) for the same product—degrading the automated optimisation. Consistent item_ids across both systems is a prerequisite for PMax to learn correctly from your data.

The question is not which report to look at. It is how to put both in the same room. Start with the identifier—get your GA4 item_ids aligned with your Merchant Center feed—and the four-quadrant view of every product in your catalogue becomes possible. seresa.io

Share this post
Related posts