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.
Build the collection
Create the collection in Webflow and add every field with the right type, including references and SEO fields.
Import referenced collections first
Import authors, categories, tags and other collections that posts point to, so their items exist before posts reference them.
Prepare the main CSV
Clean rich text, check image URLs and put referenced items' slugs in reference columns.
Import a test batch
Import about ten rows that include rich text with images, references and every field type.
Check the test items
Open each one in the Designer and on the staging domain. Look for placeholders, broken references and wrong dates.
Fix and import the rest
Correct the CSV based on what failed, then import the remaining rows in batches.
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.
