Guide

Product feed hygiene

Product feed hygiene is the routine of checking catalog data for the faults channels punish: empty required fields, titles over the limit, mixed languages, the same color spelled four ways, typos hiding in uniform columns, and broken links. Textfinity profiles a catalog with six checkers, each aimed at one of those faults, so you see the problem as a column-level number before Google or Meta turns it into disapprovals.

We connect your store, build the feed and keep it in sync. Updated 2026-10-27.

At a glance

  • Field completeness: the share of products with a value in each column, so an empty gtin or brand shows up as a percentage, not a surprise.
  • Length distribution: values over channel limits, such as Google's 150-character title.
  • Language consistency: mixed languages inside a text field. Value consistency: spelling variants of one value (Navy, navy , NAVY).
  • Outlier detection: rare values in otherwise uniform columns. URL validation: malformed links and image URLs.
  • On the feeds we have profiled, 18 of 20 had at least one critical data issue, and the average title used about 20 of Google's 150 characters.

Why product feed hygiene comes before optimization

Title rewrites and custom labels only help products that are eligible to show. A feed with a 60% filled GTIN column, links missing https:// or a color column with eleven spellings of black loses visibility before any optimization starts, and the channel reports it per product, after the fact. A hygiene check reports it per column, before the feed is fetched.

Hygiene is also the part of product data quality in ecommerce that does not need judgment. Whether a title is persuasive is a matter of taste; whether 312 titles are empty is not. Automating the measurable part leaves your time for the part that needs a person.

The six hygiene checks, with before and after

CheckerWhat it catchesBeforeAfter (fixed by)
Field completenessShare of products with a value per columngtin filled on 58% of productsgtin 97%: merged source of supplier EANs joined on SKU
Length distributionValues over channel limits or suspiciously shorttitle 6 to 212 chars, avg 22title 48 to 148: combine brand, type, color, size; AI title for stubs
Language consistencyMixed languages in a text fielddescription: 81% German, rest English100% German: AI config translates the English rows
Value consistencySpelling variants of one valuecolor: Navy / navy / NAVY / Navy Bluecolor: Navy: replace from google sheet lookup
Outlier detectionRare values in a uniform columncondition: new x 2,394, nwe x 3condition: new: add static value
URL validationMalformed links and image URLsimage_link: //cdn.shop.com/vase.jpghttps://cdn.shop.com/vase.jpg: replace from regexp ^// with https://

Rows are illustrative of what each checker reports; the fixes are Textfinity mapping transforms.

Reading a hygiene report

Start with completeness on the columns your channel requires: id, title, description, link, image_link, price, availability, and the identifiers. A required column under 100% is the shortest route to disapprovals. Then read length: Google truncates titles over 150 characters, and Meta allows 200 but shows far fewer in most placements, so very short titles are a missed opportunity as much as long ones are a fault.

Value consistency and outliers usually point at the same root cause: free-text fields typed by hand. Fix them with a lookup that normalizes the variants, not by editing products one at a time, so the next import is normalized too. Language consistency matters only for feeds that promise one language, which in Merchant Center is all of them.

What a hygiene check is not

  • It is not Merchant Center diagnostics. Textfinity does not import Google's disapprovals; hygiene finds the data faults behind many of them, before submission.
  • It is not a policy review. Restricted products, landing page problems and image overlays are outside what a data profile can see.
  • It does not change data on its own. Every fix is a mapping rule or filter you choose, applied on the next rebuild.
  • It is not a one-off audit. Run it again after each import or supplier change, because new products bring new faults.

Examples

Worked examples, by situation

Four catalogs, four different hygiene findings, four fixes.

Fashion · Google Shopping · Shopify, 5,000 variants

Eleven spellings of one color

Before

color: Black, black, BLACK, Blk, Black , Jet Black, Noir ...

After

color: Black (Jet Black kept as a separate shade)

How we set it up

Value consistency lists the variants with counts. We map color with replace from google sheet, with each variant in column A and the canonical color in column B. Column A is matched as a substring, so list whole variants (BLACK, Blk, Noir) and leave Jet Black out of the sheet. The same sheet catches new variants as merchandisers add them.

Home electronics · Google Shopping · supplier CSV, 1,400 SKUs

GTIN column 58% complete

Before

gtin: (empty) on 588 products
supplier file: SKU;EAN for 560 of them

After

gtin filled on 1,372 of 1,400
28 products: identifier_exists = no

How we set it up

