WP Static Site Generator


WP Static Site Generator protects the admin area of your WP site, whilst allowing you to serve your content to users on free and fast hosting options.

Keep using WordPress for what it’s best at – managing content, but remove the security and performance headaches by publishing the site as static HTML.

Tired of your WordPress sites getting hacked?

A static site closes all the doors that an out of date WordPress, theme or plugin can leave open.


  • publishes a standalone, static html copy of your whole WordPress website
  • removes tell-tale signs your site is running WordPress, making it unattractive to hackers
  • auto-deploy to a folder on your server, a ZIP file, FTP server, S3, Dropbox, GitHub, Netlify or BunnyCDN
  • schedule unattended exports via the WP Crontrol plugin or by hitting the custom hook
  • desktop notifications alert you to when exports are complete


  • protects you from malicious attacks/malware
  • speeds up your site by not hitting the database or executing any PHP code
  • allows you to host your site for free on GitHub Pages, Netlify or the free tier of AWS S3, Azure, etc
  • allows you to deploy to crazy fast hosting options, like S3, behind CloudFront
  • have a nice development -> staging -> production workflow and integrate with your CI tools

Who loves this?

  • Digital Agencies with many sites to manage, no need to worry about WP/plugin updates for client sites
  • Internet Marketers can create a bunch of quick sites/landing pages that load fast and are free to host
  • Solo website owners and content creators who like WordPress but don’t want to worry about how to secure it
  • Operations people at large corporations don’t often like dealing with WordPress, this allows them to close the security holes and have more control over the hosting
  • Budget conscious people like free hosting (who doesn’t?!?)
  • Government agencies who have strict security requirements, but have users who prefer to use WordPress
  • Thos who want to use it to archive an old WordPress website, keeping the content online, but not worrying about keeping WP up to date

This plugin produces a static HTML version of your wordpress install, incredibly useful for anyone who would like the publishing power of wordpress but whose webhost doesn’t allow dynamic PHP driven sites – such as GitHub Pages. You can run your development site on a different domain or offline, and the plugin will change all relevant URLs when you publish your site. It’s a simple but powerful plugin, and after hitting the publish button, the plugin will output a ZIP file of your entire site, ready to upload straight to it’s new home.


Getting started

Here is the basic premise:

You need 2 URLs of some sort (they can be on the same server, different servers, subdomains, etc).

  • 1st URL is for where you keep WP – this doesn’t need to be accessible or known to anyone but you, if you’re the only one working on your content

  • 2nd URL is where you’ll “publish” the static version of your site to. This is likely to be your main domain (ie, http://mywordpresssite.com).

That said, you can install the plugin and do an easy test without any other configuration. This will publish a static version to a subdirectory, such as http://mywordpresssite.com/mystatictest/. That’s a good way to check the static site is publishing properly, then you can switch to another deployment option, such as FTP or GitHub Pages and deploy to your live site.

As WordPress allows infinite customization and configurations, I don’t think any plugin author would be willing to guarantee complete compatibility with every theme, plugin and custom coding on every site. But my aim is to get as high a % of people as possible able to take advantage of static hosting with their WP site.

Developed by Leon Stafford. If you have any questions about this plugin’s usage, installation or development, please email me at: help@wp2static.com


  • The main interface
  • The main interface (Japanese)


via WP Admin panel

  1. Go to Plugins > Add New
  2. Search for “WP Static Site Generator”
  3. Click on the Install Now button
  4. Activate the plugin and find it under the Tools menu

Watch an installation video

manual installation

  1. Upload the static-html-output directory to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Access the plugin settings from the “Tools” menu

via WP CLI

  1. wp --allow-root plugin install static-html-output-plugin --activate


How do I configure all the options?

There’s some useful information on the page once you select a deployment method. There are also some good tutorials linked at https://wp2static.html

Where can I publish my static site to?

Anywhere that allows HTML files to be uploaded, ie:

  • Any FTP server
  • GitHub/GitLab/BitBucket Pages (GitHub API integration now included)
  • S3 / CloudFront
  • Netlify
  • Dropbox
  • BunnyCDN
  • Rackspace Cloud Files
My export failed – how do I proceed?

Everyone’s WordPress hosting environment and configuration is unique, with different plugins, themes, PHP versions, to name a few. Whilst the plugin does its best to support all environments, sometimes you’ll encounter a new issue. Sometimes we can adjust the settings in the plugin to overcome an issue, other times, it will require a bugfix and a new release of the plugin (usually a quick process).

When you have an issue, send the contents of your “Export Log” on the plugin screen to the developer, at help@wp2static.com. He’ll usually respond within 12 hrs, often sooner.

My exported site looks weird / missing styles or images

See our troubleshooting guide


Works great and awesome support!

This is an awesome plugin, specially the latest version. Super fast static site
generation (unlike other plugins) and once it’s in S3+Cloudfront the website really flies.
Leon gives awesome support and cares about the product. I do recommend the premium version!

Wonderful and helpful developer – awesome plugin idea

I am sick of dealing with and worrying about security issues. Brute force attacks, SQL injection attacks, plugin and theme exploits. I am totally and utterly over it. All this security stuff has taken away the joy of building with WordPress. Until now. When I heard about this plugin from an Elegant Themes Blog post, I realised this was the answer to my prayers. Seriously, I’ve been wanting a miracle and now it’s here.

Leon, you are brilliant. Thank you so much for this plugin and for all the personal help you gave me when I started testing this plugin. You got it working on my preferred Hosting and put in a lot of time and effort. Your work has re-injected me with a new enthusiasm for WordPress. After the 5.0 upgrade I am going to start contacting my clients and seeing which ones we can move to HTML. Going forward, I really want to focus on building info sites and leave the other complicated stuff to less tired developers and designers. Thank you again – I will be buying Premium soon.


Awesome Plugin for WP

It is the best plugin for wordpress to convert it into html (static site) for faster speed and less investment. I am using it’s free version and it is awesome.

Complete garbage

I downloaded it because it said it could upload to S3, but then after installing it, I find I have to pay for that feature.

Once installed I created a static site, but it failed to link the theme and helper files, regardless of how I set the links.

Poorly done and a complete waste of time.



WP Static Site Generator はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。


“WP Static Site Generator” は3ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“WP Static Site Generator” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。



  • Bugfix: Allow activation (with warning) for PHP < 5.4 users


  • Bugfix: Allow for WPMU/network site activation
  • Bugfix: Include gallery files for NextGEN Gallery


  • Bugfix: Major bug preventing certain files being crawled has been fixed
  • Improvement: Partial support for WPMU/network site activation


  • Improvement: Deploy times reduced by ~ 30%, amount of data transferred by client minimized
  • Improvement: Diff-based deploys to only copy changed files (for folder, S3 and FTP deployments only)
  • Improvement: Don’t block other plugin usage if ZIP extension is not available
  • Improvement: UX – 1-click same-server deployments; defaults to same-server for new installs
  • Improvement: De-cluttered UI


  • Bugfix: include all nested directories when building initial list to crawl


  • Bugfix: missing library for GitHub Pages export in free version


  • Improvement: more deployment options included (Netlify, GitHub Pages)
  • Bugfix: certain cases where inline style images are written with incorrect filenames
  • Bugfix: fix for cron-scheduled exports failing
  • Bugfix: offline copy not rewriting home URLs


  • Bugfix: subdir WP installations not exporting properly
  • Improvement: cleaner UI for first export


  • Support for latest WordPress 4.9.8
  • Plugin name change to WP Static Site Generator


  • Enhancement: improved accessibility of plugin menu


  • Major bugfixes – must update
  • fixes issues preventing deployments on certain hosting environments


  • Enhancement: More feedback on export errors with troubleshooting tips
  • Enhancement: Updated Frequently Asked Questions


  • Bugfix: fix cases where exported site is placed in site root


  • New feature: support for relative URLs with base href


  • New feature: deploy directly to a folder on the current server
  • Improvement: FTP deployments included in the free forever version
  • Bugfix: fix for rewriting escaped URLs within JavaScript for some themes
  • Bugfix: fix for subdomains being duplicated during rewriting


  • Improvement: simplified UI for easier usage
  • Improvement: livechat from within plugin for easier support (during support hours)
  • Improvement: basic auth setting available for free users
  • Improvement: ability to reset plugin to default settings
  • Bugfix: fix from crawling prematurely ending when empty files encountered


  • Bugfix: fix certain CloudFront exceptions not being caught/logged
  • Bugfix: previous exports being included in deployments in some cases
  • Bugfix: issue preventing Dropbox deployments from working
  • Bugfix: enable S3 deploys to all regions
  • Bugfix: allow crawling local/self-cert SSL sites
  • Improvement: Dropbox export done incrementally to support shared hosting environments
  • Improvement: allow setting a subfolder within your S3 bucket to deploy to
  • Improvement: minimized number of files from plugin for faster install times
  • Improvement: allow crawling basic auth protected sites


  • Bugfix: fix certain CloudFront exceptions not being caught/logged


  • Bugfix: critical fix for exported directories not being rewritten


  • Bugfix: critical fix for Dropbox, BunnyCDN and Netlify exports


  • Bugfix: Fixes major issue where a failed first export blocked subsequent ones unless page was refreshed
  • Bugfix: Plugin was not respecting the Output Directory Override


  • Improvement: Reduced plugin download size from 4+ MB to about 0.8MB
  • Improvement: Streamlined S3 and CloudFront export codes not to require massive AWS SDK
  • Improvement: Add check for cURL extension and add more help to system requirements page
  • Improvement: Make UI cleaner; place export button above Export Log;call to action on n exports
  • Bugfix: Remove message about deleting ZIP when none has been created


  • Bugfix: Reduced plugin download size and fix missing libraries needed for export


  • Improvement: Reduced plugin total ZIP size to allow installation for limited hosts


  • Bugfix: Fix CloudFront Cache Invalidation and update to latest AWS SDK V3.6.13
  • Bugfix: allow crawling sites served via SSL / HTTPS
  • Bugfix: prevent PHP warnings in error_log for unlink and renaming files – check they exist first
  • Bugfix: correctly determine WP root in filesystem
  • Improvement: allow FTP active mode, not just passive
  • Improvement: add Osaka endpoint for S3
  • Improvement: include more information in Export Log to help debug


  • Feature: Remove all traces of WordPress from your site – improve your SEO/SEM
  • Feature: Include all of your uploads folder by default – ensures all files are exported
  • Improvement: Streamlined interface for less clutter
  • Improvement: Cleanup export folder upon completion – no more filling up your uploads dir
  • Improvement: Make ZIP creation an optional step – not everyone needs to create ZIPs!
  • Bugfix: Respect custom output folder setting
  • Bugfix: Strip query strings from extracted URLs
  • Bugfix: Use base uploads dir for export folder – no more digging around for your export folder


  • Under the hood improvements, increasing stability and performance of the plugin.


  • Feature: Export to BunnyCDN – a very cheap and quick static site hosting option
  • Bugfix: Extracts relative URLs like fonts, background images, etc linked from your theme’s CSS files


  • Feature: Scheduled exports via WP Crontrol
  • Bugfix: FTP export now works on shared/limited hosting
  • Bugfix: Extracts all URLs when crawling your website’s HTML files
  • Bugfix: Subsequent exports correctly show realtime progress in log


  • Bugfix: GitHub export now works on shared/limited hosting
  • Feature: Realtime export progress logs


  • Bugfix: don’t hang on failures
  • Bugfix: fix option to retain files on server after export
  • Feature: 1-click publishing to a Netlify static site
  • Feature: view server log on failure


Critical bug fixes and a shiny new feature!

  • Bugfix: Dropbox export once again working after they killed version 1 of their API
  • Bugfix: Amazon S3 publishing fixed after bug introduced in 1.9
  • Feature: 1-click publishing to a GitHub Pages static site

Thanks to a user donation for funding the development work to get GitHub Pages exporting added as a new feature. I was also able to merge some recently contributed code from @patrickdk77, fixing the recent issues with AWS S3 and CloudFront. Finally, I couldn’t make a new release without fixing the Dropbox export functionality – unbeknowst to me, they had killed version 1 of their API in September, breaking the functionality in this plugin, along with many other apps.


  • Bugfix: Plugin now works on PHP 5.3

Though this is no longer an officially supported PHP version, many of this plugin’s users are running PHP 5.3 or earlier. This fix should once again allow them to use the plugin, which has not been possible for them since about version 1.2. If you are one of these affected users, please now upgrade and enjoy all the new useful features!


  • Bugfix: improved URL rewriting

Plugin now ensures that formatted versions of your site’s URL, ie //mydomain.com or http:\/\/mydomain.com\/ or the https/http equivalent are detected and rewritten to your target Base URL. The rewriting should now also work within CSS and JavaScript files.


  • Bugfix: index.html contents empty for some users’ themes/setups
  • Bugfix: remove PHP short open tags for better compatibility


  • Additional URLs now work again! Much needed bugfix.


  • bugfix for Dropbox export function not exporting all files


  • add Dropbox export option
  • fix bug some users encountered with 1.3 release


  • reduce plugin download size


  • supports Amazon Web Service’s S3 as an export option


  • unlimited export targets
  • desktop notifications alert you when all exports are completed (no more staring at the screen)


  • 1-click generation and exporting to an FTP server
  • improved user experience when saving and exporting sites (no more white screen of boredom!)


  • Now able to choose whether to strip unneeded meta tags from generated source code.
  • Improved layout for config/export screen.
  • Better feedback to user when system requirements are not met


  • Version bump for supporting latest WP (4.7)


Added Features

  • Updated author URL

Removed Features

  • Premium options for One-Click publishing to provided hosting and domain


Added Features

  • Premium options for One-Click publishing to provided hosting and domain


Added Features

  • Japanese localization added (ja_UTF)


Added Features

  • long-awaited FTP transfer option integrated with basic functionality
  • option to save generated static HTML files on server


Fixed bug introduced with previous version. Applied following modifications contributed by Brian Coca (https://github.com/bcoca):

Added Features

  • zip is now written atomically (write tmp file first, then rename to zip) which now allows polling scripts to only deal with completed zip file.
  • username and blog id are now part of the file name. For auditing and handling
    multi site exports.

Bug fixes

  • . and .. special directory entries are now ignored
  • dirname is checked before access avoiding uninitialized warning


Added shortcut to Settings page with Plugin Action Links


Added link to relevant Settings page when permalinks structure is not set.


Added a timeout value to URL request which was breaking for slow sites


Altered main codebase to fix recursion bug and endless loop. Essential upgrade.


Initial release to WordPress community