How to Export Code From Webflow: 2026 Migration Checklist
To export code from Webflow, open the site, press Shift + E (or go to Main menu > Code export), click Prepare ZIP and download the file. You need a paid Workspace plan for it; the cheapest is Freelancer at $16 a month billed yearly, as of October 2026. The ZIP leaves out CMS content, Ecommerce, form handling, site search, password protection, secondary locales, the sitemap, robots.txt and 301 redirects.
That's the easy part. If you build client sites in a Freelancer or Agency Workspace, Webflow's new Site plan prices reach them at their first renewal or billable change on or after November 16, 2026, and you might be deciding which ones to migrate. A live client site is a different job from a ZIP on your desktop: Google knows its URLs, the forms have to keep landing somewhere, and the old site shouldn't go dark early. This is the full Webflow migration checklist: what to save, how to keep every URL working, and when to switch DNS.
What does Webflow's code export include?
Webflow's code export is a ZIP of the whole site as static HTML, CSS and JavaScript, plus your images; there's no per-page option. Per Webflow's help center, forms, navbars, sliders, tabs and interactions all rely on the exported JS, so don't delete it. Here's the shape of a real export, going by Webflow exports people have published on GitHub:
your-site/
index.html
about.html
detail_post.html <- CMS template page, exported empty
401.html
404.html
css/
normalize.css
webflow.css
your-site.webflow.css
js/
webflow.js
images/
fonts/ <- custom fonts, if you uploaded any
documents/ <- other uploads, such as Lottie JSON files
Two more things worth knowing:
- Pages are
.htmlfiles, and links point at them. Your nav links toabout.html, not/about. Remember that. It comes back in the URL section. - jQuery still loads from Webflow. Exported pages pull jQuery 3.5.1 from
d3e54v103j8qbb.cloudfront.net, Webflow's CloudFront address, and some newer exports also load scripts fromcdn.prod.website-files.com. It works, but it isn't fully self-contained.
What does Webflow's code export leave behind?
A Webflow export is a snapshot of the front end. Anything that needs Webflow's servers stays behind:
What the Webflow export keeps and leaves behind, checked October 2026.
| Feature | In the export? | What to do | Source |
|---|---|---|---|
| CMS Collection content | No. Template pages export empty and Collection lists show their empty state | Export a CSV per Collection, then pick a route below | Code export |
| CMS images and files | No. The CSV lists them as Webflow-hosted URLs, which break if the site is deleted | Download them before you delete anything | CMS CSV export |
| Forms | They render but don't submit. File upload and reCAPTCHA don't work. Past submissions are exported separately | Point each form at a form service and export the submissions CSV | Code export, Form submissions |
| Ecommerce | No (products and checkout) | Stay on Webflow | Code export |
| Site search | No | Add a third-party search tool or drop search | Code export |
| Secondary locales | No. Only the primary locale is exported | Stay on Webflow, or rebuild the locale pages | Code export |
| Password protection (page and site) | No. Protected pages become public | Password-protect the new site with the host's access control | Code export |
| Code components | No | Rebuild them outside Webflow | Code export |
sitemap.xml and robots.txt | No. Webflow generates them as hosting features | Save the live files and upload them with the export | Sitemap, robots.txt |
| 301 redirects | No, but you can export them as a CSV | Recreate them on a host with redirect rules | 301 redirects |
| Lottie animations | Yes, but they won't load from file:// | Test from a local web server | Code export FAQ |
| Custom code embeds | Yes | Check third-party scripts still load on the new domain | Custom code embed |
| Interactions | Yes, they run from the exported webflow.js | Click through every animated section | Code export |
A mostly static site (portfolio, marketing site, landing page) is covered once forms and the files below are handled. CMS content needs a plan of its own.
CMS content: three routes
- Rebuild from the CSV. Each Collection exports as a CSV, with rich text as HTML, so a static site generator or a few hand-built pages can recreate it. If the client needs a real CMS afterward, moving from Webflow to WordPress is the other well-worn path, and moving a Webflow site to Framer works from the same CSVs.
- Keep it on Webflow. For CMS-heavy sites, Webflow Premium at $25 a month billed yearly ($39 monthly, as of October 2026) is often the sensible answer. Export the brochure sites, keep the content-heavy ones.
- Crawl a snapshot. A crawler saves every published CMS page as plain HTML, frozen as it looks today. It's workable for your own sites, or for a client's with their sign-off once you've read Webflow's acceptable use policy. The checks are in the exporters section below.
Which Webflow plan do you need to export code?
Code export lives on paid Workspace plans; a Site plan or the free Starter Workspace won't do, per Webflow's help center. As of October 2026, the cheapest way in is Freelancer at $16 a month billed yearly. In-house teams start at Core, $19 a month billed yearly.
Webflow Workspace plans per webflow.com/pricing, checked October 2026.
| Plan | Billed yearly | Billed monthly | Code export? |
|---|---|---|---|
| Starter | Free | Free | No |
| Core | $19/mo | $28/mo | Yes |
| Growth | $49/mo | $60/mo | Yes |
| Freelancer | $16/mo | $24/mo | Yes |
| Agency | $35/mo | $42/mo | Yes |
Code export belongs to the Workspace, so one paid plan covers every site in it.
Third-party Webflow exporters
Look for a free way to export Webflow code and you'll find tools that skip Webflow's export and crawl the published site instead:
- ExFlow (exflow.site, which the old Webflow Exporter address now redirects to). It says it includes CMS collection pages, with a free tier and paid plans from $5.99 a month (October 2026).
- NocodeXport (nocodexport.com). Paste a URL, get a ZIP; full-site exports are a one-time paid purchase per site (October 2026).
- HTTrack and wget. General-purpose copiers that mirror any public site.
You get a frozen snapshot of the rendered pages, CMS item pages included. Three checks before you rely on one:
- Asset paths. Search the saved HTML for Webflow domains. Images or scripts still loading from Webflow's servers will disappear with the Webflow site.
- The terms. Read Webflow's terms and acceptable use policy (effective October 6, 2026), which has a clause about page-scraping tools, plus the tool's own disclaimer. ExFlow's footer says complying with Webflow's terms is your responsibility.
- Forms and interactions. Same rules as the official export.
I'm not endorsing any of these. For a paying client's site, the official export plus the checklist below is the path I'd stand behind.
Before you export: what to save from Webflow
Before you export, save the sitemap and robots.txt, the 301 redirects CSV, a CSV per CMS Collection plus its images and files, past form submissions, any secondary-locale URLs and each page's SEO settings, then point the forms at their new backend. Treat it like a save point before a boss fight: once the Site plan ends, Webflow unpublishes the site, and some of this gets a lot harder to recover. Work through it while the site is still live:
- Save
/sitemap.xmland/robots.txt. Open both on the live domain and save the files. The sitemap doubles as your list of every URL that has to keep working. - Export the 301 redirects. Site settings > Publishing > 301 redirects > Export. Webflow emails you a link to the CSV.
- Export a CSV per CMS Collection. CMS panel > pick the Collection > Export, once per locale. Then download the images and files: Webflow's help center warns that the links in the CSV break if you delete the site, images inside rich text included.
- Export form submissions. Site settings > Forms > View submissions > Export all, per form. Uploaded files come through as URLs, so download those too.
- List secondary-locale URLs. With Localize on, the sitemap carries hreflang tags for every locale. Decide now where those pages go.
- Set each form's Custom action in the Designer (see the forms section). Do it after step 4: once a form uses a Custom action, Webflow stops storing its submissions.
- Check each page's SEO settings. Title, meta description and Open Graph image live in Page settings. If Site settings > SEO > Global canonical tag URL is empty, set it to your site's default domain (like
https://www.example.com, no trailing slash) and publish before you export.
How to export a Webflow site (step by step)
- Open your site in Webflow.
- Open Code export. Click the "W" logo in the upper-left corner for the Main menu, then choose Code export. Or press Shift + E.
- Minify the HTML (optional). In the export window, press Cmd + O (Mac) or Ctrl + O (Windows) to reveal a hidden Minify HTML checkbox, and tick it.
- Click Prepare ZIP.
- Download the ZIP file.
Next, unzip it and test it from a local web server, not by double-clicking index.html, because Lottie animations won't load from your file system. With Python 3 installed:
cd ~/Downloads/your-site
python3 -m http.server 8000
Open http://localhost:8000, click through every page, trigger the interactions and resize the window to check breakpoints. Ctrl + C stops the server.
Fixing forms after export
Forms are the part most likely to break silently. They still render, but submissions go nowhere, because Webflow's form handling needs a Webflow Site plan. Swap in a third-party form backend, and do it in the Designer so every re-export ships with a working form.
Option 1: Formspree
Formspree's Free plan handles 50 submissions a month, and Formspree pitches it "for testing and development" (October 2026).
- Sign up at formspree.io and create a form to get its endpoint URL
- In the Webflow Designer, select your form and open the Settings panel
- Under Send to, remove the Webflow and Email notifications destinations (they can't be combined with a custom action), then add a Custom action with your Formspree endpoint as the URL
- Set the method to
POST, save, publish and re-export
Hand-edit the exported HTML instead and your next re-export wipes the fix. The form tag in the export ends up roughly like this (Webflow adds a few attributes of its own):
<form action="https://formspree.io/f/your-form-id" method="POST">
<!-- your existing form fields stay the same -->
<button type="submit">Send</button>
</form>
Option 2: Formspark or Basin
Formspark (250 free submissions per account, one-time) and Basin (one endpoint, 50 a month, 30-day data retention on free) work the same way, as of October 2026.
Option 3: Netlify Forms (if you host on Netlify)
Netlify picks up forms with a data-netlify="true" attribute: add it in the Designer as a custom attribute on the form (name data-netlify, value true) so it survives re-exports, then turn on form detection under Forms in the Netlify UI. Its examples use method="POST", so check the exported <form> tag, and keep in mind this ties your forms to Netlify hosting.
Whichever you pick, send a real test submission from the new host before the cutover.
How do you keep your URLs working after leaving Webflow?
Old URLs keep working only if the new host serves about.html at /about, as every host in the table below does. Then recreate the 301s from the exported CSV and check every sitemap URL on the preview before DNS switches. Most Webflow export guides skip this part.
On Webflow, your About page lived at /about. In the export, it's about.html, and the export's own links point there, so clicking around works anywhere. But Google indexed /about, other sites link to it, and it might be on the client's business cards.
How hosts handle /about for an exported about.html, checked October 2026.
| Host | /about serves about.html? | Redirect rules | Source |
|---|---|---|---|
| Cloudflare Workers static assets | Yes, by default. /about.html gets a 307 redirect to /about | _redirects file, up to 2,000 static and 100 dynamic rules | HTML handling, Redirects |
| Netlify | Yes (200 in a live test, October 15, 2026) | _redirects file or netlify.toml | Redirects, live netlify.app test |
| GitHub Pages | Yes. /about.html also returns 200 | None (no server-side 301s) | Test of a Webflow export live on github.io, October 15, 2026 |
| Hostsmith | Yes. /about.html also returns 200 | None | Hostsmith team test deploy, October 19, 2026 |
Netlify's docs describe Pretty URLs (on by default) redirecting these paths differently from what the test showed, so run the URL check below on your own site; it catches either behavior. Host not on the list? Test it the same way. Webflow's own FAQ points Apache users to an .htaccess rule for dropping the .html.
Check every URL before the DNS switch
Deploy the export to the new host's preview URL first, with your saved sitemap.xml in the folder you run this from:
LIVE="https://www.example.com"
NEW="https://example-preview.netlify.app"
grep -q "<loc>$LIVE" sitemap.xml || echo "LIVE doesn't match the sitemap's domain"
grep -o '<loc>[^<]*</loc>' sitemap.xml | sed -e 's|<loc>||' -e 's|</loc>||' -e "s|$LIVE|$NEW|" |
while read -r url; do
code=$(curl -s --max-time 10 -o /dev/null -w '%{http_code}' "$url")
[ "$code" = "200" ] || echo "$code $url"
done
What each part does:
LIVEis the domain exactly as your sitemap writes it, andNEWis the preview URL, both without a trailing slash.- The first
grepis a guard: ifLIVEdoesn't match the sitemap, nothing gets swapped and the loop silently tests the old Webflow site. - The second
greppulls every<loc>entry out of the sitemap, andsedstrips the tags and swaps in the preview domain. - The loop requests each URL with
curl, gives up after 10 seconds, and prints anything that isn't a 200. No output means every URL answered.
Expect CMS item URLs in that list unless you rebuilt or crawled those pages. That's your to-do list. After the DNS switch, set NEW to the same value as LIVE and run it again.
Canonicals. On Netlify, GitHub Pages and Hostsmith both /about and /about.html return 200, and the export links to about.html, so the canonical tag tells Google which one counts. Webflow builds each page's canonical from the global canonical URL plus the page slug. Check a few exported pages: <link rel="canonical"> should use the clean /about form on the live domain, not a .html path, webflow.io or the preview URL.
Redirects. Turn the exported CSV into rules wherever the host supports them. Each row is an old path and a new one, so in a _redirects file it becomes one line:
/old-services /services 301
Spell out the 301: Cloudflare uses a 302 if you leave the status off. On a host without redirect rules, those old paths will 404; if any of them still get traffic or links, pick a host with a _redirects file. The fallback is a stub page at the old path with an instant meta refresh, which Google's redirect docs say it treats as a permanent redirect.
When to cancel Webflow hosting and switch DNS
Switch DNS while the Site plan still has time left, then let the downgrade take effect at the end of the billing period, so the old Webflow site stays up as your fallback.
Canceling a Site plan (Site settings > Plans > Website tab > Downgrade to Starter, after removing any add-ons) removes the custom domains and unpublishes the site, on both the custom domain and webflow.io, at the end of the current billing period. Purchases are non-refundable, and "Downgrade now" skips the overlap, so don't use it. If the cutover slips, Webflow Support can cancel a scheduled downgrade. Scheduled before the renewal, the downgrade ends the Site plan, so there's nothing left to reprice. Whether a given site should move at all is a money question, and the Webflow Freelancer and Agency Workspace plans post models a ten-site book.
The order:
- Deploy and test early. Add the saved
sitemap.xmlandrobots.txtto the export (minus URLs you're not keeping), deploy to the preview URL and run the URL check. - Schedule the downgrade to Starter once that check passes, before the renewal date.
- Lower the DNS TTL on the domain's records, then wait at least as long as the old TTL.
- Switch DNS to the new host, well before the billing period ends. Add both
example.comandwww.example.comon the new host, and check that the one Google didn't index redirects to the one it did. - Wait for the SSL certificate to issue on the new host.
- Run the URL check against the live domain.
- Submit the sitemap in Google Search Console.
Keep the Workspace plan if you'll re-export: every design change means a fresh export, and the site now counts as one of your Workspace's staging sites (10 on Freelancer, unlimited on Agency, as of October 2026).
Where to host the export
Any static host can serve the files; the URL table above is what separates them. For prices and limits, compare hosts for an exported Webflow site. One gotcha each:
- GitHub Pages: GitHub's docs say Pages is "not intended for or allowed to be used as a free web-hosting service to run your online business", which rules out most client sites. More in GitHub Pages alternatives.
- Netlify: the Free plan gets 300 credits a month, a production deploy costs 15 and each GB of bandwidth 20 (October 2026). When a Free account runs out, every project on it is paused.
- Cloudflare (Workers static assets or Pages): the Pages docs say "Start new projects with Workers", and requests to static assets are free and unlimited (October 2026).
Hostsmith (Drag-and-Drop, Fast CDN)
Hostsmith takes the exported ZIP as is: drag it onto the page and the site is live in under a minute, on a hostsmith.link address you can show the client before the domain moves over. No Git, no build configuration, no framework selection screens.
Run the URL check above against the hostsmith.link address before the domain moves. Hostsmith answers /about from about.html, so the static pages in the old sitemap should all come back 200.
Your site gets served from a global CDN, so it loads fast regardless of where your visitors are. As of October 2026, the Free plan gives you one site with 5,000 monthly visitors on a hostsmith.link address and 5 MB of storage (also the cap on a single upload), so it suits a lean landing page or a quick client preview. An image-heavy portfolio export will outgrow it fast. If you're hosting several client sites, Pro costs $15 a month on yearly billing ($21 on monthly) and covers 5 sites with custom domains, 500 MB of storage and 100,000 monthly visitors (you'll still need a Workspace plan for the exports, if you don't already pay for one).
For agencies moving client sites off Webflow regularly, that's one bill and one dashboard for all of them, from the ZIP to the client's own domain.
If you want a deeper comparison of drag-and-drop platforms, there's a breakdown of drag-and-drop website hosting options that covers the workflow differences in detail.
When you should NOT export from Webflow
Exports suit sites whose content is set once: landing pages, event pages, a portfolio website. Keep the site on Webflow hosting if:
- It depends on something in the table you can't replace. CMS content none of the three routes fits, Ecommerce, or secondary locales.
- The client edits content themselves. Client seats let them edit in Webflow (1 per site on Freelancer, 3 on Agency, as of October 2026); after an export, their edits need a re-export and redeploy to go live.
If the client wants off Webflow altogether, a rebuild elsewhere is the other route; start with these Webflow alternatives for client sites.
The export is the easy part
Pressing Shift + E takes a minute. The migration is the URL check and the renewal date. If the check isn't clean two weeks before the renewal, renew once more and do it properly (on a yearly site, check whether a month on monthly billing is the cheaper bridge).
Frequently asked questions
Can I export Webflow code for free?
Not with Webflow's own tool: it needs a paid Workspace plan, from $16 a month billed yearly for Freelancer (October 2026). Crawler-based exporters like ExFlow, NocodeXport, HTTrack and wget can copy the published site without one, but read Webflow's acceptable use policy and check the asset paths first.
Does Webflow export CMS content?
No. Collection lists show their empty state and template pages come out blank. Export each Collection from the CMS panel as a CSV, and download its images, because the Webflow-hosted URLs in the CSV break if the site is deleted.
Will my Webflow interactions still work after export?
Yes. Per Webflow's help center, interactions run from the exported JS, so keep the js folder intact. Lottie animations work too, but only from a web server, not straight from disk.
Can I re-import exported code into Webflow?
No. Webflow's migration overview says there's no automated way to convert a site from another platform into Webflow, and that migrating to Webflow "will be a rebuild, not a transfer." What does go back in: 301 redirects and CMS Collections, both as CSV files imported into another Webflow site (file fields need uploading by hand).
Do I still need a Webflow plan after exporting?
Not for the site to work: Webflow says the export needs no attribution and no Webflow plan on your own server. You do need a paid Workspace plan for each future export.
What happens when I cancel the Webflow Site plan?
Webflow removes the custom domains and unpublishes the site, on both the custom domain and webflow.io, at the end of the billing period, with no refund. The cutover steps above show how to time it.