EMCP Tools Static Site
  • Free
  • Off by default
  • EMCP Cloud
  • Not multisite

Turn your WordPress site into plain HTML files.

The Static Site module fetches every page of your site, rewrites its links and saves the result as static HTML with its CSS, scripts and images. Download it as a ZIP, keep it in a folder on your server, or let EMCP answer visitors with the static copy. It is free in EMCP Tools and counts generations through your EMCP Cloud account.

3
free generations
10
content types to include
3
ways to use the result
EMCP Tools Static Site screen in wp-admin with the Settings card, the Allowance card showing 2 of 3 free generations left, the Full Site generator and Static Serving.
EMCP Tools → Static Site, with settings, your allowance and the generator side by side.
One screen

Settings, allowance and generator in one place.

Everything lives on EMCP Tools → Static Site under Build. Choose what to include, check how many generations you have left, and start a run. The screen shows your last generation with its page count, file count, errors and size, and lets you download it again.

Choose what goes in

A static copy shaped to your site.

Pick the content to include: posts, pages, archives, categories, tags, author pages, custom post types, theme assets, plugin assets and uploads. Add URLs the crawler cannot find on its own, and exclude others with * wildcards, such as /cart/*.

  • ZIP Download gives you one archive to take anywhere. Local Directory writes the files to a folder on the server.
  • Relative links work on any host, Offline links point at each index.html so the copy opens straight from your disk, and Absolute links use the base URL you set.
  • Batch size sets how many URLs are fetched per step, from 10 to 200, so slow hosts can take smaller batches.
  • Local and staging sites with a self-signed certificate can still be fetched: tick one box to accept it.
Static Site settings: delivery method ZIP Download or Local Directory, URL style Relative, Offline or Absolute, batch size 50, and switches for posts, pages, archives, categories, tags, author pages, custom post types, theme assets, plugin assets and uploads.
Delivery method, URL style, batch size and the ten content switches.
Full site or a few pages

Regenerate the whole site, or just the pages you changed.

Full Site starts from your content and archives and follows the links on every page it fetches. Individual Pages lets you search by title or URL, pick the pages you want, and generate only those with the assets they use.

Individual Pages tab with a search box and three selected posts listed with their URLs, ready for Generate Selected Pages.
Search by title or URL and generate only the pages you pick.
Watch it run

Five clear steps from crawl to archive.

A generation moves through Setup, Discover, Fetch, Rewrite and Package, then checks for pages that changed while it ran before it replaces the previous copy. The run continues step by step in your browser tab, so a slow host never hits a single long request. If you close the tab, open the screen again to continue.

Generator progress with Setup and Discover complete, Fetch in progress, then Rewrite and Package, a progress bar, the text Fetching pages: 87 remaining of 108 total, and a Cancel button.
Five steps with live progress, and a Cancel button while it runs.
Every step logged

See exactly what was built.

The activity log records each batch with a timestamp and finishes with a summary. Errors are counted rather than hidden: a missing font or image that returns 404 on your live site is listed as an error in the static copy too, so you know what to fix.

Activity log of a selected-pages run: discovered 3 URLs, fetched pages, rewrote 61 files, packaged, checked changed pages, done, static site ready with 3 pages, 61 files, 1.9 MB and 2 errors.
The activity log ends with the page count, file count, size and any errors.
Serve it to visitors

Answer visitors with the static copy.

With Static Serving on, EMCP answers a page request with its static HTML before WordPress builds the page. Before it can be switched on, the plugin checks that your web server does not hand out the generated files directly; on nginx you add one deny rule first.

  • Only plain GET requests without a query string are served from the static copy.
  • Logged-in visitors still get WordPress unless you choose to serve them too, and you can exclude URLs.
  • Editing, trashing or deleting a post, or editing a term, takes its pages out of the static copy. Switching theme, activating or deactivating a plugin, changing a menu or saving the Customizer takes out every page.
  • Pages left out are answered by WordPress as usual until you generate again.
Static Serving card with the Enable Static Serving switch, the nginx deny rule, a Check the server button, 36 pages ready to serve, and Save and Purge Served Files buttons.
Check the server, then switch on static serving.
Your allowance

Three free generations, more with EMCP Pro.

Each generation is checked against your free EMCP Cloud account before it starts. Every account has 3 free generations that never expire. A linked EMCP Pro licence adds 3, 10, 25 or 50 generations every month, by licence size, used before the free ones.

A generation counts when it is reserved. Cancel it within 15 minutes and before it starts fetching pages, and it is returned to you. Your Cloud account lists every run with its site, mode, status, pages, files, size and time.

EMCP Cloud account page Static sites with the monthly allowance card, Free generations 2 of 3 left, and a history table listing a completed full site generation with 36 pages, 114 files, 12.7 MB in 2 minutes 39 seconds.
Account → Static sites shows your allowance and every generation.
Good to know

What the module needs and does.

The Static Site module is part of free EMCP Tools and is off until you switch it on.

  • It needs a connection to EMCP Cloud (a free account is enough) and pretty permalinks.
  • It does not run on WordPress multisite.
  • Forms, search, carts and anything else that needs PHP keep working only where WordPress still answers. Exclude those URLs, or keep them dynamic.
  • Visitors’ page views load only the small part of the module that serves pages, and only while the module is on.
Last Generation card with date, 36 pages, 114 files, 4 errors and 12.7 MB, and a Download ZIP button.
The last generation stays available to download.
Frequently asked

Questions, answered.

Still stuck? Drop a line at [email protected] or open an issue on GitHub. Most replies are under one business day; Pro tiers go to the front of the queue.

Open the full docs
Yes. It ships in free EMCP Tools. Generations are counted by your EMCP Cloud account: 3 free ones that never expire, plus a monthly allowance of 3, 10, 25 or 50 when you link an EMCP Pro licence.
Yes, a Cloud connection is required because each generation is checked against your Cloud account before it starts. A free Cloud account is enough. Connect under EMCP Tools → Connection → Cloud.
Yes. Choose ZIP Download and upload the files to any static host, or use the Offline URL style to open the copy straight from your disk. Absolute URLs use the base URL you set, for a copy that will live on another domain.
The edited page is taken out of the static copy at once and WordPress answers it until you generate again. Theme switches, plugin changes, menu changes and Customizer saves take out every page.
It is returned to you if you cancel within 15 minutes and before it starts fetching pages. Once fetching has started, a cancelled or interrupted generation still counts.
No. The module refuses to run on a WordPress multisite network.

Generate your first static copy.

Update to EMCP Tools 3.20.0, connect EMCP Cloud, switch on Static Site under Modules and select Generate.