Skip to content

How to migrate from Framer to WordPress

Framer has no export that WordPress can import as a site. Each CMS collection leaves as a CSV file through a plugin Framer publishes, and a page's text can be read as markdown. The pages and the design are rebuilt, the images copied, and every old address redirected.

By
WP Ministry
Published

In short

  • Framer's help gives two different answers about downloading a site's HTML. Either way, WordPress has no importer for it.
  • Each CMS collection exports as a CSV file with CMS Export, a plugin Framer publishes. Static pages have no such export.
  • Adding ?md to a published page's address returns its text as markdown, on pages Framer has optimized.
  • Framer serves resized and converted copies of your images. Use the files you uploaded where you still have them.
  • Animations made in Framer do not come across. Each is made again in the new theme, made simpler or left out.
  • Put the redirects on the WordPress site, change the DNS last, and keep the Framer plan until the new site has been checked.

Framer has no export that WordPress can import as a site. As of October 2026, its help center describes content leaving Framer in three ways: each CMS collection as a CSV file, through a plugin; the project's redirects as a CSV file, through another; and the text of a published page as markdown. Beyond a picture of a page, it describes no export of the layout or the animations.

So this move is content brought across and a design rebuilt, with every old address redirected to its new one. This guide is for WordPress installed at a hosting company you choose.

What Framer's help says about exporting a site

Two articles in Framer's help center answer this, and they do not agree. Both show the same date, September 15, 2026.

  • "Can I export my website to HTML and self-host it?" says "Framer does not offer HTML export for self-hosting", and that published sites "cannot be exported as standalone HTML files".
  • "Porting your data from Framer" says "Every Framer site is published as standard HTML, CSS, JavaScript, and static assets", and "You can download these files at any time and move them to any hosting provider."

Neither article gives steps for a download. For this move the difference matters little. A published page is HTML that any browser can read and save, and that is not a file WordPress takes in: its Import screen, under Tools, lists importers for Blogger, LiveJournal, Movable Type and TypePad, RSS, Tumblr and WordPress's own export file, and none for Framer.

Should you move?

A WordPress site is files and a database that you hold. You can change its host, its theme or the person who works on it without building it again.

In return, you take on work that Framer now does for you. Framer's help says its hosting is built to work "without manual setup or maintenance", and that SSL certificates "are generated and renewed automatically". On WordPress those jobs belong to you or to someone you pay.

Staying on Framer is the better choice when:

  • The motion is the point. Animations and interactions made in Framer are made again from nothing, and they may not come out the same.
  • Nobody will look after a WordPress site. A WordPress site that nobody updates falls behind.
  • The problem is who can edit. Framer has a Content Editor role for CMS content, localization and on-page editing. If you depend on one designer for small text changes, that may be the fix.

If cost is the reason, add up both sides first. On WordPress you pay for hosting, for any paid theme or plugin, and for the time of whoever keeps it updated.

What moves and what does not

This table follows Framer's help center as of October 2026. What a plan includes changes, so check your own account before you rely on a row.

WhatHow it leaves FramerIn WordPress
CMS collections, such as blog posts or case studiesA CSV file for each collection, through the CMS Export pluginImported from the CSV.
A rich text field in a CMS itemWith its collection. One item at a time, it can also be copied as MarkdownBecomes the body of the post. Check headings, links and images.
Web pagesNo export that WordPress can import. A published page's text can be read as markdownRebuilt in the block editor.
ImagesFramer's help describes no download of the files you uploaded. The site serves resized, converted copiesEach file is added to the Media Library.
Design, animations and effectsNo export is described. A page or an element can be exported as a PNG or JPG pictureRebuilt in a WordPress theme.
Page titles and descriptionsNo export is described. For CMS pages, the words are in CMS fieldsEntered again.
FormsFramer sends each submission to email, a Google Sheet or a webhookRebuilt with a form plugin. Past submissions stay wherever they were sent.
Scripts under Custom CodeCopied by handAdded again.
Other languagesNo export is described. Each locale can have page paths of its ownWordPress's documentation says it does not support a multilingual site "out-of-the-box". Languages need a plugin or a site each.
Redirects made in FramerA CSV file, through the Redirect Sync pluginWritten again as rules on the WordPress site.

How long the move takes depends on what you can count: the pages, each rebuilt by hand; the collections and their fields; the images; the animations; the addresses that change; and whether there is a second language.

