Products in Google Merchant Center expire 30 days after their last refresh, so an "expiring" warning means Google hasn't received updated data for those items recently and will remove them if nothing changes. The fix is to get your data source updating again, usually by fixing a broken scheduled fetch or app sync, and to schedule automatic updates at least weekly (ideally daily).
Expiring Products in Google Merchant Center: How to Fix It
How do I fix expiring products in Google Merchant Center?
What this issue means
Merchant Center is designed for live, current product data. Google states that all products expire from your account 30 days after the last refresh. Expiring products are still showing for now, but once they expire they drop out of Shopping ads, Performance Max and free listings. Seeing many items approaching expiry at once is a strong sign that your feed stopped updating, not that something is wrong with the products themselves.
Google can also refresh some products on its own when it can validate them from your website's structured data, but you shouldn't rely on that to keep your catalog live.
Why it happens
- A file feed was uploaded once, manually. One-time uploads aren't refreshed unless you upload them again.
- The scheduled fetch is failing. The feed URL changed, the file moved, the server blocks Google's fetcher, credentials for an SFTP or password-protected URL changed or the file is too large or malformed.
- The app or plugin stopped syncing. The Shopify Google & YouTube app was disconnected or lost permissions, or the WooCommerce plugin's sync cron jobs stopped running.
- A Google Sheets data source lost its schedule or the sheet owner left the organization.
- API updates stopped because a script, credentials or a deprecated API version broke.
- The
expiration_dateattribute is set to a date that has passed or is coming soon. This attribute can only shorten an item's life, not extend it past 30 days. - Products haven't changed, and your integration only sends changed items, so unchanged items never get refreshed.
How to fix it
- Check data source history. In Merchant Center, go to your data sources (under Products or settings in Merchant Center Next) and open the data source for the expiring items. Look at the last successful update and any fetch or processing errors.
- Fix failed fetches.
- Open the feed URL in a browser. It should download the current file without a login.
- If the host blocks Google's fetcher, allow it.
- Update SFTP or basic-auth credentials if they changed.
- Fix file formatting errors reported in the processing results.
- Set an automatic schedule. In the data source settings, set fetches to daily at a time after your store's file regenerates. Weekly is the bare minimum to stay within 30 days; daily also keeps prices and stock accurate.
- Reconnect your integration.
- Shopify (Google & YouTube app): Open the app and check the Merchant Center connection and product sync status. If it shows disconnected or errors, reconnect the Google account and confirm products are approved for the Google channel.
- WooCommerce (Google for WooCommerce): Check the plugin's product feed status. Sync relies on WordPress scheduled tasks; if WP-Cron is disabled or failing on your host, sync stops. A real server cron job can fix that. Third-party feed plugins need their regeneration schedule turned on as well.
- Google Sheets: Confirm the schedule is active and the sheet owner still has access.
- Merchant API: Make sure your code refreshes every product, not only changed ones, and that it's using a supported API version.
- Check
expiration_date. If you send it, make sure it's not set in the past or by mistake (for example, from a plugin mapping a sale end date). - Trigger a fresh update now. Use Fetch now (or the equivalent update option) on the data source, or resync the app, to reset the 30-day clock for every product.
How long until it's fixed
As soon as a fresh update processes, the expiry clock resets for every product in it, usually within minutes to hours depending on catalog size. If products already expired, they need to be resubmitted and go through processing again, which can take longer to return to full delivery. Fixing expiring items before they expire is much faster than recovering expired ones.
How to prevent it
- Never rely on one-time manual uploads for a live store.
- Schedule a daily fetch or use an app or API that updates continuously.
- Set up email notifications for data source failures in Merchant Center.
- Review data source status weekly, especially after hosting, plugin or platform changes.
- Run your file through the Merchant Center feed checker when fetches report errors.
Mercantads monitors data sources for clients so feeds never quietly stop updating. Learn about our Merchant Center services or our Google Shopping ads management.
Fix it yourself or have us fix it
| Do it yourself | Mercantads does it for you | |
|---|---|---|
| Find the cause | Follow the steps on this page | We audit your feed, store and account |
| Make the fix | Edit products, feed rules or site pages yourself | We fix it, in bulk where possible |
| Reviews | Request the review and wait | We prepare and submit the review for you |
| After it's fixed | Watch for it to come back | Ongoing feed monitoring so it doesn't |
Frequently Asked Questions
Related Google Merchant Center fixes
All Google Merchant Center fixes →Incorrect Language in Google Merchant Center: How to Fix It
ProcessingPending Initial Review in Merchant Center: What to Do
Pricing & availabilityAutomatic Item Updates Stopped in Merchant Center: Fix It
Account suspensionsCounterfeit Products Suspension in Merchant Center: Fix
Policy violationsDangerous Products Policy in Merchant Center: How to Fix It
Product dataExcessive Capitalization in Merchant Center Titles: Fix
Expiring Products in Google Merchant Center: How to Fix It
Tell us what Google Merchant Center is showing. We'll find the cause and fix it, so your products and ads get back to selling.