How to bulk edit Shopify products without breaking your feed
Safe ways to use the Shopify bulk editor and CSV export/import to fix barcodes, types, vendors and metafields at scale, and the mistakes that wreck feeds.
Shopify gives you two bulk-editing tools, the in-admin bulk editor (spreadsheet view, instant saves) and CSV export/import (full round-trip, more power, more risk). Both can fix thousands of vendor names, barcodes and product types in an afternoon, and both can silently corrupt a feed if used carelessly. This is the safe workflow for each, plus a rule of thumb for what's worth hand-fixing at all when a feed layer fills gaps for you.
Before you bulk edit anything: triage
Bulk editing is the highest-leverage and highest-risk thing you can do to a catalogue. One afternoon can fix three years of vendor-name drift; one mis-mapped column can put fake barcodes on 4,000 variants (that exact failure is dissected in SKUs and barcodes). So the first step isn't opening the editor: it's deciding what belongs in a bulk edit at all.
The dividing line is source of truth vs presentation:
| Defect | Fix in Shopify (bulk edit)? | Why |
|---|---|---|
| Wrong or drifted vendor names ("Nike"/"NIKE"/"Nike EU") | Yes | Vendor is source data: every system reading your store benefits |
| Fake or missing barcodes | Yes (real GTINs from suppliers) | Barcode is the only native gtin source; a fact only you can supply |
| Blank cost per item | Yes | Cost is your private data: nothing can infer your supplier prices |
| Free-text product types drifted into chaos | Yes, if you use them for navigation | Your taxonomy, your call |
| Titles not "search-shaped" for Google | No | The feed layer shapes titles without touching your PDPs |
| Missing google_product_category, colour, size, gender | No | Enrichment derives these into the supplemental layer: see how enrichment works |
The pattern: bulk-edit facts that only you know. Don't burn an afternoon hand-crafting feed attributes that a supplemental layer derives and maintains continuously: especially since your hand-crafted versions go stale the moment the catalogue changes, and the layer's don't.
Tool one: the in-admin bulk editor
Select products on the Products page, hit Bulk edit, and Shopify opens a spreadsheet view of those products and their variants. Add or remove columns (price, vendor, type, barcode, weight, and metafields if you add their columns), type into cells, and changes save as you make them: there's no import step and no "cancel all".
Where it shines:
- Small batches: a few dozen products, one or two fields.
- Visible context: you see the current value as you overwrite it, which catches "wait, why is that barcode 9 digits" moments a CSV hides.
- Metafields: editing metafield values with the live value in front of you is much safer than constructing metafield CSV columns by hand. See metafields for Shopping for which ones matter to the feed.
Where it bites: instant saves cut both ways. A stray paste into the wrong column is live immediately. Keep batches small enough to visually verify before moving on, and don't use it half-attention.
Tool two: the CSV round-trip
For hundreds or thousands of products, export → edit → import is the workhorse. The safe version of the round-trip:
1. Export narrow, copy immediately
Filter the product list to exactly the set you're changing (by vendor, product type or tag) and export "current page" or the filtered selection, not the whole store. Then duplicate the file before touching it. The untouched export is your only rollback; Shopify import has no undo.
2. Edit a copy, respect the file's structure
- Handle is the matching key. Change it and the import creates a new product instead of updating the old one: the classic source of duplicated catalogues. Leave the Handle column alone.
- Variant rows belong to the handle above them. Don't sort the sheet in a way that separates variant rows from their product row, and don't delete rows unless you intend to (deleting a variant row doesn't delete the variant: but a mangled structure can misassign values).
- Edit only the columns you're there to edit. A spreadsheet tool that "helpfully" reformats other columns (stripping leading zeros off barcodes is the notorious one) corrupts data you never meant to touch. Format the Barcode column as text before editing, or use an editor that doesn't coerce types.
- Blanks can mean "blank out". For many columns an empty cell on import overwrites the store value with empty. Never leave a cell blank as "skip this one": remove the row instead, or keep the exported value in place.
3. Test-import a slice, then the rest
Copy the header row plus the first 20 data rows into a separate file and import that first, ticking "Overwrite products with matching handles". Check those 20 products in admin: right fields changed, nothing else moved, variants intact. Only then import the full file. A 20-row mistake is an anecdote; a 4,000-row mistake is a feed incident.
4. Verify downstream
After the import, your next feed sync picks up the changes. Check your Feed Health Score rather than assuming success: bulk imports are precisely where common feed mistakes enter catalogues, and the score surfaces new identifier or attribute problems before Merchant Center diagnostics do.
Deep dive The three bulk edits that pay for themselves
If you only ever run three bulk-edit projects on an established store, run these: each fixes a fact enrichment can't supply and each has an outsized effect on the feed.
1. Vendor canonicalisation. Export the full catalogue with just Handle, Title and Vendor columns. Build a pivot of distinct vendor values: a five-year-old store typically has 30–50% more vendor strings than actual brands ("Nike", "NIKE", "Nike EU", "nike "). Decide one canonical spelling per brand, find-and-replace in the sheet, re-import. Time cost: an hour or two. Payoff: Google's brand attribute stops splitting one brand into four, brand filtering works, and catalogue matching improves across every affected product.
2. Barcode audit and backfill. Export with Handle, SKU and Barcode. Three checks in the sheet: barcodes that are blank (a gap to fill from supplier data), barcodes that equal the SKU (fakes to delete: an empty barcode is a gap, a fake one is a disapproval), and barcodes with impossible lengths (anything not 8, 12, 13 or 14 digits). Fix what you have supplier data for; blank the fakes; leave the rest genuinely empty for GTIN enrichment to match against barcode databases. This is the single highest-impact data project a Shopify store can run for Shopping performance.
3. Cost per item backfill on your ad-spend products. Export your top revenue products with the Cost per item column, fill it from supplier price lists, re-import. Even 50 products costed correctly unlocks margin-aware analysis of the products that actually carry your budget: the why is in cost per item and margins.
Notice what's not on the list: no title-rewriting project, no category-assignment project, no colour/size backfill project. Those are the classic time sinks: weeks of spreadsheet work producing attributes that go stale with the next season's stock. They're presentation-layer data, and the supplemental feed layer derives and maintains them continuously from the source facts above. Fix the facts; let the layer do the shaping. That's the honest answer to "how much bulk editing do I need to do": far less than the size of your feed problem suggests, provided you fix the right things.
How /tools handles this
/tools reads your catalogue after every sync, so bulk edits flow through on the next sync with no re-setup: and because enrichment writes to its own supplemental layer, your bulk-edited Shopify data is never overwritten by the platform, just as the platform's derived attributes never appear inside your store. In practice the division of labour is clean: you bulk-edit source facts (vendors, barcodes, costs), /tools validates them (fake GTINs are flagged, not passed through), fills the presentation gaps (titles, categories, colour/size), and scores the result. If a bulk edit goes wrong, the Feed Health Score drop tells you before Google does: and your untouched export CSV gets you back.
Step by step
- Decide what actually needs fixing at source. List the defects, wrong vendors, fake barcodes, drifted product types. Source-of-truth data (barcodes, costs, vendor names) is worth fixing in Shopify; presentation-layer gaps (titles, categories, missing attributes) are what enrichment fills, so hand-fixing those is usually wasted effort.
- Pick the right tool for the batch size. Use the in-admin bulk editor for under ~50 products or single-field tweaks, edits save instantly with no import step. Use CSV export/import for hundreds-plus of products, multi-field changes, or anything you want to review offline first.
- Export a filtered CSV and keep an untouched copy. Filter to just the products you're changing (by vendor, type or tag), export, and immediately duplicate the file. The untouched copy is your rollback, Shopify CSV import has no undo.
- Edit only the columns you mean to change. Work in the copy. Leave Handle alone (it's the matching key), don't reorder variant rows, and delete no columns you don't understand. Spot-check 5 rows against the live admin before importing.
- Import with overwrite enabled, on a small slice first. Split off the first 20 rows into a test file, import with "Overwrite products with matching handles" ticked, and verify those products in admin. Only then import the full file.
- Verify the feed after the sync, not just the products. After your next feed sync, check your Feed Health Score and spot-check the affected products' attributes. Bulk edits are where fake barcodes and mangled variants enter catalogues, catch them before Google does.
Frequently asked questions
How do I bulk edit products in Shopify?
Two native routes, select products in admin and choose "Bulk edit" for a spreadsheet-style view with instant saves, or export a CSV, edit it offline, and re-import with the overwrite option. The bulk editor suits small, single-field batches; CSV suits large or multi-field jobs.
Can the Shopify CSV import overwrite my products by accident?
Yes, with "overwrite products with matching handles" ticked, whatever is in the file replaces what's in the store, including blanks in some columns. Always export fresh, edit a copy, keep the original as rollback, and test-import a small slice first.
Can I bulk edit metafields?
The bulk editor can edit metafields if you add their columns to the view, and CSV import supports metafield columns with structured headers. For large metafield jobs the bulk editor is safer, you see current values as you type over them.
Do I need to hand-fix every feed problem in Shopify?
No. Fix source-of-truth data (real barcodes, correct vendors, costs) in Shopify, it's your data and every system benefits. Feed-facing gaps like search-shaped titles, Google categories and missing colour/size attributes are filled by enrichment in a supplemental layer, so they don't need a bulk-edit project at all.