AI shopping answers are built from product feeds. A practical product feed hygiene guide: title patterns, attributes, GTINs, variants, images, stock and price accuracy, and how sorting affects what gets picked.
When someone asks an assistant to find a product, the answer does not come from your carefully designed product page. It comes, in large part, from a spreadsheet: the product feed you send to Google Merchant Center, Meta, and whichever other channels are connected to your Shopify store. Feeds were built for shopping ads. They have quietly become the most machine-readable description of your catalogue that exists, and the AI systems that recommend products lean on them heavily.
This is a practical guide to keeping that feed clean. Nothing here is clever. It is the set of habits that decide whether your product is a candidate at all when a machine is shortlisting, and whether it stays one after the first customer buys.
Titles: the pattern that works
The title is the single most important field in the feed, and it is usually the messiest, because it was written for a product page where the image does most of the work. In a feed, the title has to carry the whole identity of the product on its own.
The pattern that consistently gets matched is: brand, product type, key attribute, distinguishing attribute, size or variant. For a jewellery store: '18k Yellow Gold Solitaire Ring, 0.5ct Lab-Grown Diamond, Size 12' with the brand in front. For apparel: 'Brand Men's Slim Fit Cotton Oxford Shirt, Sky Blue, 40'. The order matters because the front of the title is weighted more heavily and gets truncated last.
- Put what the thing is within the first four or five words. 'Elegant Everyday Essential' says nothing; 'Silver Hoop Earrings' says everything.
- Include the attribute a shopper filters by: metal, material, capacity, fabric, size, colour, quantity in a pack.
- Drop marketing adjectives, exclamation marks and 'free shipping'. They waste characters and can trigger disapprovals.
- Keep the title identical across the feed, the page H1 and the Product schema. Divergence looks like two different products.
- Do not append the variant to the product title on the page; do append it in the feed, where each variant is its own row.
Attributes: completeness beats cleverness
Every attribute you leave blank is a question the machine cannot answer about your product, which means a query that includes that attribute cannot match you. In our experience the fields most often missing on Shopify feeds are colour, material, size system, age group, gender and, for anything physical, weight and dimensions.
Shopify's Google and YouTube channel maps many of these from product options and metafields, but only if the options are named in a way it recognises and the metafields are filled. A store whose size option is called 'Choose' and whose colour lives in the title will export a feed with both fields empty. The fix is usually to rename options to 'Size' and 'Color', add metafields for material, gender and age group, then map them once in the channel settings.
- Product type and Google product category should both be set, and be specific: 'Apparel & Accessories > Jewelry > Rings', not 'Jewelry'.
- Material and colour should use plain, common words. 'Rose gold', not 'Blush'.
- Condition, age group and gender are required in several categories and free to fill.
- Shipping weight enables accurate delivery quotes, which agents compare.
- Custom labels are for you: use them to tag margin bands, seasonal lines or clearance so you can steer campaigns and reports.
GTIN, MPN and brand: identity for machines
A GTIN, the number under the barcode, is how every system in the world agrees that two listings are the same product. When you supply it, your product can be matched to reviews, price comparisons and competing offers. When you do not, the machine has to guess from the title, and it guesses conservatively.
If you make your own products, you may not have GTINs, and that is fine as long as you say so: mark the product as having no identifier rather than leaving the field empty or, worse, inventing a number. Supply the brand and an MPN or SKU instead. Reselling a branded product without its GTIN, on the other hand, is a common cause of disapprovals and of being outranked by an identical listing that did include it.
On Shopify the GTIN lives in the variant barcode field. Fill it per variant, not per product, because each size and colour usually has its own.
Variants: one row per buyable thing
The rule is simple. Every combination a customer can actually put in a cart should be one row in the feed, with its own identifier, price, stock and, where it differs, image. Every row should share an item group ID so the machine knows they belong together.
Where this goes wrong on Shopify is the catalogue that uses one product with a 'Size' option covering ten sizes, of which four are actually stocked. The feed then advertises ten buyable rows, six of which are not. Either unpublish unstocked variants from the channel or make sure their inventory is tracked and reads zero. Made-to-order items need a realistic availability and lead time, not an 'in stock' flag.
- Use Shopify's options for real purchase choices only. Do not encode 'gift wrap' or 'engraving' as variants.
- Give colour variants their own images; the feed will use them and so will the assistant when it shows the shopper a picture.
- Keep item group IDs stable across re-imports. Changing them resets the product's history in the channel.
Images: what gets rejected and what gets picked
Feeds have hard image rules, and the assistants inherit them. The main image must show the product itself, on a plain background, without overlaid text, logos, watermarks or promotional badges. Lifestyle shots and detail shots belong in additional image fields, where they help conversion but do not risk rejection.
- Minimum size requirements are generous, but resolution below roughly 800 pixels on the short side looks poor when an assistant renders a card.
- No 'Sale' or 'Best Seller' stickers baked into the image. Promotions belong in the sale price field.
- For variants, the image should show that variant. A red shirt row pointing at a blue shirt photo will be flagged.
- Consistent framing across a category helps matching and looks intentional in a comparison list.
Stock and price: the two fields that get you dropped
Everything above decides whether you are a candidate. Stock and price decide whether you stay one. A feed that claims availability the store cannot honour, or a price that differs from the checkout price, is the fastest route to disapprovals in Merchant Center and, we would expect, to losing the trust of any agent that recommended you and was embarrassed by it.
On Shopify the mechanics are usually fine: the channel syncs inventory and prices frequently. The problems are upstream. A warehouse system that updates Shopify once a night. A sale that starts in the theme at midnight but reaches the feed hours later. Discount codes that make the effective price lower than the listed one, invisible to any system reading the feed. GST-inclusive prices on the page and exclusive prices in a manually built supplemental feed.
- Use Shopify's compare-at price for sales so the feed carries both regular and sale price automatically.
- Schedule sale start and end in one place, and check the feed shows the change within the hour.
- If you rely on checkout discount codes for festive pricing, understand that machines comparing on price will not see it.
- Display prices tax-inclusive everywhere, consistently, and make the checkout total match.
- Track inventory on every sellable variant. Untracked inventory reads as always available.
How sorting and merchandising interact with the feed
It is easy to think of the feed and the storefront as separate worlds. They are not. Collections in Shopify can be published to sales channels, so collection membership shapes which items are grouped and highlighted. More directly, the landing page an assistant or an ad sends the shopper to is often a collection, and if that collection leads with sold-out or off-topic products, the feed's promise is broken at the first click.
The practical rule is to keep the feed and the collections telling the same story: in-stock products with complete data at the front, clearance and thin-data products further back. That is a merchandising job, and it has to run continuously because stock and demand change daily. It is the exact problem we built SellRank at LeelaRam Technologies to solve, writing a stock-aware, demand-aware order into Shopify's own sort so that the page a machine lands on is the page you meant it to see.
One more interaction: custom labels in the feed and tags in Shopify can mirror each other. If your top products by margin carry a tag, the same products can carry a custom label, and both your sorting rules and your campaigns can target the same set.
A monthly hygiene routine
- Open Merchant Center diagnostics and clear every disapproval and warning. Treat warnings as tomorrow's disapprovals.
- Export the feed and sort by empty fields. Fill the five biggest gaps.
- Spot-check twenty products: does the feed price equal the page price equal the checkout price?
- Check that every variant with zero stock reads as out of stock in the feed within an hour of selling out.
- Search for your own products in Google Shopping and in one assistant. Note what is shown, what is missing and what is wrong.
- Before festive campaigns, do the whole list twice: once when the sale is scheduled and once the morning it goes live.
None of this is glamorous. It is also the part of AI shopping visibility that is entirely within your control, which is more than can be said for most of it.
