Bulk catalog edits are easy to start and surprisingly easy to make dangerous.
If you need to update hundreds of Shopify product descriptions and replace images, the safest workflow is usually a small, intentional CSV update—not a full export with every column left in place.
1. Start with a fresh Shopify export
Export the products immediately before preparing the change. Keep that original file untouched as your rollback reference. Do not build a new file from memory: the export contains the exact Handles, option rows, and variant structure Shopify currently knows.
For a description-only change, identify the columns you actually need:
HandleTitleBody (HTML)
If you are changing prices, SKUs, inventory, or variant options at the same time, treat that as a separate change set. Mixing unrelated edits makes it much harder to explain a partial import or recover from an overwrite.
2. Generate the repeated description in a spreadsheet
A spreadsheet formula is enough when the template is stable. For example, if the product title is in column B, a Google Sheets formula can build a simple HTML description:
="<p><strong>"&B2&"</strong> is handcrafted and ships free in 2 days. 30-day returns on every "&B2&".</p>"
Adjust the wording for your store, fill the formula down, then copy the result and paste it back as values into Body (HTML). Values-only paste prevents a later formula change from silently changing the import file.
Keep the original Title column while you work. It is useful for reviewing the generated text, even though the description is the field you intend to update.
3. Avoid the blank-column trap
For an existing-product update, an omitted column and an included blank column do not mean the same thing. A blank column can clear existing data, while an omitted column leaves that field alone.
Before importing, remove every column you are not deliberately updating. Preserve all variant rows for each Handle if your file still contains variant-level fields. Never sort rows in a way that breaks the product's Handle grouping, and never remove option columns from a variant update without first checking how Shopify will match the variants.
4. Treat images as a separate decision
A Shopify product CSV carries image references, not files sitting on your laptop. If new images are already hosted, use direct public https:// URLs in Image Src and keep the Handle and image position mapping consistent. If the files are local, upload them to a location that produces stable public URLs before importing.
Do not mix a large image replacement with a description update unless you have a clear reason. A description-only pilot is easier to verify, and an image-only pilot makes URL or row-mapping failures much easier to isolate.
5. Pilot before the full catalog
Import one or two representative products first. Confirm the description, variant count, image order, and unchanged fields in Shopify admin. Keep the pre-import export and the exact CSV you uploaded.
After the pilot, export the affected products again and compare the before/after values. Only then expand to the rest of the catalog. If the catalog is large, split the work into batches that each have a clear product range and a simple rollback point.
For a faster preflight of identity matching, changed columns, blank overwrites, and update-only risk, I use this browser-side Shopify existing-product CSV update audit. It does not import into Shopify or replace the pilot; it helps make the file's intended change set visible before you upload it.
Top comments (0)