Opens in a new tab

From dynamic WP to static pages.

See plans

Dynamic admin. Static front end.

You keep the WordPress admin you know: same interface, same editor, same plugins. MyStaticWP turns the front end from dynamic to static: it renders each page once, saves it as an HTML file, and lets your web server hand that file to visitors. Nothing is rebuilt on every visit, and the static copy updates when you save.

Same domain, same admin
No second site, no migration, no external service. The files live on your own server and are rebuilt when something changes. When you are logged in, you still see the live, dynamic site.
Why it matters

A dynamic page rebuilds itself for every single visitor.

Most site owners never notice — until a slow-page complaint, a traffic spike or a hosting limit shows how much work each visit costs.

Learn more...

What is happening

The same page is built again for every visitor, even when nothing has changed since the last one. Traffic peaks make it worse: each extra visit is one more full build of the page.

From dynamic to static

MyStaticWP turns each dynamic page into a static HTML file, rendered once on your own server and handed to visitors directly. Keep the same WordPress admin, and nothing is rebuilt until you change something.

Learn more...

The real payoff

Visitors get pages faster and your server does less work. The plugin measures the difference on your own server, so you see real figures for your site rather than promises.

Learn more...

Per-page plugin control

Choose which plugins run on which page. MyStaticWP measures what each one costs on your server, so you decide from figures, not guesses — and previews the page before you save.

Learn more...
Simple, transparent pricing

One plugin. Every feature. Just pick your scale.

No feature is ever locked behind a higher tier — every plan includes the complete MyStaticWP toolkit. The only thing that changes is how many sites you run it on.

Monthly

Pay as you go, cancel anytime.

10€
per monthno annual commitment
Choose Monthly
3 sites 10€··10 sites 19€50 sites 35€
  • 100% self-hosted — no CDN, no third-party account, nothing your visitors load from elsewhere. Pages are turned into static files on your own hosting, then served from your own domain.

  • Built for Bricks, every language — standard WordPress content works too. Polylang sites keep one address per language, each with its own static copy. Choose Hybrid or Strict for the whole site, a category or a single page.

  • Measured, not guessed — see what each plugin costs on every page, compare with and without it, and preview before you save. Figures come from your own server, with their limits explained.

  • Safe by design — your content is never changed, the static files live in their own folder, and one click restores every plugin. Deactivate the plugin and your site is plain WordPress again.

Annual

Save on every tier, billed once a year.

7.42€
per monthbilled 89€ every year
Choose Annual
3 sites 89€·10 sites 159€·50 sites 299€
  • 100% self-hosted — no CDN, no third-party account, nothing your visitors load from elsewhere. Pages are turned into static files on your own hosting, then served from your own domain.

  • Built for Bricks, every language — standard WordPress content works too. Polylang sites keep one address per language, each with its own static copy. Choose Hybrid or Strict for the whole site, a category or a single page.

  • Measured, not guessed — see what each plugin costs on every page, compare with and without it, and preview before you save. Figures come from your own server, with their limits explained.

  • Safe by design — your content is never changed, the static files live in their own folder, and one click restores every plugin. Deactivate the plugin and your site is plain WordPress again.

With vs. Without MyStaticWP

Without MyStaticWP With MyStaticWP
Every visit Dynamic: PHP starts, the database is queried, every plugin runs Static: the web server hands over an HTML file — no PHP, no database
Plugins Every active plugin runs on every page, needed or not You choose which plugins run on which page
Server load Traffic peaks hit PHP and the database Visitors get files — a peak costs the server far less
Freshness A separate cache plugin to set up and purge Pages rebuild when you save, or when the theme or a shared element changes
Proof Speed claims you cannot check on your own site Figures measured on your own server, limits explained

Everything you need. Nothing you don't.

Read more...

