The Exact Product Attributes AI Agents Check Before Recommending You

Structured dataProductsShopifyAI search
by Anton S
Pastel 3D product box surrounded by floating price tag, barcode and checkmark labels

A shopping agent does not start by admiring your product. It starts by throwing things away.

Ask an assistant for a waterproof running jacket under $150 that ships to Ohio and the first thing that happens is a filtered query. Shopify's catalog search accepts price as a min and max in cents, ships_to as a country, and condition as an array of values. The Global Catalog adds filters for availability, merchant origin, ratings, and taxonomy attributes. Anything that fails a filter is gone before a model reads a word of your description.

So a blank field is not a weak signal. It is either a disqualification or an invitation for something else to guess on your behalf. Shopify says this plainly in its catalog docs: some fields "might be inferred by Shopify's AI and might not always be present or have varying accuracy depending on available product data," and inferred fields carry an Inferred label throughout the reference.

Here is what gets checked, roughly in the order that it costs you.

Price, and the currency next to it

The catalog returns price_range with minimum and maximum amounts in minor units plus a currency code, and every variant carries its own price. Google's merchant listing requirements make price and priceCurrency required, not recommended.

A missing price does not make you look premium. It makes you invisible to every budget-bounded query, which is most of them. A price that disagrees with your landing page or your checkout is worse, because Google's feed spec requires the number to match in all three places, and a mismatch is the kind of thing that gets a product suppressed rather than demoted.

This one is rarely broken on Shopify. It is on the list because when it does break, usually through a currency or market misconfiguration, nothing else you fix matters.

Availability that is actually current

Variants expose availability as an object: available, a status like in_stock, and a running_low flag. Google treats availability as recommended in structured data but required in a product feed, with values limited to in stock, out of stock, preorder, and backorder.

Two different failures live here. An out-of-stock product simply does not get recommended. A product that says in stock but is not gets recommended, wins the click, and then dumps the shopper on a sold-out page. The second one is more expensive, because you paid for the placement with your reputation.

If you sync inventory from a warehouse system on a nightly cron, that lag is now a customer-facing feature.

At least one image, and alt text that says something

Image is on every required list there is. Google's product feed requires image_link and is raising the minimum to 500x500 pixels on January 31, 2027, so undersized legacy images have a deadline attached.

Less obvious: media comes back with alt text attached. When an assistant summarizes a product it has never seen rendered, the alt text is part of what it has to work with. "IMG_4471.jpg" contributes nothing. "Navy quilted jacket, front view, hood down" contributes a description of the product.

GTIN and barcode, which is the one worth arguing about

Of everything on this list, this is the one I would fix first, and it is the field most likely to be sitting empty in a Shopify catalog right now.

Shopify's Global Catalog does not return a flat list of products. Results are "clustered by Universal Product ID (UPID) and include offers from multiple merchants." Read that again as a merchant. The same physical product from you and from four other stores gets grouped, and the agent compares offers inside the cluster.

Joining the right cluster is the entire question. A standard identifier is how a machine knows your listing and someone else's listing are the same object. Google's feed spec is explicit that gtin is strongly recommended when available and becomes required when a product has no brand and MPN pair to fall back on.

On Shopify, this lives in the Barcode field on the variant. That is it. There is no clever workaround, and there is no legitimate way to generate one: GTINs are issued through GS1, and a fabricated barcode is worse than an empty field because it collides with a real product somewhere.

If you resell branded goods, the manufacturer already has the GTINs and you are probably ignoring an email that contains them. If you manufacture your own, buying a GS1 prefix is a real cost with a real annual fee, and for a small single-SKU brand it may not pay for itself yet. That is a judgment call. What is not a judgment call is leaving the field blank on 900 resold products whose barcodes are sitting in a supplier spreadsheet.

Product type and category

Category is the cheapest signal you control and the one most often left on the theme default. The catalog returns categories with both taxonomy IDs and merchant categories, and agents can filter on taxonomy attributes directly.

