Google Shopping for Shopify: Feed Optimisation Guide That Actually Works
Google Shopping is the highest-intent acquisition channel most Shopify merchants underutilise. Customers searching for your products on Google are already in buying mode — they have commercial intent baked into the query. Yet the majority of Shopify stores I audit have product feeds riddled with disapprovals, missing attributes, and titles that actively work against them in the auction. The feed is the foundation. If your feed is poor, no amount of bidding strategy will save you.
I have built and optimised Google Shopping feeds for Shopify stores across multiple verticals — pet food, supplements, apparel, homeware. This guide covers what actually moves the needle, not the generic advice you will find in Google's own documentation.
Google Merchant Center Setup for Shopify
The first decision is how your feed reaches Merchant Center. You have three realistic options: Shopify's native Google & YouTube channel app, a dedicated feed management app like DataFeedWatch or Simprosys, or a custom feed built via the Shopify API. Each has trade-offs.
Shopify's native channel is the simplest but the least flexible. It pulls product data directly from your Shopify admin and maps it to Google's required attributes automatically. The problem is that it gives you very little control over title structure, product type taxonomy, or supplemental attributes. For stores with fewer than 200 SKUs and straightforward product data, it works. For anything more complex, it will hold you back.
A dedicated feed app sits between Shopify and Merchant Center. It lets you create feed rules — transform titles, map categories, override attributes per product or collection, and schedule feed refreshes. This is what I recommend for most stores. The cost (typically $30-$100/month) pays for itself within the first week through reduced disapprovals and improved ad relevance.
A custom API-built feed makes sense for large catalogues (10,000+ SKUs) or stores with complex variant structures. It requires developer time but gives you complete control over every attribute value and update frequency.
Feed Structure: Required vs Recommended vs Optional
Google's product data specification lists over 100 possible attributes. Most merchants focus only on the required ones and ignore the rest. That is a mistake. Google uses every populated attribute to match your products to search queries. The more relevant data you provide, the more queries you can appear for — and the more efficiently the algorithm can match your products to high-intent searches.
Products disapproved without these
Significant ranking impact
Competitive edge attributes
- id
- title
- description
- link
- image_link
- price
- availability
- brand
- condition
- google_product_category
- product_type
- gtin / mpn
- additional_image_link
- sale_price
- color / size / material
- shipping
- product_highlight
- product_detail
- custom_label_0-4
- energy_efficiency_class
- shopping_ads_excluded_country
- lifestyle_image_link
Populate all three tiers for maximum query coverage. Most Shopify stores only complete the required column.
Title Optimisation: The Single Highest-Impact Change
Product titles are the most important attribute in your feed. Google uses them as the primary signal for matching your products to search queries. The title that works on your Shopify product page is almost never the title you should use in your Shopping feed. Your site title is written for humans who are already on your site. Your feed title needs to compete for clicks in a search result alongside ten other products.
Google displays roughly 70 characters of your title in Shopping ads (up to 150 characters are indexed). Front-load the most important keywords. Every word after the 70-character mark is working for relevance but not for click-through rate.
Title optimisation formula
Front-load high-value keywords within the first 70 characters. Everything after is indexed but not visible in Shopping results.
A few title rules I enforce on every feed I manage. Never use all caps — Google may disapprove the product. Do not stuff promotional text like "Free Shipping" or "Best Seller" into the title — those belong in promotions or annotations. Include the variant-specific details (size, colour, count) in each variant's title, not just the parent product title. And never duplicate titles across variants. Each variant that has its own URL should have a unique, descriptive title.
The formula I use for most consumer goods is: Brand + Product Type + Key Differentiator + Size/Variant. For apparel, substitute colour and material for the differentiator slot. Test reordering these components — in some categories, leading with the product type (e.g. "Running Shoes Nike Air Max") outperforms leading with the brand, particularly for non-branded search queries.
Product Type vs Google Product Category
These two attributes confuse nearly everyone. They sound similar but serve completely different purposes. The google_product_category is a fixed taxonomy defined by Google — you select from their predefined category tree. It helps Google classify your product but has limited influence on which search queries trigger your ads.
The product_type is a free-text field that you define. This is your own taxonomy, and it directly influences query matching. You can (and should) be far more specific here than in the Google product category. Think of it as a keyword-rich breadcrumb trail for your product.
For a grain-free chicken dog food, the Google product category would be something like: Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Food. The product type should be much more specific: Dog Food > Fresh Dog Food > Grain-Free Chicken > Subscription Box.
Set both on every product. The Google product category ensures correct classification. The product type gives you control over keyword-level query matching. Most Shopify feed apps let you map product types from your collection structure, which is a good starting point but usually needs manual refinement for Shopping performance.
GTIN and MPN: The Identifier Problem
Google requires unique product identifiers (GTIN, MPN, or brand) for most product categories. If you sell products with barcodes (UPC, EAN, ISBN), you need to include the GTIN. If your products do not have a GTIN — which is common for custom, handmade, or white-label products — you must set identifier_exists = false in your feed.
The Shopify Barcode field maps to GTIN in most feed apps. If your barcode field is empty or contains internal SKUs (not real GTINs), you will get disapprovals. I see this constantly — stores enter their internal reference numbers in the barcode field, and the feed app dutifully submits them as GTINs, which Google then rejects because they do not exist in any global barcode database.
For stores selling branded third-party products: get the GTINs from your supplier. Products with valid GTINs receive priority in Shopping results because Google can cross-reference product data across multiple merchants, which increases their confidence in the listing. It is worth the effort to collect them.
Image Requirements That Catch People Out
Google's image policies are stricter than most merchants realise. The primary image must be at least 100x100 pixels (250x250 for apparel), with no watermarks, promotional overlays, or borders. The product should fill at least 75% of the frame. White or transparent backgrounds are preferred for non-apparel products but not strictly required.
Where Shopify stores commonly fail: using lifestyle images as the primary image. Google wants a clean product shot as image_link. Lifestyle images should go in additional_image_link. The algorithm uses the primary image for visual matching and comparison, so a clean product-on-white image outperforms a lifestyle photo in most categories.
Populate additional_image_link with up to 10 supplementary images. Include lifestyle shots, packaging, size comparison, and close-up detail images. Google Shopping now shows image carousels in some placements, and having multiple high-quality images increases your visual real estate in results.
Common Disapproval Reasons and How to Fix Them
Every feed audit I perform surfaces the same set of disapprovals. Some are quick fixes, others require structural changes to your product data. Here are the ones I encounter most frequently, ranked by how often I see them.
Price mismatch between feed and landing page
Feed price does not match the price shown on the product page. Often caused by currency conversion apps, geolocation redirects, or delayed feed syncs after price changes.
Invalid or missing GTIN
Internal SKUs submitted as GTINs, or GTIN missing for products that require one. Verify barcodes against the GS1 database or set identifier_exists to false.
Promotional overlay on product image
Watermarks, sale badges, "Free Shipping" text, or brand logos overlaid on the product image. Use a clean product photo and move promotional content to annotations.
Missing or incorrect shipping information
Shipping cost not configured in Merchant Center or feed. Set up shipping in Merchant Center settings or include per-product shipping attributes in your feed for variable rates.
Availability mismatch
Feed shows "in stock" but product page shows "out of stock" (or vice versa). Common after flash sales or inventory syncs. Enable automatic item updates in Merchant Center as a safety net.
These five issues account for roughly 80% of Shopping feed disapprovals across Shopify stores I audit.
Supplemental Feeds for Enrichment
Supplemental feeds are one of the most underused features in Merchant Center. They let you add or override attributes on your primary feed without modifying the primary feed itself. This is incredibly useful when your Shopify product data does not contain all the fields Google wants, or when you need to override feed app defaults for specific products.
Common uses: adding custom labels for campaign segmentation (e.g., labelling products as "hero", "clearance", or "margin-high"), overriding auto-generated titles with hand-optimised versions, adding product_highlight attributes that your feed app does not support, or correcting Google product categories for products the auto-categoriser misclassifies.
A supplemental feed can be as simple as a Google Sheet with two columns: id and the attribute you want to override. Upload it to Merchant Center, map it to your primary feed, and the supplemental values take precedence. I maintain supplemental feeds as Google Sheets for most clients — it gives the marketing team a way to adjust titles, custom labels, and product highlights without touching the feed app configuration.
One critical rule: supplemental feeds can only add or override attributes. They cannot create new products. The product must exist in your primary feed for the supplemental data to attach to it.
Feed Quality: Good vs Bad Examples
The difference between a high-performing feed and a mediocre one is not a single attribute — it is the cumulative quality across every product. Below is a side-by-side comparison of the same product with poor feed data versus optimised feed data.
Poor Feed Quality
Optimised Feed Quality
The same product, two completely different Shopping performance profiles. Feed quality compounds across your entire catalogue.
Performance Max Campaign Considerations
If you are running Performance Max campaigns (and most Shopify stores running Google Ads now are), your feed quality matters even more than in standard Shopping campaigns. Performance Max uses your feed data to generate ads across Search, Display, YouTube, Discover, and Gmail. A thin feed produces thin ads across all those surfaces.
Custom labels become critical for Performance Max. Use them to segment your catalogue into asset groups with different ROAS targets. A common structure I set up: custom_label_0 for product margin tier (high, medium, low), custom_label_1 for product lifecycle stage (hero, new, clearance), custom_label_2 for seasonality, and custom_label_3 for price bracket. This gives you the segmentation controls that Performance Max otherwise obscures.
Product highlights and product details (product_detail attribute) feed into Performance Max's text asset generation. If you do not provide them, Google will attempt to scrape your landing page to generate ad copy — and the results are usually generic. Providing structured product highlights gives you indirect control over what Performance Max says about your products.
One watch-out: Performance Max will spend on products with poor feed data if you let it. Regularly review the "Products" tab in your PMax campaign to identify low-performing products that are consuming budget without converting. Either improve their feed data or exclude them from the campaign.
Free Listings vs Paid Shopping Ads
Since 2020, Google has offered free product listings in the Shopping tab and across other Google surfaces. These are powered by the same Merchant Center feed as your paid Shopping ads. Opting in is straightforward — enable "Surfaces across Google" in your Merchant Center settings — and there is no downside.
Free listings drive meaningful traffic for many Shopify stores, particularly for long-tail queries where there is less paid competition. I have seen stores generate 15-25% of their Shopping-attributed revenue from free listings alone. The catch is that you cannot bid for position — Google determines placement based on feed quality, product relevance, and merchant trust signals.
This makes feed optimisation doubly important. The same feed improvements that boost your paid Shopping performance also improve your free listing visibility. Better titles, complete attributes, valid GTINs, and high-quality images help you rank higher in free listings without spending an additional penny.
For stores that are not yet running Google Ads, free listings are an excellent starting point. Get your feed approved, optimise your product data, and start generating Shopping traffic at zero cost. Once you have data on which products convert from Shopping, you can make informed decisions about which products to put paid spend behind.
Ongoing Feed Maintenance
A feed is not a set-and-forget asset. Product data changes, Google updates its policies, and your catalogue evolves. I schedule monthly feed audits for every client running Shopping campaigns. The audit covers: new disapprovals, attribute coverage rates, title quality for top-spending products, and custom label accuracy.
Set up Merchant Center email alerts so you are notified immediately when products are disapproved. A single policy change from Google can disapprove hundreds of products overnight. Early detection means faster resolution.
Monitor your feed fetch schedule. Most Shopify feed apps sync every 24 hours by default. If your inventory or pricing changes frequently, increase the sync frequency to every 6-12 hours. Price and availability mismatches between your feed and landing page are the fastest way to get products disapproved, and they erode Google's trust in your merchant account over time.
The Bottom Line
Feed optimisation is not glamorous work. It does not have the instant dopamine hit of launching a new ad creative or redesigning a landing page. But it is the single most leveraged activity you can do for Google Shopping performance. A well-optimised feed lowers your cost per click, increases your impression share, reduces disapprovals, and makes every pound you spend on Shopping ads work harder.
Start with titles — they are the highest-impact change. Then work through GTINs, product types, and image quality. Add a supplemental feed for custom labels and product highlights. Set up monthly audits to catch issues before they compound. The stores I see winning in Google Shopping are not necessarily the ones with the biggest budgets — they are the ones with the cleanest, most complete product feeds.
If your Shopping campaigns are underperforming and you suspect the feed is the problem, get in touch. A feed audit takes a day and will show you exactly where the gaps are and how to fix them.