All posts
Platform migrations

How to Import a CSV Into Webflow CMS Without Breaking Rich Text and Images

How to import a CSV into Webflow CMS without breaking rich text and images: prepare the file, fix the image placeholder issue and match references by slug.

By Mehdi Hassan6 min read

The short answer

To import a CSV into Webflow CMS, build the collection and its fields first, import referenced collections before the items that point to them, and use public image URLs and clean HTML for rich text. Images inside rich text often arrive as placeholders, so test a small batch and update those bodies through the Data API if needed.

Key takeaways

  • Create the collection and every field in Webflow before importing. The CSV fills fields; it doesn't create a good model.
  • Import authors, categories and other referenced collections first, then the posts that reference them.
  • Put slugs in reference columns so each value matches exactly one existing item.
  • Image fields need public, absolute URLs. Local paths and expired links fail.
  • Rich-text images can import as placeholders; test ten items before importing the rest.

Part of CMS Content Migration: How to Export, Clean and Import Content Between Platforms

How do you import a CSV into Webflow CMS?

You import a CSV into Webflow CMS by opening the collection in the CMS panel, choosing import, uploading the file, mapping each CSV column to a field, and reviewing the items before they're added. The import itself takes minutes. Preparing the file properly is what decides whether the result is usable.

Two problems cause most failed imports: rich text with images, which often comes through with placeholders instead of pictures, and reference fields that don't match existing items. This guide fixes both. If you're moving a whole site, start with our pipeline in CMS content migration, which puts the import in context.

How should you prepare a CSV for Webflow?

Prepare one CSV per collection, saved as UTF-8, with a header row and one column per Webflow field. Clean the data in the spreadsheet, not in Webflow, because fixing hundreds of items in the CMS editor is slow.

Webflow field

CSV value

Common error

Name

Plain text title

Duplicate names across items

Slug

lowercase-words-with-hyphens

Spaces, capitals or duplicate slugs

Plain text

Text, no HTML

Line breaks splitting rows

Rich text

Clean HTML

Platform classes, inline styles, nested wrappers

Image

Public, absolute image URL

Local paths or links that require login

Date/Time

A consistent, standard date format

Mixed formats in one column

Switch

true or false

Yes/No or blank cells

Option

Exact option name as set in Webflow

Spelling differs from the field's options

Reference

Slug of the referenced item

Names that match more than one item

If the content came from another platform, clean it on the way out. Our guide to exporting Webflow CMS content covers stripping Webflow markup, and migrating rich text between CMSs covers converting from Markdown, Portable Text or WordPress blocks to HTML.

What are the steps to import a CSV into Webflow CMS?

Import in seven steps, starting with the collection structure and ending with a check on staging. Don't skip the test batch.

  1. Build the collection

    Create the collection in Webflow and add every field with the right type, including references and SEO fields.

  2. Import referenced collections first

    Import authors, categories, tags and other collections that posts point to, so their items exist before posts reference them.

  3. Prepare the main CSV

    Clean rich text, check image URLs and put referenced items' slugs in reference columns.

  4. Import a test batch

    Import about ten rows that include rich text with images, references and every field type.

  5. Check the test items

    Open each one in the Designer and on the staging domain. Look for placeholders, broken references and wrong dates.

  6. Fix and import the rest

    Correct the CSV based on what failed, then import the remaining rows in batches.

  7. Publish and spot-check

    Publish to staging, compare a sample against the old site, then publish live.

Why do rich-text images import as placeholders?

Images embedded inside rich-text HTML often don't come through a Webflow CSV import as real images; they arrive as placeholders or are dropped. It's a known limit of the CSV route. Dedicated image fields import reliably from public URLs, but images inside rich text don't.

There are four ways to fix it, depending on how many posts are affected:

  • Move hero images to an image field. If most posts have one main image at the top, store it in a dedicated image field and remove it from the body.
  • Update bodies through the Data API. Import the text by CSV, then run a script that updates each item's rich-text field with the full HTML, including images, through the API.
  • Import everything through the API. For large or image-heavy blogs, skip CSV for posts and create items through the Data API from the start.
  • Reinsert by hand. For a few posts, upload the images into the rich-text editor manually after import.
What a Data API fix looks like

After the CSV import, each post exists in Webflow with an item ID. A script reads your cleaned HTML for each post, looks up the matching Webflow item by slug, and sends an update with the full rich-text body.

Image URLs in that HTML must be public and absolute. Re-host them first if they still point at an old platform. Add a short pause between requests to stay within Webflow's rate limits, and log every item that fails so you can rerun only those.

How do you import reference fields by slug?

Import reference fields by putting the referenced item's slug in the column and making sure that item already exists. Slugs are unique within a collection, so each value matches exactly one item, unlike names, which can repeat.

For a single reference, such as one author per post, the column holds one slug. For a multi-reference, such as several tags, the column holds a list of slugs. Check Webflow's current help article on CSV import for the separator and exact matching rules, since those details can change.

  • Import order matters. Referenced collections go first. A post that points to an author who doesn't exist yet imports with an empty reference.
  • Slugs must match exactly. Lowercase, same hyphens, no trailing spaces. A spreadsheet lookup against the referenced collection's export catches mismatches.
  • Fix the model while you're here. If categories were free text before, this is the moment to make them a proper collection. Our guide to content modeling for a SaaS site shows how.

What should you check after a Webflow CSV import?

After the import, check counts, a sample of items, every template page and your SEO fields. Webflow shows imported items in the collection list, but only a rendered page shows whether they look right.

  • Counts. Items in Webflow match rows in your CSV, per collection.
  • Rich text. Headings, lists, links and images render correctly on the template, with no placeholders.
  • References. Author cards, category labels and related-post lists show the right items.
  • SEO fields. Titles and descriptions are bound to page settings on the collection template.
  • URLs. Slugs match your old URLs, or have a 301 in your redirect sheet.

If you're importing large volumes to build pages at scale, plan collection limits and templates first; our guide to programmatic SEO in Webflow covers those limits. And before you import anything, make sure you're only moving content worth keeping, using a content audit before migration.

Frequently asked questions

Can a Webflow CSV import update existing items?
Webflow's importer is built mainly for adding items, and its options for matching and updating existing ones have changed over time, so check the current import screen before relying on it. For reliable bulk updates, such as fixing rich-text bodies after an import, use the Data API and match items by slug. That also lets you rerun updates safely.
How many items can I import into Webflow CMS?
The limit is set by your site plan's CMS item allowance, not by the CSV importer. Webflow changed its plans in May 2026, merging CMS and Business into a single Premium tier. Check Webflow's current plan page for your site, and split very large files into batches to make errors easier to find.
Why did my CSV import create duplicate items?
Usually because the file was imported twice, or because slugs in the CSV clashed with existing items and Webflow created new slugs with a suffix. Delete the duplicates, check that every slug in the CSV is unique and not already in the collection, and import again. A test batch catches this before it affects hundreds of items.
Do imported items publish automatically?
Imported items need to be published before they appear on the live site, and you can review them in the CMS first. Check the import options and the item status after import. Publish to the staging domain before going live, so you can check rendered pages, references and images with no risk to the public site.

· CEO & Design Director

Copywriter, designer and developer, and founder of Designify Studio. Over five years, 60+ projects across 14+ industries, for startups that have raised $300M+.

Want this done for you? Website, $8,000.

A multi-page marketing site, designed by us, developed in Next.js and animated. $8,000, one-time, up to 6 pages. Book a free 30-minute call to see if it fits.

Schedule Call