Other builders export different things: see the guides to moving from Webflow, moving from Wix and moving from Squarespace.

If you would rather hand the move over, our Framer to WordPress migration service rebuilds your pages in WordPress, brings the collections across and redirects every old Framer address.

Before you start

  • Check what the site is built with. If you inherited the site, the platform detector shows the platform behind its address.
  • Keep the Framer plan. You need the live site to copy from. Framer's help lists connecting a custom domain among the things a paid Site plan lets you do.
  • Find the files you uploaded. Framer's help describes no way to download an uploaded image as it was. If the originals are on a computer or in a shared drive, gather them now.
  • Know who holds the domain. Framer says it does not sell domains and is not a domain registrar, so the DNS records are edited wherever the domain is registered. A domain claimed with a yearly Framer plan is managed through Hover, a company Framer partners with. Make sure you can sign in there.
  • Read the order of a move once. The website migration checklist covers what to list first, what to do on the day and what to keep afterwards, on any platform.

Move the site

  1. Step 1: List every address

    Open /sitemap.xml on your domain. Framer generates that file for every published site and keeps it up to date as you publish. Copy every address into a spreadsheet with a column beside it for the new address.

    Framer's help does not say whether a page with "Search engines" turned off in its Page Settings is left out of the sitemap, so compare the list with the Pages panel. Mark each address as a web page or a CMS page. If the site has more than one locale, list each locale's addresses too: with "Translate Page Paths" on, a page has a different path in each language.

  2. Step 2: Export each CMS collection

    Open the project in Framer and open the Quick Actions menu with ⌘ K or Ctrl K. Search for CMS Export and open it. Framer's help says plugins "do not require installation". CMS Export is published by Framer, and its listing says it exports any CMS collection as a CSV file, with a preview before the file is made. Do this for each collection.

    Then open each file and read its first rows. The top row names the columns you will map in WordPress. Look at how a rich text field, an image field and a date are written, because your import has to handle each one. Framer's developer documentation shows each CMS item with a slug and a draft flag, so check that the file tells drafts from published items.

  3. Step 3: Export the redirects

    Open the Redirect Sync plugin the same way and select "Export". Framer's help says this exports all of the project's redirects as a CSV file. If the list is empty, the site has none, and you can skip this.

  4. Step 4: Save the text of each page

    Framer serves a markdown version of each published page. Add ?md to the page's address, as in https://example.com/about?md, and the browser shows the page's text as markdown in place of the page. Save it, or copy it into a document.

    Framer's help gives two limits. Markdown is made only for pages Framer has optimized, and it can be unavailable when the site is being rate-limited. It also says a "## Navigation" section of links is added at the bottom of each markdown page. Leave that part out when you paste.

    For one CMS item at a time there is a second route: open the item, click the three-dot icon in the top-right corner and select "Copy as Markdown".

  5. Step 5: Save a picture of each page

    A markdown file holds the words, not the layout. In the Framer desktop app, select a page and click "Export" in the bottom-right panel. Click the + icon, choose a size from 1x to 4x, select PNG or JPG, and click "Export". These pictures are a record of the layout to build from.

  6. Step 6: Write down what the site does

    • Forms. Each form and where it sends: Framer's native forms send submissions "to email, Google Sheets, or custom webhooks". Past submissions are in that inbox or that sheet, not in a file you export from Framer.
    • Custom code. Open Project Settings and the Custom Code tab. Copy each script, with where it is placed and which pages it runs on.
    • Titles and descriptions. For each web page, the Title and Page Description in its Page Settings. The site-wide defaults are in Site Settings.
    • Animations. Every effect a visitor would miss. A short screen recording of each is the best record.
  7. Step 7: Install WordPress at a temporary address

    Set WordPress up at your new host on a temporary address, not yet on your domain. Go to Settings, then Reading, and tick "Discourage search engines from indexing this site". WordPress's documentation says "it is up to search engines to honor your request", so add a password as how to set up a WordPress staging site describes.

    Then go to Settings, then Permalinks. A new site starts on "Plain", with addresses like /?p=123. Choose "Post name", or enter a "Custom Structure". The section on addresses below says which.

  8. Step 8: Decide where each collection goes

    WordPress keeps content in post types. Posts and pages are built in.

    • A blog collection becomes posts.
    • A collection of another kind, such as case studies or team members, becomes a custom post type. WordPress's documentation recommends defining one in a plugin, not in the theme, so that the content is not lost when the theme changes.
    • A collection used only to group others, such as categories or authors, becomes categories or tags.
  9. Step 9: Import the CSV files

    WordPress has no CSV importer of its own. There are three routes.

    • By hand. For a few dozen items, make each post, paste the text, and set its slug and date to match the CSV.
    • An import plugin. WordPress's documentation on importing says the WP All Import plugin "can import any XML or CSV file". Other plugins do the same job. Check what one imports before you rely on it.
    • A script. A developer can read the CSV and create each post. This suits large collections and fields that refer to each other.

    Whichever you choose, keep each item's slug, and import a few rows first.

  10. Step 10: Move the images onto your own site

    Framer hosts your images itself. Its help lists the domains its service uses, among them framerusercontent.com and framercdn.com, and says they are used for hosting assets, among other things. Right-click an image on your live site and copy its address. If the host name is one of Framer's, the file lives with Framer, and the new site must not go on loading it from there.

    Use the files you uploaded where you have them. Framer says it makes resized copies of every uploaded image, the largest no more than 4096 pixels on its longer side, and converts most of them to AVIF. A file saved from the live page may be one of those copies and not the file you uploaded.

    Add each image to the WordPress Media Library and point the post at the new copy. By hand: upload the image and replace it in the post. With WP-CLI, one command takes a file on the server or an address, adds it to the Media Library and makes it a post's featured image. Use your own file or address and the post's ID in place of 123:

    Leave off --featured_image to attach the image without featuring it. Add --alt="..." to set its alt text, which in Framer was entered on each image.

    bash
    wp media import ~/Downloads/image.png --post_id=123 --featured_image
  11. Step 11: Rebuild the pages and the design

    Each web page is made again as a WordPress page. Paste its text from the markdown you saved, give the page the slug it had on Framer, and lay it out with blocks, working from the pictures.

    The header, the footer and the layout that every post shares belong to the theme. With a block theme, they are edited in the Site Editor, under Appearance, then Editor. A Framer CMS page is one template that shows every item in its collection. Its WordPress counterpart is the theme's template for that post type.

  12. Step 12: Decide about each animation

    Framer's help says its animations are powered by Motion, an animation library that runs on JavaScript and React, and are made in Framer without code. Its help describes no export for them. Go through your list and mark each one: made again in the new theme by a developer, replaced by something simpler, or left out. Do not plan on the result matching the original exactly.

  13. Step 13: Rebuild the forms and add the scripts

    Rebuild each form with a form plugin. Send a test entry through each one and see that the mail arrives. Add each script from your Custom Code list again.

  14. Step 14: Carry the titles and descriptions across

    Enter each web page's title and description again. For CMS pages, Framer fills both from CMS fields with variables such as {{Title}}, so the words are in your CSV, in whichever columns the page settings used. WordPress's documentation of a page's settings lists a featured image, an excerpt and a slug among others, and no field for a search description. That is entered in an SEO plugin, so map those columns there.

