Google Shopping Product Feed: Setup, Optimization, and Multi-Channel Sync Guide
A Google Shopping product feed is a structured data file that sends your product details, including title, price, availability, image, and description, to Google Merchant Center. Google reads that file to decide which of your products to display in Shopping ads and free listings, and whether they meet its requirements. Feed quality and accuracy determine whether customers see your products or whether your listings never appear at all.
If you sell across multiple channels, that accuracy problem compounds quickly. Your Shopify store updates a price. Your WooCommerce store doesn't. Google Merchant Center pulls from the old data. Now your Shopping ad shows a price nobody honors, and Google may suspend the item. This guide covers how to build a clean product feed, what Google requires, how to avoid the most common disapprovals, and how to keep the underlying data accurate when you're selling on more than one channel.
What Is Google Merchant Center and How Does It Use Your Feed?
Google Merchant Center is the platform where you upload and manage your product feed. Think of it as the inbox Google uses to receive your product catalog. Once your feed is live, Google uses the data to power Shopping ads (paid placements in Google Search and the Shopping tab), free product listings (organic placements for eligible products), and Shopping surfaces on YouTube and Discovery.
Your feed is not a one-time upload. Google re-fetches it on a schedule, typically every 24 to 48 hours, which means stale data in your store will eventually appear in your ads. If your inventory changes faster than your feed refreshes, you'll serve impressions for products you can't actually ship.
Required Attributes in a Google Shopping Product Feed
Google has specific required and recommended attributes. Missing or incorrect data causes disapprovals.
Required attributes:
- `id`: a unique identifier for each product variant. SKU codes like TSHIRT-BLU-M work well here.
- `title`: the product name, up to 150 characters. Include the most important details early, including brand, product type, and key variant attributes like size or color.
- `description`: plain-text copy up to 5,000 characters. Focus on what the customer needs to know: material, dimensions, use case.
- `link`: the URL of the product page. It must match exactly what's live on your site.
- `image_link`: a direct URL to a clean product image, minimum 100x100 pixels.
- `price`: must match the price on the landing page exactly, including currency.
- `availability`: one of `in stock`, `out of stock`, or `preorder`. This updates when your feed refreshes.
- `condition`: `new`, `used`, or `refurbished`.
- `brand` and `gtin` (Global Trade Item Number): required for most branded products. Missing GTINs are the single most common reason for item-level disapprovals.
Strongly recommended (and required for specific categories):
- `product_type` and `google_product_category`
- `color`, `size`, and `material` for apparel
- `mpn` (Manufacturer Part Number) when GTIN is unavailable
If you're selling products with variants, submit each variant as a separate item with its own `id`, and use `item_group_id` to tie variants together. A jacket that comes in four sizes and three colors needs 12 separate feed entries.
How to Submit Your Product Feed to Google Merchant Center
Four methods exist for getting data into Google Merchant Center.
Scheduled fetch. You host a feed file (XML, CSV, or TSV) at a URL Google can access, and Google fetches it automatically on your chosen schedule. This is the most common setup for mid-size brands with a defined catalog.
File upload. You upload the feed file manually via the Merchant Center interface. Simple to start, but you're responsible for keeping it current.
Content API. You push product data to Google programmatically via their API. This gives you real-time control and is the right approach for catalogs with frequent price or inventory changes.
Website crawl. Google crawls your site and extracts product data from structured markup. Useful as a supplement but not reliable as your primary feed source.
For most growing brands, a scheduled fetch works well. For brands running frequent promotions or managing large SKU counts, the Content API gives you tighter control over when updates land.
Common Feed Errors That Cause Disapprovals
Three issues account for the majority of Google Shopping disapprovals.
Price or availability mismatch. This happens when the price in your feed doesn't match the price on your product page. Google checks both. If they don't align, your listing gets flagged. This is especially common during flash sales: you update your Shopify price, but the Google feed hasn't refreshed yet, so the ad shows the old number.
Missing or incorrect GTINs. Google requires GTINs for any product with a barcode. Submitting incorrect GTINs, or leaving the field empty for a product that has one, triggers item-level disapprovals. If you're a manufacturer with your own products that have no GTIN, set `identifier_exists` to `false` so Google understands the omission is intentional.
Policy violations. These include prohibited products, misleading descriptions, and images that don't meet quality standards, such as watermarks, text overlays, or images that don't show the actual product. Policy violations can escalate to account-level suspensions if left unresolved.
Check your Merchant Center Diagnostics tab regularly. It breaks down errors by type and volume so you can prioritize fixes systematically.
Google Shopping Feed Optimization
A feed that meets requirements is a floor, not a ceiling. Optimized titles and rich data improve which queries your products match and what click-through rates look like.
Title structure matters. Google reads your title to determine query relevance. For apparel, a format like `[Brand] [Product Name] [Color] [Size]` performs well. For electronics, lead with brand and model number. Don't keyword-stuff, but put the most descriptive terms first.
Use high-quality images. Images drive click-through rates in Shopping results. White or light-gray backgrounds, clear product isolation, and no text overlays all help performance. The minimum is 100x100 pixels, but 800x800 or larger gives Google more to work with.
Submit secondary images. The `additional_image_link` attribute lets you include lifestyle or angle shots that appear in expanded product panels. Buyers often need more than one view.
Keep descriptions factual. Write them like a product spec, not marketing copy. Describe material, dimensions, and use case. Vague claims Google can't verify add no ranking value.
Populate optional attributes for apparel and home goods. Size, material, pattern, age group, and gender help Google match your products to relevant searches and unlock additional filters in the Shopping tab.
Why Multi-Channel Brands Struggle to Keep Feeds Accurate
The real challenge with Google Shopping product feeds isn't the initial setup. It's keeping inventory, price, and availability accurate after you're live, particularly when you're selling on multiple platforms at once.
Consider a common scenario. You sell a jacket on Shopify, Amazon, and your own WooCommerce site. You have 40 units in stock. A flash sale on Amazon moves 38 overnight. Your Shopify store still shows 40 available. Your Google Shopping feed, which pulls from Shopify, shows 40 in stock. You're now running ads for a product you can't fulfill, which leads to cancelled orders and buyer complaints.
The root cause is that each channel holds its own inventory count. Without a system that writes a single source of truth across all of them, counts diverge the moment a sale happens on one channel.
Pricing gets messy for the same reason. A promotional discount applied manually on one platform doesn't automatically propagate to others. Your Google Shopping feed lands on an outdated price. You get the click, the buyer lands on your Shopify page, and the price they see is different from the ad. Google flags the mismatch, and your impressions drop.
If you're managing retail operations across multiple channels, this pattern shows up at almost every growth stage. The solution isn't channel-by-channel manual updates; it's centralizing inventory and pricing data upstream.
How Centralizing Inventory and Order Data Keeps Your Feed Current
When inventory counts live in one system and sync outward to each channel, the data feeding into Google Merchant Center stays accurate without manual work.
OmniOrders acts as the order management system at the center of your operations. Every order across Shopify, Amazon, eBay, Walmart, WooCommerce, BigCommerce, and other connected channels flows through OmniOrders. When an order arrives from any source, inventory counts update across all connected channels simultaneously.
That means your Shopify store (which feeds Google Merchant Center) reflects current stock levels because OmniOrders' real-time multi-channel inventory sync is writing the same count to every connected channel. Sell 38 jackets on Amazon, and your Shopify inventory adjusts right away. Your Google Shopping feed, when it refreshes, picks up the correct availability.
The same logic applies to pricing. Update a price in OmniOrders and push it to Shopify and WooCommerce, and the feed Google reads stays aligned with what's on your product pages.
For brands managing multiple warehouse locations, OmniOrders tracks inventory per location and calculates availability per channel based on which locations serve each market. That matters for availability accuracy, since a product can be in stock at one warehouse but allocated differently across channels. Accurate stock-level discipline starts with reliable counting practices; this guide on inventory counting methods covers the most common approaches and where each one fits.
To connect your sales channels and start syncing data, the integrations overview walks through the setup process for each supported connector. Google Shopping is available as an on-request integration; the team typically delivers custom connectors within a week.
You can also build automation rules to handle operational logic without manual intervention. For example: when stock across all locations drops below 5 units for SKU JACKET-BLK-M, automatically pause the listing on all channels. Rules like that prevent feed data from lagging behind real inventory conditions, so your impressions never run on products you can't ship.
Keep Your Feed Accurate Without Manual Updates
A well-maintained Google Shopping product feed brings in qualified traffic. The setup isn't complicated, but keeping it accurate as you scale across channels is where most brands run into trouble. Price mismatches, stale inventory counts, and disapprovals all trace back to the same root cause: product data living in silos.
OmniOrders centralizes your orders, inventory, and fulfillment across every channel you sell on, so the data flowing into Google Merchant Center and your other storefronts stays consistent without manual reconciliation. Start your free OmniOrders trial and connect your first channel in minutes.
Frequently asked questions
What is a Google Shopping product feed?
A Google Shopping product feed is a structured data file you submit to Google Merchant Center containing product details such as title, price, availability, GTIN, and image URL. Google reads this file to determine which of your products to display in Shopping ads and free listings, and whether each product meets its listing requirements.
What attributes are required in a Google Shopping product feed?
The required attributes are id, title, description, link, image_link, price, availability, and condition. Most branded products also require a GTIN (barcode number). Additional attributes like color, size, and google_product_category are required for specific product categories, including apparel and footwear.
Why does my Google Shopping feed keep getting disapproved?
The three most common causes are price mismatches between your feed and your product pages, missing or incorrect GTINs, and images that don't meet Google's quality standards (watermarks, text overlays, or images that don't show the actual product). Check the Diagnostics section in Google Merchant Center to see which attributes are triggering disapprovals and in what volume.
How often does Google Merchant Center update product data from my feed?
With a scheduled fetch, Google re-crawls your feed URL every 24 to 48 hours by default. You can also trigger a manual re-fetch in Merchant Center, or use the Content API to push updates in real time. For brands running frequent promotions or with fast-moving inventory, the Content API is the more reliable option.
How do I keep my Google Shopping feed accurate across multiple sales channels?
Centralize your inventory and pricing in a single platform, then sync outward to each channel. When your order management system updates inventory counts every time an order arrives on any channel, the storefront connected to Google Merchant Center always reflects accurate stock levels. Manual channel-by-channel updates introduce lag and price mismatches that trigger disapprovals and lead to cancelled orders.
Start your 14-day free trial
See how OmniOrders connects your sales channels, 3PLs, and carriers into one operational layer — free for 14 days, no credit card.