Surge generates and serves static HTML files for your WordPress site, causing quicker requests, faster load times and a shorter time to first byte (TTFB).

Surge does not require configuration, and has no options. It works out of the box on any well-configured hosting platform. Cached files are stored on disk, and automatically invalidated when your site is updated.

In various load tests, Surge has shown to easily handle 1000-2500 requests per second at 100 concurrent, on a small single-core server with only 1 GB of RAM. That’s over 70 times faster than a stock WordPress install.


Via the WordPress Dashboard: navigate to Plugins – Add New. In the search bar type “surge” and hit Enter. Find the Surge plugin in the search results, hit Install, then Activate.

Manually: download the Surge plugin .zip file from In your WordPress admin navigate to Plugins – Add New – Upload. Select the .zip file and hit Upload. Activate the plugin after upload is successful.

Manually via FTP: download the Surge plugin .zip file from, extract the archive, make sure the directory is called “surge”. Use your FTP/SFTP client to upload the “surge” directory to wp-content/plugins. Then activate the plugin in your WordPress admin from the Plugins section.

Using WP-CLI: wp plugin install surge –activate


Where is the plugin configuration screen?

There isn’t one.

Is my cache working?

Visit the Site Health screen under Tools in your WordPress dashboard. Common caching errors, like installation problems, etc. will appear there. Otherwise, open your site in an Incognito window to see the cached version. You could also look for the “X-Cache” header in the server response.

Why am I getting cache misses?

Below are a few common reasons:

  • You are logged into your WordPress site
  • You have a unique cookie set in your browser
  • A unique query parameter will also cause a cache miss, except common marketing parameters, such as utm_campaign, etc.
  • Request methods outside of GET and HEAD are not cached

Can I exclude page X from being cached?

Of course. If you pass a “Cache-Control: no-cache” header (or max-age=0) the request will automatically be excluded from cache. Note that most WordPress plugins will already do this where necessary.

fpassthru() has been disabled for security reasons

It seems like your hosting provider disabled the fpassthru() function, likely by mistake. This is a requirement for Surge. Please get in touch with them and kindly ask them to enable it.

How can I support Surge?

If you like Surge, consider giving us a star on GitHub and a review on


This plugin does one thing: generate and serve static HTML files. And it does that one thing perfectly.
Thanks so much. Couldn't get simpler ... install and that's it!
This plugin came with the perfect timing for me, as a license for a commercial cache plugin that I used for a couple of years was about to run out. So I gave Surge a try and am absolutely excited. If you wonder how hard it can be to set up a cache plugin for your website, this seems to be the perfect choice: Install the plugin, activate and … well, don't worry about a bunch of necessary settings, confusing question how you want your cache plugin to work etc. – Surge simply works right out of the box and gives your website a stunning performance boost. Awesome plugin. For free. Thank you.
Hi, does the plugin work / support bbPress forums? thanks


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


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

“Surge” をあなたの言語に翻訳しましょう。

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

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



  • Fix PHP notice in invalidation
  • Protect against race conditions when writing flags.json
  • Add support for more post statuses in transition_post_status invalidation


  • Add support for custom user configuration
  • Various invalidation enhancements and fixes
  • Remove advanced-cache.php when plugin is deactivated
  • Add a note about fpassthru() in FAQ
  • Minor fix in Site Health screen tests


  • Anonymize requests to favicon.ico and robots.txt
  • Improve cache expiration, add cache expiration by path


  • Initial release