Leave it blank and it does not stay blank. It gets inferred. A watch strap filed under "Accessories" competes against phone cases and keychains; filed against the right taxonomy node it competes against watch straps. Neither outcome involves a human making a decision about your product.

This is also the one gap that is safe to fill with AI assistance, because the answer is a classification, not a fact. Picking the correct node from a fixed taxonomy is pattern matching against your own title and description. That is why Seokai's one-click "Suggest type" fills a missing product category but will not touch price, GTIN, or anything else it would have to invent.

Vendor and brand

Google's feed spec requires brand for all new products except movies, books, and musical recordings. Shopify's Vendor field maps to it.

Most stores fill this. Dropshipping catalogs and CSV imports frequently do not, or they fill it with the supplier's name instead of the brand a shopper would search for. Both versions are wrong in ways that surface later.

Variants, SKUs, and the specs buried in your paragraphs

Variants come back with sku, title, selected options, price, availability, condition, and a requires object covering shipping and selling plans. Google's feed requires item_group_id for variants in several markets including the US and UK, and requires size, color, gender, and age group for apparel in those same markets.

The pattern behind all of it: a specification written in prose is invisible to a filter. "Tested to 10 metres" in the third paragraph of your description is persuasion. The same fact as a structured attribute is eligibility. An agent narrowing a hundred candidates has no reason to parse your copy for something that should have been a value, and we wrote about that split in more detail here.

Description still matters, because the plain-text version travels in the payload and gets summarized. It is just not where your specs belong.

Fixing this without spending a quarter on it

Nobody edits 2,000 products by hand, and the checklist above is useless as a to-do list. The order of operations that actually works:

  • Sample first. Pull fifty products at random and count how many are missing each field. You will usually find one or two gaps that account for most of the damage, and six that barely register.
  • Fix the cheapest disqualifier first. That is almost always product type, then image alt text, then vendor.
  • Handle GTINs as a supplier data problem, not an SEO problem. Ask for the file.
  • Sort by worst, not by newest. The products with four gaps each are where the recovery is.

Seokai's agent-readiness audit does the first step for you: it samples the catalog, scores each product against the required fields (price, availability, image) and the recommended ones (GTIN, description, vendor, product type), then surfaces the most common gap and the worst offenders rather than handing you a list of 2,000 rows. If you want the manual version of the same pass, the readiness checklist walks it end to end.

None of this work is new. Clean attributes made your on-site filters usable in 2019 and your Shopping feed cleaner in 2022. What changed is the penalty: a blank field now removes you from consideration silently, before anyone with a credit card is involved.

If you want to see where your own catalog stands before touching anything, start with an agent-readiness check.

Share this Story

Blurred blog main image. Pastel 3D product box surrounded by floating price tag, barcode and checkmark labels

Related Blogs

Is Your Shopify Store Ready for AI Agents? A Readiness Checklist
ShopifyStructured dataAI searchBest practices

Is Your Shopify Store Ready for AI Agents? A Readiness Checklist

A practical checklist for making your Shopify catalog readable to AI agents, covering product type, attributes, structured data, crawler access and llms.txt, with why each one matters to a machine.

Read More
Pastel product cubes moving along a dotted path into a catalog grid panel
ShopifyAI searchProductsE-commerce

Shopify Catalog, Explained: How Your Products End Up Inside ChatGPT

Shopify syndicates eligible products to ChatGPT, Copilot, Gemini and the Shop app without asking you first. Here is what makes a product eligible, and what the 2x conversion claim really says.

July 28, 2026 by Anton S

Read More
Agentic Commerce: What Happens When AI Agents Do the Shopping
AI searchE-commerceShopifyGEO

Agentic Commerce: What Happens When AI Agents Do the Shopping

AI agents are already reading Shopify catalogs through open protocols, but almost none of them are buying yet. Here is what actually shipped in 2026, and what it changes about your product data.

Read More