Google for WooCommerce products not syncing? Find the actual error

The dashboard says Active 0, Not Synced 262. That's it. No error, no link, no reason. The plugin does log the real errors. It just puts them in four places the dashboard never points to.

This covers the official Google for WooCommerce plugin, which was called Google Listings & Ads until 2024. Same plugin, same hiding spots.

1. Check Merchant Center first, not WordPress

The per-product reasons usually live on Google's side. Log in at merchants.google.com and open Products → Diagnostics (on newer accounts it's under "Product issues"). This page lists item-level problems with the product name attached: missing shipping, missing GTIN, mismatched price, disapproved image, all of it.

What good looks like: your products are listed, some with warnings. What bad looks like: the list is empty. Empty means the products never left your site, so the problem is in WordPress. Keep going.

2. Look at Action Scheduler, the sync's real engine

The plugin doesn't sync products directly. It queues jobs in Action Scheduler and those jobs do the work. When sync "silently does nothing," a job is usually failing with a real error message attached.

Go to WooCommerce → Status → Scheduled Actions. Search for gla. Click the "Failed" filter at the top.

What good looks like: a steady trickle of Complete gla_ jobs. What bad looks like: Failed jobs, or thousands of Pending ones stacking up. Hover a failed row and click "View" to read the error. That text is the closest thing this plugin has to telling you what's wrong. If Pending is in the tens of thousands, your cron is stalled or something is re-queueing the whole catalog on a loop. Both are fixable, and now you know which page to watch while you fix them.

3. Read the plugin's own log file

Go to WooCommerce → Status → Logs and pick the source starting with google-listings-and-ads. API rejections land here, including the ones the dashboard swallows.

Look for lines mentioning 400, 401, 403, or "invalid_grant". A 401 or "invalid_grant" means the Google connection itself is broken. Reconnect it under the plugin's Settings, and note that changing your Google password or removing site access from your Google account kills the old token without warning.

4. Check per-product visibility, the quiet opt-out

Every product has its own sync setting, and bulk edits or imports flip it more often than people expect.

Open Products → All Products and look at the Google Listings column (turn it on under Screen Options if hidden). Products set to "Don't Sync and Show" are excluded on purpose, or by an import that had no opinion and defaulted wrong. On a single product it's on the edit screen under Product data, as "Channel visibility."

Two more quiet exclusions worth ruling out: products with no price never sync, and drafts never sync. If your Not Synced count roughly equals a recent CSV import, this is almost always it.

5. Confirm the three-way account link is intact

The plugin needs three connections at once: your WordPress.com account, your Google account, and a Merchant Center account. If any one of them drops, sync stops with no banner in most views.

Open the plugin's Settings page and check that all connections show as connected. A common failure after a migration or a domain change: Merchant Center still has your site claimed under the old URL, and the claim silently fails on the new one. Re-verify and re-claim the site from the Merchant Center side, then reconnect the plugin.

6. Force a resync and watch it happen

Once you've fixed the cause, don't wait to find out if it worked. Edit any synced product and click Update. That queues a fresh gla_ job. Watch Scheduled Actions for it to complete, then check Diagnostics in Merchant Center a few minutes later.

For a full catalog resync, the blunt instrument is disconnecting and reconnecting the Google account in plugin Settings. Do that last, not first. It re-queues everything, and if the underlying error is still there you've just made 262 failures into 262 identical failures with fresh timestamps.

Why there's no error on the dashboard

The dashboard numbers come from a cached summary, not from the sync jobs. The jobs report their failures to Action Scheduler and the log file instead. Nothing joins the two up. That's the whole mystery. Once you know the real reporting lives in Scheduled Actions, the log source, and Merchant Center Diagnostics, this plugin stops being opaque.

One quiet tool, if you want it

Feed sync breaking is one of many store failures that don't show up on the surface. Store Guardian watches your WooCommerce store from the outside and emails you when orders stop, checkout breaks, or receipts stop sending. Free while in beta.

More guides

WooCommerce orders suddenly stopped? Work through these 7 checks

WooCommerce checkout not working: find the cause in 15 minutes

WooCommerce order emails not sending: fix it in 20 minutes