MyStaticWP turns every dynamic page into a static file, so visitors get plain HTML while you keep editing in WordPress. It works with Bricks and standard content, with Polylang multilingual sites, and lets you block plugins page by page. It measures the gain on your own server, and says what the figures do not show.

  • Two generation styles

    Hybrid keeps forms and interactive elements working, as WordPress generated them. Strict is a true HTML, CSS and JS mirror in its own folder, with forms replaced by a contact message. Set per site, category or page.

  • Regeneration journal

    See what happened to each page: rebuilt, skipped and why, or failed and why, with its timing. Only the latest run is kept. You can rebuild only the outdated or missing pages.

  • Automatic rebuilds

    Saving a page rebuilds it. Changing the theme, a menu, a Bricks template or the global styles, or updating a plugin, rebuilds the site once, a minute later. Large sites rebuild in batches, with a progress bar.

  • What each plugin costs

    "Cost per plugin" ranks every plugin by the server time it adds to a page, with its margin of error. "Measure" compares a page with and without the plugins you choose.

  • Plugins, page by page

    Untick a plugin on a page, a category, the blog index, archives or search. Preview the result before you save. One reset button makes every plugin active again everywhere.

  • Served without WordPress

    On Apache and LiteSpeed, static pages are handed out by the web server before WordPress starts. Other servers fall back to PHP, still without rebuilding the page. Logged-in users always see the live site.

  • Overview and guide

    A dashboard shows the mode, the pages in cache, the speed of static versus dynamic, and alerts only when something needs you. A checklist guides your first steps.

  • Compatibility check

    Before you export, the plugin flags what static pages cannot do: forms, AJAX filters and load-more buttons. A locator frames the exact element on your site.

  • Multilingual, Polylang first

    Each language keeps its own address, language tag and static copy. Translations are rebuilt together, and the form message follows the language of the page.

  • Translation-ready

    English, French and Spanish out of the box. The interface and the messages follow the language of your administration.

  • Safe to try

    Deactivating the plugin removes its server rules and its plugin filter, and returns the site to plain WordPress. Static files live in their own folder, and your content is never modified.

  • Export anywhere

    Export the site as portable static files for any host. Links are rewritten, forms are replaced by your contact address, and a report lists what will not work offline.

8 deep dives

What the table doesn't show

Served before WordPress starts

On Apache and LiteSpeed, the plugin adds a marked block to .htaccess so the web server answers straight from the static file. Where that is not possible, such as Nginx, PHP serves the file instead: slower, but still no rebuild. The Switch screen tells you which one is active.

The .htaccess shortcut, and its fallback

Blocking that spares your editor

Per-page blocking runs from a small must-use file before plugins load. It is never applied in the admin, in Bricks and other page builders, in the Customizer, or on form submissions. A preview shows the page as visitors will see it, before anything is saved.

Builders always see every plugin

Measured, with margins

Each plugin is timed a limited number of times, in paired requests. Small costs show as uncertain estimates with their margin, never as gains. A control run shows how much the method itself drifts. Only server time counts: styles and scripts sent to the browser are not included.

A ranking, not exact figures

Honest about limits

A cart, a members-only page, an AJAX filter or a load-more button needs a live backend. Forms are replaced or kept, depending on the style. The compatibility check lists these before you switch, so a page is never frozen into something that no longer works.

What a static page cannot do

Two styles, one rule

Hybrid saves the page as WordPress rendered it, forms and interactive parts intact. Strict saves a standalone mirror in its own folder and replaces each form with a contact message and your address. The style can be set for the whole site, a category, or a single page.

Hybrid keeps forms, Strict mirrors the site

... and much more

Documentation
See all in our documentation

Live for you, static for visitors

Editing is never blocked by a stale copy

Visitors get the static copy. Anyone logged in, and any address with a query string, reaches the live WordPress. The cart, checkout and account pages of WooCommerce are never cached. You always edit and check the real site.

Rebuilt when it matters

Without emptying your cache

Saving a page rebuilds it. A shared change (theme, menus, site identity, Bricks templates and global styles, or a plugin update) triggers one rebuild after a minute. Existing static files keep being served while it runs, and leftovers are removed only at the end.

Reversible by design

Deactivate it and it is gone

Deactivating removes the server rules and the plugin filter. Uninstalling can also remove its settings and files, as you choose. The static folder is separate from your media library, and one reset button makes every plugin active everywhere again.

Ready to turn your dynamic WordPress into static pages?

Install MyStaticWP, switch static mode on, and your dynamic pages are turned into static files. Your editing stays in WordPress, and one switch takes you back.