Last checked: October 2026.
“Making WordPress static” does not mean leaving WordPress. You keep writing, editing and managing everything in wp-admin exactly as today. What changes is what visitors receive: instead of WordPress building every page with PHP and a database query, an exporter saves each page as an HTML file, and those files are served from a CDN.
How a static WordPress site works
- WordPress stays your editor. It can run on ordinary hosting, and it no longer has to handle visitor traffic.
- An exporter crawls the site and saves every page, stylesheet, script and image as files, rewriting links to the public address.
- A static host serves the files — Cloudflare Pages, Netlify, S3 or similar — from servers close to each visitor.
- When you publish, you export again. Good exporters only re-export the pages that changed.
Why go static
- Speed. A file served from a nearby CDN location needs no PHP and no database, so pages arrive quickly everywhere.
- Security. The public site is just files. Plugin vulnerabilities, xmlrpc.php and login pages are not part of it, and WordPress itself can sit on a separate, less visible address.
- Cost. Cloudflare Pages serves static files for free on both its free and paid plans.
- Traffic spikes. A sudden rush of visitors hits the CDN, not your WordPress server.
What breaks with a plain export — and how to keep it
| Feature | Plain static export | How to keep it working |
|---|---|---|
| Comments | Frozen; new comments cannot be posted | Send reads and new comments to WordPress’s REST API |
| Search | The search form has nothing to query | Query WordPress live, or ship a pre-built search index |
| Contact forms | Submissions go nowhere | Post the form to WordPress or a form service |
| WooCommerce | Prices and stock frozen; cart and checkout break | Load live prices and stock; keep cart and checkout on WordPress |
| New posts | Appear only after the next export | Re-export on publish (incremental) |
Pinery Static Pro handles the first four by proxying them to your WordPress and adds auto-deploy on publish. If you use another exporter, plan how each one will work before you switch your domain.
Is your site a good fit?
- Great fit: blogs, content and affiliate sites, company and brochure sites, documentation, portfolios.
- Good fit with live features: sites with comments, search and forms; WooCommerce shops whose product pages can be static while cart and checkout stay on WordPress.
- Poor fit: membership sites, online courses, forums and anything that shows different content to each logged-in user.
Tools you can use
- Exporter plugins run inside your WordPress: Pinery Static, Simply Static, Staatic, WP2Static. They differ mostly in where they deploy and what they do about dynamic features — see our comparison of Simply Static alternatives.
- Managed services run WordPress for you and publish the static copy: Shifter and Simply Static Studio, for a monthly fee.
- Do it yourself with a crawler such as wget. It works for small sites, but you handle link rewriting, deploys and dynamic features yourself.
Step by step: export WordPress to Cloudflare Pages
- Back up the site and make sure it uses pretty permalinks (Settings → Permalinks).
- Install Pinery Static — the free plan includes the full export and deploy, with no page limit.
- Create a Cloudflare API token with the permission
Account › Cloudflare Pages › Edit, and copy your Cloudflare account ID. - Open Pinery Static → Deploy, enter the account ID, token and a project name, and run the connection test.
- Choose what to export. Pick the content types and exclude paths you want to stay dynamic; cart, checkout and account pages are excluded by default.
- Click Export & Deploy to Pages. Large sites are exported in batches, so shared-hosting timeouts do not stop it.
- Check the result on
your-project.pages.dev: navigation, images, 404 page and any forms. - Go live. Add your domain to the Pages project, or use the Pro Worker router to keep your existing domain with wp-admin still working on it.
- Keep it current. Run the export again after changes — only edited pages are re-crawled — or turn on Pro auto-deploy on publish.
For a full migration with comments, search and WooCommerce, read how to migrate WordPress to Cloudflare Pages without breaking dynamic features.
Checklist after going static
- Canonical URLs and
og:urlpoint to your public domain, not the WordPress address. sitemap.xmlandrobots.txtare on the static site, and the sitemap is submitted in Search Console.- Old URLs still work, or redirect with
_redirects. - The 404 page is a real 404.
- Forms, comments and search work end to end.
- WordPress itself is not indexed under a second address.
Frequently asked questions
Will a static site hurt my SEO?
Not if URLs, canonicals and metadata stay the same. Static pages usually load faster, which helps. Pinery Static writes absolute canonical and og:url tags, generates sitemap.xml and robots.txt, and keeps the meta and structured data from your theme or SEO plugin.
Do I still need WordPress hosting?
Yes. WordPress stays where you edit, and it must stay online if comments, search or forms are proxied to it. It no longer serves visitors, so modest hosting is usually enough.
How much does it cost?
Cloudflare Pages serves static files free on every plan. Pinery Static’s free plan exports and deploys without a page limit; Pro is $299 once per site for dynamic features, auto-deploy and same-domain migration.
What happens when I publish a new post?
It appears on the static site after the next export. Incremental exports re-crawl only the changed pages and the archives that list them, and Pinery Static Pro can deploy automatically on publish.