Moving a site off WordPress is less about the technology and more about not losing anything on the way: content, search rankings, forms and the team’s ability to edit. Done carefully, it is a satisfying project. Done in a hurry, it leaves broken links and an annoyed marketing team.
This is the plan I would follow for a typical marketing site.
Is your site a good fit
Static suits sites that are mostly pages and posts, change a few times a week, and use forms for enquiries. It suits sites less well if they rely on logged-in users, memberships, an online shop with live stock, or plugins doing heavy work on every request.
Before starting, list every plugin and what it does. For each one, decide whether it is still needed and how its job will be done on the static site. If several have no reasonable replacement, static sites vs WordPress for teams may help you decide whether to stay.
Planning the migration
Write down:
- Every URL on the current site. Crawl it, and export the list of posts and pages from WordPress.
- Content types: posts, pages, custom post types, categories, tags, authors.
- Forms and where their submissions go today.
- Integrations: analytics, newsletter sign-ups, chat widgets, tracking scripts.
- Who edits the site and what they edit.
- What the design should be. A migration is a natural point to rebuild templates cleanly rather than copy a theme.
Exporting content
WordPress can export posts and pages as an XML file from Tools > Export. Conversion tools for most static site generators can turn that into Markdown files with front matter. Expect to clean up the result:
- Shortcodes come through as raw text and need replacing.
- Page builder content often converts badly or not at all, because the layout is stored in the builder’s own format. Plan to rebuild those pages by hand. This is usually the slowest part of a migration.
- Images need downloading from
wp-content/uploadsand their paths updating. - Custom fields may need mapping to front matter.
An AI coding assistant is helpful here: it can clean up converted Markdown, rewrite shortcodes and normalise front matter in bulk, with every change visible in git.
Choosing a static site generator
Jekyll, Hugo and Astro are all good choices for a former WordPress site. Pick based on your team’s skills and how much interactivity the site needs. The comparison of Jekyll, Hugo and Astro covers the trade-offs.
Whichever you pick, build templates as plain, readable files. Avoid recreating the page builder approach in a new form.
Keeping URLs and redirects
This is the step that protects your search traffic.
- Keep URLs the same where you can. Most generators let you set permalinks to match WordPress patterns, including dates in post URLs if your old site used them.
- Redirect anything that changes. Every old URL should either still work or return a permanent (301) redirect to its new home. Most static hosts support a redirects file.
- Do not forget category and tag archives, author pages, feed URLs, image URLs and old attachment pages.
- Check after launch by crawling the old URL list against the new site and fixing anything that returns a 404.
Replacing plugins
Common WordPress plugin jobs and their static equivalents:
| Plugin job | Static approach |
|---|---|
| SEO meta tags, sitemaps | Templates or generator plugins at build time |
| Contact forms | Hosted form service, host feature or serverless function |
| Caching, performance | Not needed; pages are already static |
| Security plugins | Mostly not needed; see static site security |
| Backups | Git history |
| Page builder | Templates in code, edited directly or with AI help |
| Search | Build-time index or hosted search |
For forms specifically, see handling forms on a static site.
Giving your team an editor
Do not launch until editors can edit. If the team used WordPress to publish, they will expect a similar screen, and they are right to. Set up a CMS before launch, migrate their accounts, and walk them through publishing a post on the new site.
The complete guide to adding a CMS covers the options.
Launch checklist
- All content migrated and spot-checked
- Images loading, with alt text carried over
- Old URLs working or redirected
- Forms tested end to end, including notifications
- Analytics and other scripts in place
- Sitemap and robots.txt published
- Editors can sign in and publish
- DNS change scheduled for a quiet time, with low TTLs set in advance
- Old WordPress site kept available, but not public, for a few weeks in case anything was missed
My take
The hardest part of most migrations is page builder content, because there is nothing clean to export. The most important part is redirects, because that is where search traffic is quietly lost. Get those two right, make sure editors are happy on day one, and the rest is routine. The reward is a site that is faster, cheaper to host and no longer needs monthly patching.