Framer is checking a new version of Blog Import, so its Marketplace page is offline for now. Need your blog moved before it's back? Email us and we'll help.

Blog Import / Guides

Framer CMS CSV import: when images don’t come across

A CSV is the quickest way to get rows into Framer’s CMS, and for text it works well. If you have a WordPress or Squarespace export, the free XML to CSV converter makes the file in your browser. Images are where blog imports go wrong, often days later, after the old site is switched off. Framer’s own guide to CSV import ends with a reminder to check for missing images (Import data from CSV). This is what to look for and why it happens.

Two kinds of images in a blog post

  1. The cover image, one per post, in an image field.
  2. Images inside the post body, in the rich text, often dozens per post.

They fail in different ways, so check both.

Why covers go missing

An image cell in a CSV holds an address, not the picture. For the image to arrive, it has to be fetched from that address during the import. When we built an importer and tested it on real blogs, imports lost covers for three reasons.

Framer’s CSV Import plugin (in the CMS view, under Plugins) guesses a type for each column. We read its source code on 28 October 2026. It only guesses Image when every address in the column ends in .jpg, .jpeg, .png, .gif, .webp or .svg. One address like cover.jpg?format=1500w, or one with no extension, and the whole column is guessed as Link. If the plugin is creating that field for you, Link can then only become Link or Plain text, not Image.

The way round it is to add an Image field to the collection yourself before importing, then map the cover column to it. The plugin accepts link addresses in an existing Image field.

The same code also decides drafts. A row becomes a draft only if the CSV has a column named :draft with a value such as true. Use true and false: the check matches any value containing 1, y or true. Without that column, new rows are published and rows that update an existing item keep its current state.

Why body images break later

Images inside the post text are usually left as links to the old host. Everything looks right after the import, because the old site is still up. When you cancel it, those images disappear. Squarespace warns that image links in its export can stop working once the site is closed.

To check, open a few imported posts in Framer, right-click an image in the body and copy its address. If it still points at your old domain, at squarespace-cdn.com or at wp-content/uploads, it isn’t in Framer yet.

How to keep them

That last step is the one that takes days by hand, so we built it into Blog Import. It reads a Squarespace, WordPress, Blogger, Medium or Ghost export directly, copies cover and body images into Framer at a steady pace so the old host doesn’t refuse, writes a post without its cover rather than dropping it when a cover can’t be fetched, and tells you which images it couldn’t copy. The newest 25 posts import for free.

Check after any import

Open the post with the most images, and the oldest post you have. Check the cover, every body image, and that each image address is a Framer one. Then you can switch off the old site.

More guides