To import blog posts into Webflow CMS in bulk without breaking formatting, you must format your body content as clean HTML in your CSV file and host all images on an external server so Webflow can download them via URLs. During the import wizard, you map the CSV columns to matching Webflow CMS fields, ensuring that reference field names align exactly with existing collections.
In my 8+ years as a Webflow Premium Partner, I have migrated dozens of large content sites containing hundreds of posts from WordPress, Medium, and custom systems. The CSV import tool in Webflow is powerful, but if you upload a raw, unoptimized spreadsheet, you will end up with broken layouts, unlinked authors, and stripped formatting.
Taking the time to prepare your CSV properly before hitting upload will save you hours of manual formatting cleanup. Here is the process I use to ensure a clean migration.
The Rich Text Trap: HTML vs. Plain Text
The most common mistake during a blog migration is importing raw text or markdown into a Webflow rich-text field. If you simply copy and paste text from your old database into your spreadsheet, Webflow will treat it as a single block of plain text. You will lose your H2 headings, your lists will turn into text lines, and your paragraphs will merge together.
To preserve your formatting, the content in your spreadsheet's body column must be wrapped in standard HTML tags.
For example, your CSV cell should look like this:
<h2>This is a heading</h2><p>This is a paragraph with a <strong>bold</strong> word.</p><ul><li>First item</li><li>Second item</li></ul>
Webflow's importer recognizes these tags and automatically converts them into rich-text elements. If your source website was built on WordPress, you can export your posts in HTML format. If your source files are in markdown, you must use a batch converter to turn them into HTML before building your CSV.
Ensure that you do not include wrapper elements like <body> or <html> inside the body column. The importer only needs the inline tags that apply directly to your paragraphs, headings, lists, and links.
How to Handle Blog Images
Webflow cannot upload local image files from your computer via a CSV. When you map an image column, Webflow looks for a public URL. It accesses that URL, downloads the image file, and saves it directly to your Webflow project assets.
This means all the images inside your blog posts must be hosted on a live, public server before you run the import.
If you are migrating from Wordpress, you should leave your old site active during the migration. The CSV should contain the live URL paths to the media uploads folder of your old site (for example, https://oldsite.com/wp-content/uploads/image.jpg). When Webflow processes the CSV, it will fetch the images from that server.
If your old site is already down, you must upload your images to an external cloud storage provider, like Amazon S3, Cloudinary, or Google Drive (using direct download links), and insert those URLs into your CSV image column.
Once the import is complete and Webflow has successfully copied the assets to its own hosting servers, you can safely shut down your old hosting or delete the external image folders.
Want a website that turns visitors into customers, not just compliments?
Book a 15-min introMapping Reference and Multi-Reference Fields
A standard blog structure relies on relationships. You have authors, categories, and tags that link to specific articles. Webflow supports this through single-reference and multi-reference CMS fields.
If you try to import your blog posts before setting up these relationships, the importer will fail to link them.
To link reference fields successfully, follow this sequence:
- Build the collections first: In Webflow, create your Authors collection, your Categories collection, and any Tag collections.
- Import the supporting data: Create your CSV files for Authors and Categories, upload them to Webflow, and publish the items.
- Align the names exactly: In your main Blog Posts CSV, the values in the "Author" and "Category" columns must match the Name field of the items in those collections exactly. If your author collection has "Jane Doe" but your CSV says "jane doe" or "Jane Doe ", the link will fail.
- Run the blog import: During the blog post import, map the Author column to your single-reference Author field. Webflow will scan the existing Author collection and automatically link the matching records.
For multi-reference fields, like tags, separate the items in your CSV column with a comma. Ensure that the individual tags already exist in your target Webflow collection.
Resolving Slugs and Avoiding Collisions
By default, Webflow will auto-generate slugs for your blog posts based on the post title. If your post is titled "My First Blog Post," Webflow will assign it the slug my-first-blog-post.
While this is convenient for new sites, it can damage your SEO during a migration. If your old blog post URL was /blog/first-post-tips, and Webflow changes it to /blog/my-first-blog-post, you will break your existing search engine index and lose your page rank unless you set up 301 redirects.
To prevent this, export your existing slugs from your old website and include them as a separate column in your CSV. When you run the importer, map that column directly to the Slug field in Webflow. This forces Webflow to use your existing URL paths.
If Webflow detects duplicate slugs, the importer will append a number to the end of the second item, such as my-first-blog-post-1. Keep an eye out for duplicate titles in your CSV to avoid these collisions.
Pre-Import Testing Checklist
Before uploading a spreadsheet containing hundreds of posts, run a small-batch test.
Create a copy of your CSV and delete all but three rows. Run the import with this test file first. This allows you to inspect the results on your template page. Check the body text to make sure the HTML formatting rendered correctly, make sure the images are sharp and loaded properly, and verify that the author and category links are active.
If the test looks good, delete those three test items and run your full import.
If you are planning a complex site migration or need strategic help structuring your CMS schemas, take a look at my Webflow strategy page. For agencies looking to hand off large migrations smoothly, you can also view my white-label Webflow development services to see how I handle bulk migrations under the hood.
Migrating a blog does not have to be a stressful manual task. By preparing clean HTML formatting, organizing your image hosting, and following the correct import order, you can move thousands of articles into Webflow in minutes.