WP Static HTML Output


The optimum solution to speed up and secure your WordPress site – export to static HTML and hide all traces of WordPress from your site!


  • generates a standalone, static html copy of your whole WordPress website
  • removes all traces of WordPress from your exported site
  • protects you from malicious attacks/malware
  • auto-deploy to a local folder, ZIP file, FTP, S3, Dropbox, GitHub, Netlify or BunnyCDN
  • one site to unlimited export targets
  • specify extra files to include in the output (ie, dynamically loaded assets)
  • desktop notifications alert you to when exports are complete
  • multi-language support (English/Japanese currently, Spanish and Chinese in progress)
  • schedule unattended exports via the WP Crontrol plugin or by hitting the custom hook
  • realtime logs visible during / saved after export
  • asynchronous exports for some methods overcomes hosting limitations for large site exports

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 Dropbox. 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.


  • The nature of a static site implies that any dynamic elements of your wordpress install that reply upon WordPress plugins or internal functions to operate dynamically will no longer work. Significantly, this means comments. You can workaround this by including a non-Wordpress version of an external comments provider into your theme code, such as the Disqus comment system. Any page elements that rely upon Javascript will function normally.
  • inability to correctly capture some relative links in posts
  • inability to detect assets dynamically loaded via javascript after page load, these will need to specified separately (but will work)

Similar plugins

Having issues with this plugin? I try to support any issues via the official support forum or email, but if you want to try some other plugins for static export, give these a go:

Planned upgrades

  • re-write export to relative URLs
  • progress meter to show % of .ZIP creation
  • selectively export only changed pages since last output
  • increase 1-click deployment options

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


  • The main interface
  • The main interface (Japanese)


via WP Admin panel

  1. Go to Plugins > Add New
  2. Search for “WP Static HTML Output”
  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


Installation Instructions

via WP Admin panel

  1. Go to Plugins > Add New
  2. Search for “WP Static HTML Output”
  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
Where can I publish my static site to?

Anywhere that allows HTML files to be uploaded, ie:

  • GitHub/GitLab/BitBucket Pages (GitHub API integration now included)
  • S3 / CloudFront
  • Dropbox
  • Any FTP server
  • Netlify
My comments don’t work anymore!

See the readme. In brief: you can’t use dynamic WordPress functions such as comments on a static site. Use an external comments provider such as Disqus, or live without them.


Protects those wp-admin sites

After testing this plugin and talking to the maintainer I have to say this is a 5* plugin that really helps with those tricky infrastructure challenges that come out of running a word press site.

We no longer have those annoying bots trawling for wp-admin and wp-cron’s.

Just update the site like a staging site, and publish when you’re ready ! 🙂

Greate Plugin

This plugin works well on Linux as well as Windows. Also this plugin has no error in all browser such as Chrome, Firefox and IE.

Great Developer and Great plugin

I have been working with this developer for the last several months. He has created a fantastic plugin that creates a Static version of your site and enables deployment to another server or a different location on the same server.

Awesome plug-in and wonderful correspondence

Functions missing from other plugins are included in this plugin.
While using this plug-in, I had the function I wanted, but it corresponded to various things.
That function was also added in version upgrade.
Thank you very much.

Read all 35 reviews

Contributors & Developers

“WP Static HTML Output” is open source software. The following people have contributed to this plugin.


“WP Static HTML Output” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “WP Static HTML Output” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • 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