Product feed formats: CSV vs XML vs TSV
CSV, TSV, and XML are the three product feed formats channels accept. Here is how they differ, which to use, and why the format matters less than the data.
The three formats you will meet
Shopping channels accept product feeds in a small set of file formats. The three you will run into are CSV, TSV, and XML. They all carry the same product data. They just structure and separate it differently.
Choosing a format is rarely a strategic decision. Most of the time the channel tells you what it prefers, and your job is to produce a valid file in that format with clean data inside. Still, knowing how each one works helps you debug problems and avoid the small mistakes that break a feed.
CSV (comma-separated values)
CSV is the most common product feed format. Each line is a product, and a comma separates each value. The first line is a header row listing the column names, which map to channel attributes like id, title, and price.
CSV is simple, compact, and easy to open in a spreadsheet. Its weakness is also the comma: if a product description or title contains a comma, the file has to wrap that field in quotes, or the columns shift and the feed breaks. Special characters, line breaks inside fields, and inconsistent encoding are the usual causes of a malformed CSV.
- Best for: most Google, Meta, and general shopping feeds.
- Watch out for: unescaped commas, quotes, and non-UTF-8 encoding.
- Tip: always save as UTF-8 and quote any field that contains a comma or line break.
TSV (tab-separated values)
TSV works exactly like CSV but uses a tab character to separate values instead of a comma. Because product titles and descriptions almost never contain tabs, TSV sidesteps the biggest CSV headache, which is commas inside text fields.
Google actually recommends tab-delimited files for many feeds because they are more robust. The trade-off is that tabs are invisible, so a TSV file is harder to eyeball and easy to mangle if a tool silently converts tabs to spaces. If your CSV feeds keep breaking on punctuation, TSV is often the quiet fix.
XML (extensible markup language)
XML wraps each value in named tags rather than relying on position and separators. A product becomes a block of tags like <g:title>...</g:title> and <g:price>...</g:price>. Google Shopping uses an RSS 2.0 XML structure with the g: namespace for its attributes.
XML is more verbose and produces larger files, but it handles complex data cleanly. Commas, quotes, and special characters inside a field cause no trouble because every value is clearly delimited by its tags. XML is the natural choice when products have many attributes or when a channel specifically requires it.
The main risk with XML is malformed structure: an unclosed tag or an unescaped character like an ampersand makes the whole file invalid, and the channel rejects everything. Special characters must be encoded (for example, & becomes &).
Which format should you use?
Use whatever the channel asks for, and prefer the format that is hardest to break for your data. If your titles and descriptions are clean and short, CSV is fine. If they are full of commas and special characters, TSV or XML will save you grief.
In practice you should not be hand-building any of these. The format is a delivery detail, and the data inside is what determines whether your products get approved and perform. The right approach is to manage one clean source catalog and let your feed tool output a valid CSV and a valid XML on demand, correctly escaped and encoded every time.
MartechFlow generates both channel-ready CSV and XML from the same mapped catalog, handling escaping, encoding, and the g: namespace for you. You never debug a stray comma or an unencoded ampersand. You map your fields once and export a valid file in whatever format each channel pulls.