Author: Mary Albright
Last updated: 13/09/2023
According to Google, the “feed is a file that contains a list of products you want to advertise through the Merchant Center.” This feed is what allows e-commerce shops to advertise individual SKUs via Google Shopping Ads. Other platforms like Meta also utilize feeds for their in app shopping experiences and they work in a similar way - you have a list of products, then you add attributes to them (name, color, size, price etc).
Market intelligence platform, Adthena, claimed Google Shopping ads “generated 85.3% of all clicks on Adwords or Google Shopping campaign ads between January to February 2018.“ Plus, according to a study by Kevin Indig, "Google shows PLAs [Product Listing Ads] for 83.83% of keywords, a solid 20% percentage points more than regular top ads." So we know that Google is placing a great deal of importance on feed data from Google Merchant Center.
As an SEO, you might not be responsible for running ad campaigns via the shopping feed, but you should be aware of what’s going on in that department for three main reasons:
First, organic listings. You’re likely aware that Google displays organic (or “free”) listings for products. I’ve seen these product packs push regular organic results further and further down the page over the years. These often come from the data that you send directly to Google in your shopping feed. If you’re just starting to dip your toe in the magical world of Merchant Center, this is where you should start. See if your paid marketing friends have turned on free listings, and check out how they are performing in the Merchant Center. Additionally, Merchant Listings reports (including reports on free listings) can be viewed via Google Search Console.
Second, everything that you send through the shopping feed gets passed to regular Googlebot. This is something I learned the hard way after doing deep dives into log files and crawl stats of a few websites with messed up feeds. The short story is this: it appears that every URL you send to the shopping feed, gets assessed by the AdsBot for accuracy (Google wants to make sure you have the right price, image, availability before they send your ad to their users). Then, after AdsBot does its thing, it passes those URLs over to regular Googlebot and the process of crawling, rendering, indexing and ranking begins. So at the very least, you’ll want to make sure that your paid marketing friends are sending the correct canonical URL to the shopping feed.
Thirdly, the future SERP, ridden with Search Generative Experiences, seems to be heavily skewed towards information sent to Google through product feeds. Google I/O 2023 came in hot, displaying what AI could do for search and as many SEOs noted, transactional queries that once would’ve triggered results pages littered with affiliate articles, now generate short responses with direct links to products. Those product cards come from data in the Merchant Center feeds. It’s unclear what proportion will be ad-driven vs organic but it is clear that your feed’s data will be paramount.
Keep in mind that as an SEO overseeing multiple marketplaces, my gripes with Merchant Center are very unique. With products getting bought and sold every minute, prices and availability fluctuate constantly creating issues that other sites probably do not encounter.
With a very large, international site, pricing can get tricky. Are you using the same landed price in your schema, on your PDP and in your feed? Does each endpoint use the same currency conversion rates? Does each price include the same things (shipping, handling etc)?
A pricing mismatch can make for an awful user experience, and it’s therefore one of the primary things that Googlebot checks when crawling your feed. During internationalization projects, I’ve also seen issues where the currency conversion calculations are different for the feed, schema and on page size picker. This can cause lots of issues. As a rule of thumb, you want to make sure that your product detail page (or PDP), your feed, and your schema all have the same price for each page size, no matter where you crawl from.
The cadence at which you submit your products to the Merchant Center is important. You don’t want to submit products saying they are “available” when they’ve all sold out. Adsbot will be crawling your schema and product page to check if the product is indeed available and if you’ve submitted unavailable products you can encounter violations. Not to mention, this is also a terrible user experience and can impact site quality.
This is an annoying one. I’ve seen Google do all kinds of funky things with images when there are different URLs submitted in the feed from the product page and the schema. At the very least, you’ll want to make sure that the image URLs you submit in the feed are the same as the ones displayed on your product page. Nobody wants to see a red t-shirt and then end up on a page about a green t-shirt! In the strangest scenario, I’ve seen Googlebot pull images from JSON files in the page and display those for free listings (which caused image mismatches) so it really is the wild west out there!
Much like the product descriptions on your product detail pages, you can optimize the descriptions that you send in Google Merchant Center. Unlike a meta description, you technically have 5,000 characters to share information about your products.
Google recommends including: size, material, age range, features, tech specs, shape, pattern, texture, design and variant information. If the site you’re working on has strict rules around verbiage for product descriptions you might be able to do more optimizations within the feed descriptions which can help you show up for free listings. Don’t waste your time trying to keyword-stuff the description though as Google has strict guidelines around editorial practices. I also wouldn’t recommend spending too much time optimizing individual descriptions if you have a large site, because Google only shows one competitor’s description in the free listings (with no attribution!).
This is by far the most important issue in my opinion, as I’ve seen so much go wrong with URLs that are passed into the feed. One website I was auditing created a parameterized URL system for their feed. It had customizations for country, currency, language and variant. Sounds great in theory, but these URLs started to outrank their root URLs in the US (their main client base) because Google Merchant Center passes each URL to regular Googlebot after AdsBot has done its verification. The site had some sort of auto-IP detection for location so when Googlebot crawled each parameterized URL they saw the same US-focused content (because Googlebot primarily crawls from the US). As a result, a product that they really should be ranking organically on page 1 for has been stuck on page 2+ with different URLs ranking every month or so. Even though they had correctly implemented canonicalization, Google chose to ignore the canonical URL.
In general for internationalization, I’ve seen better success launching ads in tandem with hreflang instead of opting for a parameterized system like this website did.
Even if you don’t have a complex international launch on the horizon, you should be paying attention to the URLs submitted to the feed. I have seen some companies submit shortened URLs to the feed that get appended with tracking codes, these URLs then redirect to the regular URL (with those tracking codes), before finally being canonicalized to the regular URL. In a situation like that, AdsBot crawls the submitted URL then passes it off to Googlebot which then has to follow that whole redirect/canonical chain before deciding if it should rank your canonical URL organically. At scale, this kind of thing can be a huge waste of crawl budget, plus, it’s easy to make canonicalization errors in a situation like this.
Recently, Google added the optional [canonical link] element to their feed documentation. This feature allows you to submit the canonical link that you want Google to rank organically even if you are handcuffed to another URL scheme for the [link] element in Google Merchant Center.
Most of the issues I’ve had as an SEO with Google Merchant Center came when clients decided to go international. Outside of the issues already discussed, I found out the hard way that you are required to have a CSS (Comparison Shopping Service) vendor to qualify for Free Listings in the European Economic Area, UK and Switzerland*. Not all CSS vendors support free listings, so make sure to check with your paid marketing friends before a vendor is chosen.
*See: https://support.google.com/merchants/answer/6149970, and https://support.google.com/merchants/answer/7387995?hl=en for further information.
First and foremost, Google will tell you that you have these issues. They’ll often give you an example in the Merchant Center. But as an SEO you can go a level further and use Screaming Frog custom extractions to monitor and QA your team’s feeds before they go live.
After some trial and error we created a mini SEO QA of the feeds that included:
This methodology allowed us to catch errors before submission. There are countless other violations that I’ve also helped investigate by using Screaming Frog custom extractions.
So now that you’ve heard of all the terrors that can befall you as an SEO regarding Google Merchant Center feeds, here’s how to start!
At the end of the day, the Google Shopping feed is probably not your responsibility as an SEO and after reading all my woes about them, maybe you’re scared. But, getting involved in Google Shopping has helped me prove my worth as a holistic, data driven marketer. With Google Shopping organic listings, you can show pretty immediately what effect your work has. And even more powerful, is your ability to identify feed violations for your paid marketing counterparts. Crawling URLs with custom extractions, different user agents, and VPNs will often help you QA errors with the feed faster than most paid marketers will be able to decipher Google Shopping error messages. In a world where people speculate the “death of SEO” every other day, let this be your super power my friend! Do not go gentle into that good night.