Framer → WordPress
Move Framer CMS collections into WordPress with plugin CSV exports, then rebuild the design as a theme. Framer has no site export WordPress can import. Re-host images. Recreate redirects. Keep Framer live until WordPress no longer loads Framer URLs.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Framer
- A Figma-like canvas, components, and effects let small teams publish marketing sites quickly
- Editors get a purpose-built publishing workflow instead of raw files
- CMS exports go through plugins, and the published site is not a portable Designer or WordPress project
- Themes, extensions, and content models add maintenance and portability constraints
WordPress
- Unmatched ecosystem breadth and content ownership support almost any publishing model
- Editors get a purpose-built publishing workflow instead of raw files
- Plugin, hosting, security, and performance maintenance accumulate over time
- Themes, extensions, and content models add maintenance and portability constraints
WordPress: Unmatched ecosystem breadth and content ownership support almost any publishing model. This removes a major source-side concern: CMS exports go through plugins, and the published site is not a portable Designer or WordPress project.
What you lose: A Figma-like canvas, components, and effects let small teams publish marketing sites quickly. What you inherit: Plugin, hosting, security, and performance maintenance accumulate over time.
Jump to a section
Know the shape of the move.
This timeline assumes
- Self-hosted or hosted WordPress where you can install an import plugin and a theme.
- Each Framer CMS collection can be exported through a plugin as CSV or JSON.
- Framer stays public until images are on WordPress or another host you control.
- The site already documents Webflow → WordPress and Framer → Webflow as nearby routes.
- Pages and animations are a rebuild. The published HTML download is a reference, not a theme.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Site design and components | lost | critical | Framer components, effects, and breakpoints do not become a WordPress theme. The portability article lets you download published HTML for hosting elsewhere. That is static files, not PHP templates. | Choose a theme. Rebuild templates. Compare screenshots. |
| CMS collections | partial | critical | Export each collection as CSV or JSON. WordPress has no Framer importer. You map rows to posts, pages, or a custom post type. | Create the post types first. Import a sample. Then import the rest. |
| Rich text | partial | high | Keep HTML if the export still has markup. A plain-text column loses headings, links, and lists. | Open a few imported posts. Fix leftover Framer markup. |
| Images | partial | critical | Image fields often export as Framer URLs. Those URLs can die when you cancel Framer. | Sideload media into the WordPress library. Replace hosts before DNS. |
| References | manual | high | Authors, categories, and related items export as names or IDs. WordPress needs terms and related post IDs. | Import taxonomies first. Then map references. |
| Drafts | partial | high | Confirm the export marks drafts. WordPress import can publish them if you map status wrong. | Keep drafts as draft. Spot-check status. |
| Forms | manual | critical | Framer form destinations do not become a WordPress form plugin. | Rebuild each form. Send a test on the production domain. |
| Redirects | manual | critical | Copy Framer redirects into WordPress or the host. Framer redirects do not travel with the CSV. | Install the list. Test every changed path. |
| Localization | manual | high | Each locale needs its own export and a WordPress translation setup you already chose. | Do not invent a plugin. Use the stack you already run. |
| SEO metadata | manual | critical | Titles, descriptions, and canonicals need a WordPress pass. | Crawl both sites before DNS. |
| Comments | lost | medium | Framer sites often have no comment export that WordPress can load. | Archive what you have or add a new comment system. |
| Hosting and DNS | manual | critical | Replace Framer’s published DNS with the WordPress host. Keep Framer up until SSL and media pass. | Connect the domain on WordPress first. Switch DNS second. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Framer CMS collection | Posts, pages, or a custom post type | transform | Create the type first. |
| Title and slug | WordPress title and slug | transform | Keep keep-URLs. |
| Rich text HTML | Post content | transform | Prefer HTML over plain text. |
| Image URL | Media library attachment | transform | Re-host. |
| Reference to author or category | Author or taxonomy term | transform | Import terms first. |
| Draft flag | WordPress post status | transform | Do not publish drafts. |
| Framer page | WordPress page or template | manual | Rebuild. |
| Form | Form plugin | manual | New destination. |
| Framer redirect | WordPress or host redirect | manual | Copy the list. |
| Published HTML download | No destination | unsupported | Reference only. |
Make the move recoverable.
Create the source-of-truth backup
Keep Framer CMS exports, a URL crawl, and a published-file snapshot.
- Export each collection as CSV or JSON.
- Crawl public URLs and redirects.
- Download published files if you want a static snapshot.
- Save original images.
- Screenshot templates and forms.
Proof to capture: Export hashes, URL count, and a named restore owner.
CSV to WordPress
Load Framer items as posts or custom types.
- Create post types and taxonomies.
- Map CSV columns on a small file.
- Sideload images.
- Import the rest only after the sample looks right.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Redirects and media hosts
Keep old Framer links and stop Framer hotlinks.
- Write a redirect for every changed path.
- Replace Framer image hosts.
- Test keep-URLs.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
Imported posts still hotlink Framer
Content HTML still contains framerusercontent URLs.
- Consequence
- Images die when you cancel Framer.
- Mitigation
- Search the database for Framer hosts before DNS.
Stop if: A high-traffic post still requests Framer.
Drafts go public
Status mapped to publish.
- Consequence
- Unfinished pages appear on the live site.
- Mitigation
- Filter status after import. Compare draft counts.
Stop if: A draft collection item is public on WordPress.
Keep URLs change
WordPress added /blog/ or a trailing slash policy you did not plan.
- Consequence
- Search and campaigns 404.
- Mitigation
- Set permalinks first. Add redirects for anything that still changed.
Stop if: A cornerstone Framer URL misses WordPress after one redirect fix.
Do the work in this order.
- Days 1–4 · inventory
Inventory Framer
8–16 hours active3–4 days elapsedOwner review waiting- List collections, pages, forms, and redirects.
- Choose WordPress post types.
Depends on: Framer and WordPress admin access
Stop / go checkpointExport?
Go when: The type map is signed.
Stop when: A required collection has no export.
- Days 4–7 · backup
Export CMS
5–10 hours active2–3 days elapsedExports waiting- Export each collection.
- Crawl URLs.
- Save images.
Depends on: inventory
Stop / go checkpointImport?
Go when: Hashes and counts exist.
Stop when: An export is empty.
- Days 7–20 · pilot
Theme and import
22–55 hours active8–13 days elapsedTheme work waiting- Build or choose the theme.
- Import a sample.
- Sideload media.
- Write redirects.
Depends on: backup
Stop / go checkpointPreview OK?
Go when: Sample posts, images, and forms pass.
Stop when: Content still depends on Framer hosts.
- Days 20–25 · cutover
Switch DNS
4–10 hours active2–4 days elapsedDNS and SSL waiting- Freeze Framer edits.
- Import the last delta.
- Point the domain at WordPress.
Depends on: pilot
Stop / go checkpointWordPress is public?
Go when: URLs, SSL, and forms pass.
Stop when: A keep URL 404s.
- Days 25–28 · observe
Observe and close
4–8 hours active4–7 days elapsedSearch and form traffic waiting- Watch 404s.
- Keep Framer readable.
Depends on: cutover
Stop / go checkpointClose rollback?
Go when: No trigger fires.
Stop when: Images or redirects regress.
Cut over with a way back.
Cutover
Make WordPress the public site without losing the last Framer edits.
- Freeze Framer publishing.
- Re-export changed collections.
- Install redirects.
- Switch DNS.
- Send a production form test.
Proof to capture: WordPress serves the domain. Keep URLs resolve. Images do not use Framer hosts.
Rollback
Return the domain to Framer without losing WordPress-era posts you still want.
- Restore Framer DNS.
- Export WordPress posts written after cutover.
- Apply only reviewed posts back to Framer if needed.
- Keep the CMS exports.
Proof to capture: Framer serves the domain again.
- Images still on Framer
- Drafts published
- A keep URL 404s
- A production form fails
- Redirect loop
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Counts and status | Compare export rows to WordPress posts, including drafts. | Counts match. Drafts stay draft. | Count sheet. | |
V-02Blocking | Image hosts | Search content for Framer hosts. | No required image uses Framer. | Search report. | |
V-03Blocking | Keep URLs | Request every URL marked keep. | 200 on WordPress. | Crawl. | |
V-04Blocking | Redirects | Request changed Framer paths. | One 301. | Redirect results. | |
V-05Blocking | Production submission | Submit each public form. | The destination receives the test. | Form receipt. | |
V-06Blocking | Titles and canonicals | Crawl key posts. | Approved metadata. No accidental noindex. | SEO sample. | |
V-07 | Theme templates | Compare home, post, and page at two breakpoints. | Accepted layout. | Screenshots. | |
V-08Blocking | Single site | Inspect Framer and WordPress publishing. | WordPress alone is public. | DNS screenshot. |
Remove the scaffolding safely.
Safe after: Seven stable public days, no required Framer image hosts, and a signed report.
- Archive CMS exports and crawls.
- Re-host leftover Framer images.
- Keep Framer readable through the retention window.
- Cancel Framer only after media is independent.
- Revoke migration users.
- Schedule the next WordPress backup and redirect review.
Verify against the primary material.
Platform behavior changes. Check these sources and the review dates above before executing a production migration.
- Framer: porting your data from FramerAccessed 2026-10-31
- WordPress: importing contentAccessed 2026-10-31
- WordPress: Tools export screenAccessed 2026-10-31
- Framer: CSV import (collection field types)Accessed 2026-10-31