Addresses and redirects

Links on other sites, bookmarks and search results all point at your Framer addresses. After the switch, an old address with no redirect shows a "not found" page to visitors and to search engines.

Kind of pageOn FramerOn WordPress
Web pageA path made from the page's name, such as /aboutThe page's slug, such as /about/. A page with a parent has the parent's slug first, as in /about/board-of-directors/
CMS itemAs in Framer's example /blog/my-article. Take each item's address from the sitemapFor posts, set by the permalink structure. For a custom post type, check the first imported item
Another localeA translated path, such as /lavora-con-noi for /careersDepends on how the languages are set up

Match what you can. If your posts sit at /blog/my-article, the custom structure /blog/%postname%/ puts WordPress posts at the same path. A web page keeps its address when it keeps its slug.

Do not assume the final slash. Framer's examples are written without a slash at the end, and WordPress's with one. WordPress normally sends one form to the other by itself: see "What WordPress already redirects" in how to set up redirects in WordPress. Request an old address on the new site to be sure.

Carry Framer's own redirects over. Redirects made in Framer live under Site Settings, then Hosting, then Redirects, and Framer's pricing page lists them on the Pro plan and not on Basic. Framer's help says they cover "sub-paths within your current domain". Once your domain points at the new host, Framer no longer receives those requests. So every redirect has to live on the WordPress side: the old ones from the file you exported, and a new one for each address this move changes.

