Product Feeds: Exporting Your Catalog to Marketplaces and Google
Practice4 minInnovialabs editorial team
In short
A product feed is a file or API export of your catalog with prices and stock for an external platform; generate it automatically from one data source and update it as often as prices and availability change.
The short answer
A product feed is a machine-readable export of your catalog: ID, title, price, availability, link, images and attributes for each product. Google Merchant Center uses it to show products on Google, Yandex uses it in its services, and marketplaces use it to update listings, prices and stock.
The main rule: the feed is generated automatically from the website or the accounting system, not assembled by hand. Otherwise prices and availability quickly drift from reality and the platform disapproves products.
Formats
| Format | Where it is used | Notes |
|---|---|---|
| YML (Yandex Market Language) | Yandex, some aggregators and CMSs | XML with a fixed structure: shop, categories, offers |
| XML / RSS | Google Merchant Center | Google attributes in a separate namespace |
| CSV / TSV, Google Sheets | Google, marketplace templates | Easy to start, easy to break with encoding and delimiters |
| API | Marketplaces, Google | Targeted price and stock updates without a full export |
Marketplaces — Uzum, Wildberries, Ozon, Amazon — usually work through the seller API or Excel templates in the seller account. For frequent price and stock changes, an API is more reliable than a file.
Required attributes
For Google Merchant Center, the core set is:
id— a unique and stable product identifier;titleanddescription;link— the product page,image_link— the main image;pricewith currency andavailability;conditionfor new and used items;brand,gtin(barcode) ormpnfor products with a known manufacturer.
A minimal YML offer looks like this:
<offer id="SKU-1024" available="true">
<name>Electric kettle 1.7 L</name>
<url>https://example.com/p/sku-1024</url>
<price>390000</price>
<currencyId>UZS</currencyId>
<categoryId>12</categoryId>
<picture>https://example.com/img/sku-1024.jpg</picture>
<vendor>BrandName</vendor>
</offer>
Always check current field lists and value formats against the documentation of the specific platform: requirements change from time to time.
Category mapping
Each platform has its own category tree, and it does not match yours. You need a mapping table: your category — the platform's category.
- Google uses its own product taxonomy (
google_product_category). - Marketplaces require an exact category, which determines mandatory attributes and the commission.
- Store the mapping in the database or admin panel, not in the feed generator's code, so a content manager can maintain it.
Image rules
- The product is clearly visible on a clean background, with no watermarks, store logos or promotional text on the main image.
- Size meets the platform's minimum, and links are direct and accessible without authentication.
- Do not use "no image" placeholders — they get rejected.
- When replacing an image, change its URL, otherwise the platform may keep serving the cached old version.
Update frequency
- Prices and stock — as often as they change on your side. For marketplaces, via API on every change or on a schedule several times a day.
- Full catalog — daily or when the range changes.
- Google requires products to be updated at least once every 30 days, or they stop being shown.
Common disapprovals and how to fix them
| Error | Cause | What to do |
|---|---|---|
| Price mismatch | One price in the feed, another on the page | Generate the feed from the same source as the site; update more often |
| Availability mismatch | Item sold out but the feed was not updated | Speed up stock updates, use the API |
| Missing GTIN or brand | Fields are empty in the catalog | Fill in barcodes; for own-brand products, mark that no GTIN exists |
| Unreachable page | 404, redirect, blocked crawlers | Check links and robots.txt |
| Image disapproved | Placeholder, watermark, too small | Replace the image and change its URL |
| Wrong category | No mapping or an outdated one | Update the mapping table |