A CSV import. You export your existing content into a spreadsheet, shape the columns to match your Webflow Collection fields, then upload the file and map each column to a field. Webflow creates one Collection item per row. A few hundred posts land in minutes instead of days of copying and pasting.
We do this on nearly every migration we run. The import itself is the easy part. The work that decides whether it goes smoothly happens in the spreadsheet, before you ever open Webflow.
Here is the process we follow, the limits that actually bite, and the failure modes worth knowing about in advance.
A CSV import reads a comma separated file and turns each row into a Collection item. During the upload, Webflow shows you every column in your file and lets you choose which Collection field it feeds. Columns you do not need can be skipped. Nothing is written until you confirm the mapping.
The mental model that helps is a spreadsheet with one row per item. Your header row names the columns, and each header gets pointed at a field like Name, Slug, Post Body, or Published Date.
Webflow's own documentation notes a detail that saves confusion later: exported Webflow CMS content is already formatted correctly for importing. Moving content between two Webflow sites needs almost no preparation at all.
The ceiling comes from your Site plan, not from the import. Webflow's published pricing lists 2,000 CMS items on the Standard site plan, and up to 10,000 on both Plus and Advanced. Enterprise starts at 20,000, with the note that you can add more for a separate fee.
Collections have their own ceiling. Webflow lists 20 CMS Collections on Standard, and 40 on Plus and Advanced. Enterprise allows 100.
Check this before you migrate, not after. Discovering a plan ceiling partway through a WordPress export is a common way to lose an afternoon, and the only fixes are a plan upgrade or a smaller set of content.
If you are close to a boundary, this is also the moment to prune. Most large blogs carry a long tail of posts nobody reads, and migrating them costs you plan tier and crawl budget for no return. Our post on migrating from Squarespace to Webflow covers how we decide what makes the trip.
Build the Collection first, then shape the spreadsheet to match it. Create every field you need in Webflow, with the right field types, before you export anything. Then rename your spreadsheet headers to match those field names exactly. Mapping becomes obvious instead of a guessing game.
Slugs deserve special attention. If you are migrating an existing site, keep the old slugs wherever you can, because changing them means every inbound link and every ranking has to be redirected. Bring the slug across as its own column rather than letting Webflow generate new ones.
Clean your dates next. Mixed formats in a date column are the single most common reason an import produces items with empty publish dates. Pick one format across the whole file before you upload.
Then look hard at your rich text. Webflow will accept HTML into a Rich Text field, but it normalises what it receives, so unusual markup from an old CMS may not survive intact. Import twenty rows first and read them before you commit to four thousand.
By putting the referenced item's name in the cell, and matching it to a Collection that already exists. Webflow added this in an update titled "CSV import now supports reference and multi-reference fields," launched on 11 November 2020. Before that, reference fields had to be set by hand after import.
The formatting rules are simple and strict. Webflow's update states that "multi-reference field content should be separated by semicolons within its cell," and gives the example "Charles Dickens; Jane Austen; Charlotte Bronte." Single reference content "can be formatted as normal text, no special formatting required."
Order matters here. Import your Categories or Authors Collection before the Collection that references it, because Webflow checks the referenced Collection during the import. As the update explains, Webflow "checks the referenced Collection to confirm the imported values map to existing content in that Collection," then sets the values automatically.
If reference fields are new to you, our guide to Webflow reference fields explains how they change what you can build on the template page.
Webflow does not fail the row. It changes the item's status instead, and leaves the reference blank. What status it picks depends on whether the field was required, and this behaviour catches people out because the import looks successful.
Webflow spells out both cases. If a cell mapped to a required reference field is empty or contains no values that exist in the referenced Collection, "the item for that row will set to a draft upon import, and the reference field will be left blank."
If the field is not required, the same mismatch means "the item for that row will be set to staged for publish upon import, and the reference field will be left blank."
The practical lesson is to sort your Collection by status straight after an import. A pile of unexpected drafts is Webflow telling you your category names did not match, usually because of a stray capital letter or trailing space.
Anything that is not really a row of text. Images referenced by URL will pull in, but only if those URLs are publicly reachable at the moment of import. Point at a staging server that goes away next week and you will have a Collection full of broken images.
Encoding is the other quiet problem. Export as UTF-8 or your apostrophes and accented characters arrive as mojibake. Google Sheets and Microsoft Excel both let you choose this on export, and Excel in particular will pick something else if you let it.
Field types also constrain you. A column of free text cannot be mapped into an Option field unless those exact option values already exist in Webflow, so build your options first.
And an import is not an update. Running the same file twice creates a second set of items rather than refreshing the first, so treat every import as additive and plan accordingly.
When the content needs to keep arriving, rather than arrive once. A CSV import is a one time bulk load. The Data API is how you sync content on a schedule, push items from another system, or update existing items programmatically.
Webflow's pricing page lists the content management API at 120 requests per minute on its CMS site plans. That is enough for steady syncing and not enough for a naive loop that fires one request per item without pausing.
We reach for the API when a client's source of truth lives somewhere else, such as Airtable, Notion, or a product database. The CSV route makes sense when you are moving in once and never looking back. Our Webflow Data API guide covers the setup in more detail.
Tools like Zapier and Make sit in between. They use the same API underneath, and they suit small recurring syncs where writing code would be overkill.
Spot check before you publish anything. Open five or six items across the Collection, not just the first one, and read the rich text properly. Then filter by status to catch the drafts Webflow created when references failed to match.
Check your slugs next. If Webflow generated new ones because your slug column was missing or malformed, you need to know now, while fixing it is still a bulk operation rather than a redirect map.
Then load a template page on the published site and look at what renders. Empty fields do not always look empty in the Designer, but they are obvious the moment the layout has to lay them out.
Finally, resubmit your sitemap so Google can find the new URLs. A migration that imports perfectly and never gets crawled has only done half its job.
Test with twenty rows. Build the Collection, export a small slice of your content, run the full import on that slice, and read every field of every item. Fix what breaks in the spreadsheet, then delete those items and run the real file. That single rehearsal saves most of the pain.
Decide on slugs and redirects before the import rather than after. Those two choices determine whether your search rankings survive the move, and they are far cheaper to get right the first time.
And be honest about what you are bringing across. A migration is the best chance you will ever get to leave behind the content that was never working anyway.
If you are staring at a few thousand posts and would rather not find out the hard way where the edges are, we do this regularly and are happy to talk it through. You can find us at phoenix.studio, and we usually reply within a couple of days.
Tell us where you want to go. We'll tell you how we'd get you there.