Webflow CMS

How to Import a Big Blog into Webflow CMS via CSV Without Breaking Formatting

TS Talha Shahzad··5 min read
The short version
  • Webflow rich-text fields require clean HTML tags in the CSV to maintain formatting
  • Images must be hosted externally and represented by direct URLs for Webflow to import them
  • Import referenced collections like Authors and Categories first to establish relations
  • Slugs should be imported explicitly to preserve your existing SEO URL structures
  • Testing your CSV import with a small batch of three to five items prevents large-scale cleanup errors

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 intro

Mapping 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:

  1. Build the collections first: In Webflow, create your Authors collection, your Categories collection, and any Tag collections.
  2. Import the supporting data: Create your CSV files for Authors and Categories, upload them to Webflow, and publish the items.
  3. 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.
  4. 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.

Prefer to hire through Upwork?
Top Rated Plus, 100% Job Success, 450+ projects shipped. See the reviews and start a contract.
Hire me on Upwork

FAQ

Can I import markdown files directly into Webflow CMS?

No. Webflow does not parse markdown natively during a CSV import. You must convert your markdown content into clean HTML format before placing it in the CSV body column.

What happens to image files when importing via CSV?

Webflow cannot read binary image files from a spreadsheet. The CSV must contain the public URL of the image. During import, Webflow downloads the image from that URL and stores it in its own hosting server.

Why did my category reference fields fail to link during import?

This happens if the category names in your blog post CSV do not match the names in your Webflow Categories collection exactly. Ensure spelling, capitalization, and spacing are identical, and make sure you import the categories list first.

All posts
the next step is small

Want a site that does this for you?

15 minutes, no deck, no pressure. Worst case, you leave with a free plan.

keep reading

More notes