How to Audit Your Shopify Catalog for Meta Ads
Quick answer: A Meta catalog audit checks four things Commerce Manager will not tell you on its own: required field coverage across every item, ID integrity between your feed and your pixel, attribute depth for Advantage+ targeting, and sync freshness. Diagnostics reports broken items. It does not report thin ones.
When Meta performance drops, the first instinct is to blame creative fatigue or audience saturation. Sometimes that is right. Often it is not. Sudden drops in catalog ad performance frequently trace back to catalog data changes rather than audience behavior, and the catalog is the last place most teams look because Commerce Manager showed no errors.
That is the problem. Commerce Manager tells you what is rejected. It does not tell you what is technically fine and delivering badly. We wrote about the same blind spot on the Google side in Why Your Fashion Products Don't Show on Google Shopping. Meta fails differently, and this is the Meta version.
What makes a Meta audit different from a Google one
Both channels read your product data, but they punish different things.
Google is a query matching system. It cares whether your attributes let it connect a product to what someone typed. Meta is a delivery and targeting system. It cares whether it can identify your items uniquely, link them to user behavior, and segment them well enough for Advantage+ to optimize.
That difference shows up in the audit. Meta enforces unique IDs and currency formatting strictly, requires brand where Google is more forgiving, applies its own image minimums, and depends on a pixel to catalog ID match that Google has no equivalent for. Meanwhile attributes like material and color, which Google uses to match searches, Meta increasingly uses to segment audiences.
A catalog that is clean for Google can still be quietly broken for Meta.
The audit, step by step
1. Read Diagnostics, grouped by cause
Go to Commerce Manager, select your catalog, and open Diagnostics. Group what you see by error type rather than by item. A few hundred item level errors usually trace back to two or three root causes.
The recurring set is short: duplicate IDs, missing required fields, invalid price formatting, broken image links, and malformed feed structure. Treat these as operational debt, not background noise. Enough critical errors can get a catalog paused entirely.
Then note the ceiling. Diagnostics reports errors. It does not report an item with a two word title, no material, and no pattern, which passes every check and gives Advantage+ almost nothing to work with.
2. Check ID integrity, both ways
Two separate problems live here, and only one of them appears in Diagnostics.
Duplicate IDs. Every id in the catalog has to be unique. This usually appears when someone creates a second catalog to separate bestsellers or clearance. Use product sets inside one catalog instead, filtered by category, price, or availability. One catalog, one source of truth, many sets.
Pixel to catalog mismatch. This one is invisible. Your catalog is healthy, items deliver, but your pixel events report content_ids that do not match the id values in your feed. Meta cannot link user behavior to specific products, so retargeting and Advantage+ optimization degrade silently. Nothing turns red. Performance just underperforms without explanation.
Verify that the content_id in your ViewContent, AddToCart, and Purchase events matches your catalog IDs exactly, including whether you are sending variant IDs or product IDs.
3. Confirm your products are actually publishable
Before any attribute work, filter for products that are not published to the online store. No landing page means no catalog item, whatever else is filled in. Drafts and archived products are not in play either, and permanently out of stock items get dropped by Meta until they are back, so a stale shelf drags on your catalog whether or not anything is flagged.
This step sounds trivial and routinely turns out to be the largest single gap in a catalog.
4. Verify the required field set on every item
Export your Shopify catalog with variants and check coverage on: id, title, description, availability, condition, price, link, image_link, and brand.
Brand deserves its own line. Items without brand are rejected from catalog and Advantage+ catalog ads. It is one field with catalog wide consequences and it is easy to leave blank on own label products.
Price is the other frequent trip point, in two ways. A zero or missing price disqualifies the product from every shopping surface. And Meta expects a three letter ISO 4217 currency code, so a price without one gets the item rejected regardless of everything else being correct.
Description matters more than it looks. A missing or one line description weakens matching on both channels and on your own onsite search at the same time.
Check at variant level, not product level. A store with 400 styles in six sizes and four colors is auditing close to 10,000 rows, and a value present on eleven variants and blank on the twelfth pulls that twelfth item.
5. Check the fields that make you variant ready
This is a Meta specific condition worth isolating, because it is the difference between having items in the catalog and having them work properly in ads.
Meta needs size to group your variants. Without it, shoppers cannot filter by size and Meta cannot treat your six sizes of one dress as one product with options. Color and age group do similar work: age group separates adult from kids inventory in ad targeting, and color is what carries a variant into color filters and color based queries.
A catalog can be fully accepted and still not variant ready. Count that separately from your general eligibility number, because it is a different fix and a different payoff.
6. Check images against Meta's requirements
Meta's minimum is 500 by 500 pixels, but 1024 by 1024 is the practical target for quality and fewer cropping problems across placements. Anything below the minimum is rejected.
Also check that image_link actually resolves. Broken image URLs are one of the most common Diagnostics errors and one of the easiest to leave unfixed, because a 404 on a CDN path looks fine in a spreadsheet.
7. Score attribute depth for Advantage+
This is the step that separates a compliance check from a performance audit. None of what follows is required. All of it affects how well the system can find the right person for the right item.
Meta product category. Meta's own taxonomy improves classification in Shops and in Advantage+ catalog ads. It is only derivable once a Shopify category is set, which means one upstream field unlocks it across your catalog. If your category is unset, this is usually the highest leverage fix on the list.
Material and pattern. Material is the single most commonly missing apparel attribute anywhere, and items without it miss precision targeting opportunities in Advantage+. Pattern does the same work for print based segmentation.
Size system and size type. A size value without a declared system is ambiguous the moment you sell across borders. Size type, petite, plus, tall, maternity, is what lets the system reach shoppers looking for a specific cut.
Findability attributes. Fit, neckline, occasion, sleeve length, style. These are almost never captured structurally in Shopify and they feed Meta variant attributes and discovery. Occasion in particular carries strong intent, casual against formal against wedding, and almost nobody structures it.
Custom labels. Season, margin tier, bestseller status. These do not describe the garment, they describe its commercial role, and they are what let you bid differently on products that deserve different treatment.
Measure coverage per attribute and treat the result as a performance number, not a hygiene one. Advantage+ is an optimization engine, and optimization engines perform in proportion to the signal you hand them.
8. Check sync freshness and landing page consistency
Meta reduces visibility for catalogs with stale data, so sync cadence is part of catalog health, not a setup detail. Fetch at least daily, more often if price and stock move frequently, and monitor fetch status in the Data Sources tab.
Then sample twenty to fifty products and verify that price, availability, and image in the catalog match what a shopper sees on your product page. This is the layer that breaks after the fact, usually the week you run a promotion.
9. Rank every gap by number of items affected
Most audits skip this, and it is the step that decides whether the work is worth doing. A missing brand on 2,000 items and a broken image on 40 are not the same task. Sort every gap by how many items it touches, then by effort, and work the top of that list.
Why the manual version stops working
Everything above is doable. It is also, for a real catalog, several hours of spreadsheet work that has to be repeated every quarter and after every collection drop.
The variant math is what breaks it. A mid sized fashion store is auditing tens of thousands of rows against roughly twenty fields per row, and if you also advertise on Google, against two overlapping but non identical requirement sets. Doing that by hand once is a project. Doing it four times a year is not going to happen, which is why most catalogs are audited once, at setup, and never again.
That is the gap we built a tool for.
Run the same audit in minutes, free
SixFit Catalog Checkup is a free Shopify app that runs this audit against your live catalog. It reads your products and checks each one against the fields Meta and Google use to decide what shows and what ranks.
What you get:
- Two scores out of 100, completeness and enrichment, measured separately. Required field coverage and attribute depth are different problems, and Advantage+ performance leans heavily on the second. A catalog scoring 76 on completeness and 24 on enrichment is a common and very fixable pattern, and a single blended number would hide it.
- Eligibility counted per surface, including Meta catalog and Meta variant ready as separate lines, alongside Google free listings and Google Shopping ads. Variant readiness gets its own number because it is a different fix from basic acceptance.
- Every gap, ranked by how many products it affects, and sorted by tier: required fields that block listing, recommended fields that lift ranking and classification, nice to have fields like custom labels, and findability attributes like fit, neckline, occasion, and sleeve length.
- A plain explanation of why each field matters, so the report is something you can hand to whoever owns the catalog without translating it first.
- The context that changes your reading of the score, including out of stock products, drafts excluded from scoring, and how your barcode situation is being treated.
- A shareable report you can save, print, or send on.
It reads products and collections only. It does not write to your store and does not touch orders or customer data.
Install SixFit Catalog Checkup, free
What to do with the report
Fix at the source, not in the feed. A feed tool can only send data that already exists. If a garment's fabric, fit, or true color was never captured on the product, the feed has nothing to move. Fix it on the product and every channel downstream inherits it.
Clear rejections first, then feed the algorithm. Required fields protect the items you already have in rotation. Attribute depth is what improves delivery on the items that are already eligible, and that is usually the larger opportunity.
Measure it. Hold back a group of products, fix the rest, and compare delivery and revenue after a few weeks. A simple holdout tells you whether the work moved anything, which beats attributing every swing to creative fatigue.
If you also run Google Shopping, the requirements overlap but do not match. Our companion guide covers the Google specific version: Google Merchant Center Audit: A Step by Step Guide for Shopify.
One more thing if you sell apparel. The same garment detail that makes an item legible to Meta's targeting is what tells a shopper whether it will fit her. An analysis of one million fashion returns found that 67 percent were driven by fit and sizing issues. Better data gets the product delivered. The right data gets it bought and kept.
Sources
- Meta Commerce Manager catalog documentation. On required catalog fields, brand requirements for catalog and Advantage+ ads, currency formatting, image minimums, and Diagnostics reporting.
- Vizup, "Meta Catalog Ads Specs 2026" (2026). On the recurring Diagnostics error set, core required fields, and image dimension targets.
- AI Shopping Feeds, Meta catalog error reference (2026). On brand rejection from Advantage+ catalog ads, ISO 4217 currency requirements, and pixel content_id mismatch degrading performance silently.
- WisePIM, "Facebook and Instagram Catalog Optimization" (2026). On optional attributes improving delivery, pixel to catalog ID matching, product sets, and feed fetch cadence.
- FeedRanks, "Meta Catalog Management Best Practices" (2026). On grouping Diagnostics errors by type, landing page spot checks, and catalog data changes as a cause of sudden performance drops.
- PRIME AI, analysis of one million fashion returns. Finding that 67 percent of returns were driven by fit and sizing issues.
See what Meta can actually read in your catalog
Most stores are surprised by how much of their catalog is delivering below its potential right now. You can find out in a few minutes, for free.
Install SixFit Catalog Checkup on the Shopify App Store and get your score, your gaps, and your fix list in one report.
Frequently asked questions
- How do I audit my Meta catalog?
- Open Commerce Manager Diagnostics and group errors by type rather than by item. Confirm your products are published, since an unpublished product has no landing page and cannot become a catalog item. Then check the required fields on every item: id, title, description, availability, condition, price with a valid currency code, link, image_link, and brand. Check duplicate IDs, image dimensions, and whether your pixel content_ids match your catalog IDs. Finally, check the attributes Meta uses for targeting and variant grouping, including size, color, age group, material, and pattern.
- What does Meta variant ready mean?
- It means an item carries the fields Meta needs to group and filter your variants properly, not just the fields it needs to be accepted. Size is the key one, since without it shoppers cannot filter by size and Meta cannot treat six sizes of one dress as one product with options. Color and age group do related work. A catalog can be fully accepted and still not variant ready.
- Why are my Meta catalog products active but not delivering?
- An item can pass every catalog check and still deliver poorly. The two usual causes are a low catalog match rate, where pixel events report content_ids that do not match your feed IDs so Meta cannot link behavior to products, and thin attribute data, which leaves Advantage+ too little to segment and optimize on.
- What fields does Meta require in a product catalog?
- The core required fields are id, title, description, availability, condition, price, link, and image_link. Brand is required in practice, since items without it are rejected from catalog and Advantage+ ads. Price must carry a valid ISO 4217 currency code and images must meet Meta's minimum dimensions.
- Does Meta use the same product data as Google Shopping?
- It draws on the same underlying catalog, but the two do not fail on the same fields. Meta enforces unique IDs, brand, and currency formatting strictly, and it uses attributes like material and color for audience segmentation rather than for query matching. A catalog that is clean for Google can still have Meta specific gaps.
- How often should I audit my Meta catalog?
- Review Diagnostics weekly during launches or promotions, and run a full attribute audit quarterly. Meta reduces visibility for catalogs with stale data, so sync freshness matters as much as field coverage.
- Is there a free way to check my Shopify catalog?
- Yes. SixFit Catalog Checkup is a free Shopify app that reads your products, scores your Meta and Google readiness out of 100, and lists the exact fields to fix with how many products each gap affects.