Rewrite the patterns. Framer writes a wildcard as * in the old path and :1 in the new one, and matches one segment with a name such as :slug. A WordPress plugin or a web server writes patterns differently, so a rule cannot be pasted across as it is.

Send each address to its own page. Google's documentation on site moves advises "redirecting to the final destination directly", and warns against sending many old addresses to one unrelated page such as the home page, which "might be treated as a soft 404 error".

The redirect map builder turns your spreadsheet of old and new addresses into 301 rules for Apache or nginx and points out chains, loops and duplicates. The redirects guide above covers the other places a rule can live.

DNS and launch

Check these on the temporary address first.

  • Every row of the spreadsheet has a new page or a redirect.
  • No image is still loaded from Framer.
  • Every form sends, and its mail arrives.
  • You know which DNS records belong to your email. Framer's help says it does not manage DNS, so your mail records were never Framer's. Leave them alone.

For the images, WP-CLI can search the database for the host name you saw on your image addresses. Put that name in place of the one below. The command prints each place that still holds it, and prints nothing when none do:

bash
wp db search "framerusercontent.com"

Then make the switch.

  1. Step 1: Give WordPress the real address

    Change the site's address from the temporary one to your domain. How to change your WordPress URL covers the steps.

  2. Step 2: Point the domain at the new host

    To connect a domain, Framer has you create two A records for the root, with the values 31.43.160.6 and 31.43.161.6, and a CNAME record for www with the value sites.framer.app. Replace those with the records your new host gives you. Framer says DNS changes "may take up to 48 hours to propagate worldwide", though usually less.

  3. Step 3: Check the live site

    Untick "Discourage search engines from indexing this site" under Settings, then Reading, and take the password off. Send each form again. Run your old addresses through the redirect checker, which shows each hop and its status code. Each should reach its new page in one hop, with a 301.

  4. Step 4: Then deal with Framer

    Do not cancel or delete before the checks pass. Framer's help says that after you cancel a site plan, its benefits stay active until the end of the current billing cycle. It does not say what a connected domain shows after that, which is one more reason to change the DNS first.

    A published Framer site also has a base domain that Framer generates, and by default it shows the latest published version. So the old site can still be opened there to copy from, for as long as it stays published.

    Deleting is different. Framer says a deleted project's site is unpublished and the project "cannot be recovered". Delete nothing until you are sure you need no more from it.

After the move: what to check

How to migrate a website without losing SEO sets out what Google and Bing document about a move: what to watch in the weeks afterwards, and what to do when an old address was missed. Two points from Google's documentation apply to every move in this guide. Images are part of the move, and their addresses need moving like any other. And redirects should stay in place "for as long as possible, generally at least 1 year".

Three jobs are now yours.

  • Hosting. The server, its speed and its certificate for HTTPS are between you and your host. Framer issued the certificate for you. Check that the new host has issued one.
  • Updates. WordPress, the theme and each plugin get new versions, and someone has to see that they are applied.
  • Backups. WordPress's documentation says a backup has two parts, the database and the files, and that you need both to restore a site.

The WordPress maintenance checklist sets out what to do every week, month, quarter and year.

If you would rather hand the move over, ask for a free migration assessment. A platform migration is quoted in writing after a free assessment of what moves by itself and what has to be rebuilt.

Common questions

Can I download my Framer site's HTML and upload it to WordPress?

Not as a site. Framer's help says in one article that HTML export is not offered, and in another that the published files can be downloaded. Either way, saved HTML is not something WordPress imports: its Import screen lists no importer for Framer. Use the published pages as a reference to rebuild from.

Do the animations come across?

No. Framer's help describes no export for them. On WordPress each one is made again in the new theme, made simpler or left out, so decide first which ones the site needs.

Will my search rankings survive the move?

Nobody can promise that. What you control is that each old address leads to the same content at its new address, that each page keeps its title and description, and that the box asking search engines to stay away is unticked once the site is live.

When can I cancel Framer?

After the domain points at the new site, the redirects have been checked and no image is loaded from Framer. Keep the project in your account until you are sure you need nothing more from it.

More on this subject

Would you rather we moved it?

Moving a site or a store from one platform to another, with its old addresses redirected to the new ones. Quoted in writing after a free assessment of what moves by itself and what has to be rebuilt. The assessment is free.