Field completeness flags gtin. We join the supplier file as a merged source on SKU and map gtin as a rename of the merged column, with a conditional rule keeping the store's own barcode first. The 28 own-brand items get identifier_exists no.

Outdoor gear · Meta catalog, Germany · CSV export, 800 SKUs

English descriptions inside a German catalog

Before

description (DE feed): Wasserdichte Jacke mit ...
description: Waterproof shell with taped seams ...

After

description: Wasserdichte Hardshell-Jacke mit getapten Nähten ...

How we set it up

Language consistency shows 19% English rows in description. We set up an AI config that translates description into German, and map description with replace from AI config, the original as fallback until generations are accepted.

Home decor · Pinterest and Google · WooCommerce, 260 SKUs

Relative image paths and a typo in condition

Before

image_link: /wp-content/uploads/vase-1.jpg
condition: nwe

After

image_link: https://shop.example/wp-content/uploads/vase-1.jpg
condition: new

How we set it up

URL validation flags the relative paths; outlier detection flags nwe among 257 new. We map image_link with add prefix https://shop.example and set condition as a static value new, since the store sells only new goods.

Copy this plan

Plan: a product feed hygiene routine

Run it once now, then after every import that changes many products.

  1. 01

    Connect the source

    Shopify natively, or a CSV or Google Shopping-shaped XML export by URL or SFTP, or a Google Sheet. The catalog is profiled once it is processed.

    What we set up: We connect your source and let Textfinity profile the catalog once it is processed.
  2. 02

    Run the first hygiene check

    Read the six checkers in order: completeness, length, language, value consistency, outliers, URLs.

    What we set up: We run the first hygiene check and walk you through the findings, required columns first.
  3. 03

    Fix required columns first

    Anything a channel requires and that is under 100% complete. Join missing data from a merged source or map it from another column.

    What we set up: We fill each gap with rename, combine or a static value, or join the missing data from a merged source.
  4. 04

    Normalize variants with a lookup

    One Google Sheet per messy column (color, material, gender) beats per-product edits. Each column A value is replaced wherever it appears inside the value, so keep the entries specific.

    What we set up: We map each messy column with replace from google sheet, from a lookup sheet your team can keep editing.
  5. 05

    Guard what cannot be fixed yet

    Exclude products with no image or no title until the data exists.

    What we set up: We add exclude filters with is blank and is shorter than on the source image and title columns (filters read the source, not the mapped feed).
  6. 06

    Re-run and compare

    Run a new check after the next sync and compare it with the first one, column by column.

    What we set up: We re-run the hygiene check after the next sync and send you what changed.

Customization tips

Make it yours

Fix in the feed, report upstream

A mapping rule fixes the channel today; the store or supplier data stays dirty. Send the variant list to whoever owns the source as well, or the sheet keeps growing.

Not every outlier is an error

A rare value in a uniform column is a signal, not a verdict: refurbished among thousands of new may be correct. Check the samples before writing a rule that overwrites them.

Short titles are a hygiene problem too

Most profiled titles use a fraction of Google's 150 characters. A length check that only looks for overflow misses the bigger loss: titles too thin to match the searches people make.

Profile the feed, not only the store

Rules can introduce faults: a combine with an empty field leaves a trailing comma, a prefix doubles https://. Check the feed output as well as the source.

FAQ

Questions about product feed hygiene

What is product feed hygiene?

The routine of checking product data for measurable faults before a channel sees it: missing values, values over length limits, mixed languages, inconsistent spellings, rare outlier values and malformed URLs. It is the automatable part of product data quality.

How do I check the data quality of an ecommerce product feed?

Profile each column: the share filled, the length range against channel limits, the languages used, the distinct values and their variants, and whether URLs are well formed. Textfinity runs these six checks on a connected catalog and reports them per column.

Does a hygiene check replace Merchant Center diagnostics?

No. Merchant Center reports what Google rejected, per product, after submission. A hygiene check finds data faults per column before submission. Textfinity does not import Merchant Center diagnostics, so use both.

How often should I run a product feed audit?

After every import that changes many products, after a supplier changes its file, and before launching a new channel or market. New products bring new faults even when old ones are fixed.

Set up for you

We'll find your catalog's data faults before Google does.

Send us your store URL. We run the six hygiene checks on your catalog, go through the findings with you and fix each one with a mapping rule that applies on every rebuild.

Have us check my catalogOr email support@textfinity.io

Tell us your store and channels. We reply within 24 hours.