🔒 SEO Vault

Shopify Product Description HTML Got Stripped or Reformatted by an App — Recover the Body

An app — a bulk editor, AI description writer, translation app, or CSV import — rewrote your product descriptions and pulled the custom HTML out of the body: tables, columns, custom classes, inline styles, and embedded video collapse into a wall of plain text, breaking your layout and wiping the keyword-rich content Google was reading. Shopify stores the whole description as one `body_html` field and keeps no version history of it, so there is no built-in undo. You are left rebuilding formatting product by product without even knowing what the original markup was.

Step by step

  1. Confirm the scope and read exactly what got stripped. In the admin product list (Products), sort by Updated to surface the cluster of products that changed and pin the date and time the app ran — that block of recently-updated products is your blast radius. Open a few of them, click into the description and hit the '<>' (Show HTML) toggle in the rich text editor to see what survived: plain text with every tag gone means a full wipe, while missing class/style attributes or dropped <table>/<iframe> tags means a sanitizer re-serialized your markup. The same tags missing everywhere confirms one app did it and tells you precisely what to restore.
  2. Identify the app and check for a built-in undo before touching anything. Match the spike date to whatever ran a bulk job around then — AI/bulk-edit, translation, and CSV-import apps are the usual culprits, because they read body_html, pass it through their own formatter, and write back a 'cleaned' version. Open that app and look for a version history, a 'revert last run', or an activity log; some bulk editors and AI writers keep one and can roll the change back in their own UI, which is the fastest clean recovery. If it has no undo, do not re-save the products yet — move to restoring from a backup so you don't overwrite the only remaining copy of the damaged content.
  3. Restore the original HTML from a backup, not by retyping. Your cleanest source is a Shopify product CSV exported before the change (Products > Export): the 'Body (HTML)' column holds the full original markup, so you can re-import with 'Overwrite existing products that have the same handle' to put it back. No backup? Pull the old description from Google's cache or the Wayback Machine (web.archive.org) for the live product URL and copy the content back in. Restore through CSV or the Admin API rather than pasting into the visual editor — the rich text editor sanitizes on save and can strip your custom classes and embeds a second time. Fix and verify one product end to end before running the whole batch.
  4. Snapshot the description daily so the next app edit is one click to undo. The reason this hurts so much is that Shopify keeps no history of body_html — once an app rewrites it, the original markup is gone unless you happened to have an export. Going forward, keep a daily snapshot of the description HTML alongside your other SEO fields (meta title and description, alt text, tags, handles, structured data) so any mass rewrite surfaces the same day, flagged with the field that changed, the date, and the likely app behind it — and you roll the previous HTML back in one click instead of rebuilding layout product by product. Take one snapshot before you install or run any app that touches products.

Source: Shopify Help Center — "Export and import products with a CSV file"; Shopify Help Center — "Add and edit product descriptions" (rich text and HTML).

Related fixes

Never lose your SEO to an app again

SEO Vault keeps a daily snapshot of every SEO field on your store — meta titles, descriptions, alt-text, tags, handles (products AND collections) — and emails you the moment something changes in bulk, with the likely app responsible. One click restores yesterday's state, just the SEO fields. Free to monitor and get alerted; $14/mo for 1-click restore.

Protect my SEO — free →