Serve Static – Automatic WordPress Static Page generator
Serve Static provides a very efficient, simple and fast way of implementing static page caching in WordPress. It will generate static HTML copies of your webpages which will be then served using your server rewrite rules. This feature will bypass the whole PHP process and render only a simple HTML file without having to interect with the PHP, or MySQL for getting your page’s design or content. This plugin is really handy and helpful if your webpages are mainly static, like websites of Blogs, portfolios, company portfolios, service, and many more. This plugin doesn’t support any dynamic content caching, that means, all none of your dynamic content will be showing in the frontend, rather, a static version of that content will be showing. This plugin also comes with home-made HTML, CSS and JS minification features, which you can use to auto-minify the static files. This ensures more lightness of the HTML pages, and more boost to your page speed. Also, you can auto-warm the cache using the Warm feature, which will stimulate a visit on all your pages, to create the static files before they are served to your visitors. Usage After activating the plugin, it will try to modify your .htaccess file. If this is not possible for some reason, make sure to enter the rules by yourself. NOTE: without these .htaccess rules, the static files won’t be served or created. Note that, this is only applicable if you are using a Apache/Litespeed server. # BEGIN Serve Static Cache RewriteEngine On RewriteBase / RewriteCond %{HTTP_COOKIE} !(^|;\s*)wordpress_logged_in_.*$ [NC] RewriteCond %{REQUEST_URI} !^/(elementor|vc_row|fl_builder|fl-theme-builder) [NC] RewriteCond %{REQUEST_URI} !^/wp-admin/ [NC] RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} ^$ [NC] RewriteCond %{DOCUMENT_ROOT}/wp-content/serve-static-cache/$1/index.html -f RewriteRule ^(.*)$ /wp-content/serve-static-cache/$1/index.html [L] # END Serve Static Cache If you the website installed on a sub-folder, like such that “https://test.com/domain1”, is your main domain of your WordPress site, you need to use a different .htaccess code. The plugin will automatically do that for you, but incase you need to do it manually, below is the format you need to follow. # BEGIN Serve Static Cache RewriteEngine On RewriteBase / RewriteCond %{HTTP_COOKIE} !(^|;\s*)wordpress_logged_in_.*$ [NC] RewriteCond %{REQUEST_URI} !^/(elementor|vc_row|fl_builder|fl-theme-builder) [NC] RewriteCond %{REQUEST_URI} !^/wp-admin/ [NC] RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} ^$ [NC] RewriteCond "WP_CONTENT_DIR"/serve-static-cache/"sub-folder domain without slashes"/$1/index.html -f RewriteRule ^(.*)$ /"sub-folder domain without slashes"/wp-content/serve-static-cache/"sub-folder domain without slashes"/$1/index.html [L] # END Serve Static Cache The value of the WP_CONTENT_DIR should be something like: “/home/test.com/public_html/staging/wp-content” The value of the “sub-folder domain without slashes” should be your folder where WordPress is installed. So, if the WordPress is installed in “https://test.com/staging”, you should enter “staging”. When using a nginx server, make sure to add the following rules: # BEGIN Serve Static Cache location / { if ($http_cookie !~* "wordpress_logged_in_") { set $cache_uri $request_uri; if ($request_uri ~* "^/(elementor|vc_row|fl_builder|fl-theme-builder)") { set $cache_uri "null cache"; } if ($request_uri ~* "^/wp-admin/") { set $cache_uri "null cache"; } if ($request_method = GET) { set $cache_uri "null cache"; } if (-f $document_root/wp-content/serve-static-cache$cache_uri/index.html) { set $cache_file $document_root/wp-content/serve-static-cache$cache_uri/index.html; } if ($cache_file) { rewrite ^ /wp-content/serve-static-cache$cache_uri/index.html break; } } } # END Serve Static Cache This plugin creates static HTML versions of your pages/posts, or literally any custom post types, and serves them to your non-logged-in visitors. This is an awesome way to make your website blazing fast, and not even one request is made to PHP to request your pages. Anytime a Static page/post/any custom post type is updated, the cache of that specific page is automatically cleared, and regenerated. So, you do not have to worry about regenerating the cache eac time after making changes to your content. This plugin is also well-integrated with frontend post rating plugins as well, so that when any rating is added, the cache gets regenerated automatically. If you are using any rating plugins that are not working with this plugin, kindly let me know in the support forum. This plugin heavily relies on CRON to process it’s functionalities. So please make sure either your server-level cron or WordPress Cron is running and working. If not, this plugin will show errors in the Admin Notices to help you direct to the problem. If there are still many issues, kindly share in the plugin support thread. By default, this plugin automatically works with Apache and Litespeed servers, and everywhere .htaccess rules is functional. But to make this plugin work with NGINX, you will be needing to add some rules to your nginx.conf or site.conf file. An appropiate admin notice will be shown to you accordingly, kindly follow those instructions. This plugin is supposed to work with all the form builder plugins like WP Forms, Ninja Forms. If you face any issues while using any form plugin, kindly let me know in the thread, and I will try to make it compitable. Performance Converting your website to a static webpage can drastically improve your performance and page speed. Serve Static eliminates all requests made to your database and ultimately reducing the first time to byte, total blocking time and many more. This is especially impactful for websites that have mainly static pages, and use long pages with a lot of graphs, sliders, and other load-heavy resources like animations. Reduce hosting bandwidth Using Serve Static to serve static HTML pages of your website really cuts a great cost in your bandwidth usage, as this doesn’t hit the MySQL server for your visitors, but instead serves delivers a cached, minified HTML copy. This releases much of your cost, alongside the page boost. We are working on features like “hosting your Static pages in a third party CDN, and serving those to your visitors”. If you are interested to see this feature in soon, let me know by opening a supprt thread! NOTE Caching is fully disabled for Administrators, or any logged-in users. Static Cache will only be served to logged-out visitors of your site. Note that, the Static Cache can only be regenerated by using the buttons in the admin toolbar, or in the Settings page. After the cache is Flushed, the cache is NOT regenerated when someone visits the pages. This is done so that none of the personalized content gets saved in the HTML caches. This plugin may not work as expected with a caching plugin like WP Rocket or W3 Total Cache. So make sure the URLs of the static pages are excluded from the specific plugins. For example, when using WP Rocket, you need to navigate under Settings > WP Rocket > Advanced Rules > Never Cache URLs, and enter the URLs to the pages you want to serve as Static. When using W3 Total Cache, navigate under Performance > Page cache > Advanced > Never cache the following pages.
Top keywords
- cache31×2.63%
- static26×2.20%
- html16×1.36%
- uri14×1.19%
- pages12×1.02%
- request12×1.02%
- rewritecond12×1.02%
- serve11×0.93%
- serve static10×0.85%
- page9×0.76%
- content8×0.68%
- nc8×0.68%
SpinupWP
This plugin ensures that the SpinupWP page cache is cleared when your site’s content changes. Not using SpinupWP yet? Sign up here. SpinupWP is a modern server control panel that’s here to help you implement best practices for every server you spin up. Designed for WordPress. This companion plugin should be installed on sites created using SpinupWP to allow the page cache to be cleared when your site’s content changes. Not using SpinupWP yet? Sign up here. Any Provider We support DigitalOcean, Linode, AWS, and any other provider. If your server has an IP address, you can connect SpinupWP. It does need to be a fresh install of Ubuntu though. Latest & Greatest Software SpinupWP will install the latest stable versions of Nginx, PHP, MySQL/MariaDB, and Redis from the standard apt-get repos. No who-knows-what-they-did custom builds of packages. Disconnect from SpinupWP in the future and you can still keep your packages up-to-date with apt-get upgrade. Automatic Security Updates SpinupWP will configure your server to install security updates as soon as they are available to reduce the likelihood of a software vulnerability putting your server at risk. Free SSL/TLS Certificates Serving your site over HTTPS is essential these days, not only for security, but to take advantage of the performance improvements of HTTP/2 as well. When you add a site to SpinupWP, a free Let’s Encrypt SSL/TLS certificate will be acquired, installed, and configured for your site. And SpinupWP will handle certificate renewals as well, so you hardly need to think about certificates. Cache All the Things One of the keys to a great performing WordPress site is caching. All sites are set up with Redis object caching to greatly reduce database requests. And with the check of a box you can enable full-page caching to serve pages lightning fast without even hitting PHP. Git Push-to-Deploy Developers! Developers! Developers! Add a git repository to your SpinupWP site and simply push to master to deploy your code. GitHub, Bitbucket, or a custom git repo will work. You can also configure a build script to run some tasks on the server after deployment is complete. Error Logs WordPress doesn’t enable error logging by default. Probably because the log is saved to a publicly accessible directory and can quickly balloon to take up a lot of hard drive space. SpinupWP enables error logs by default but stores them in a safe place and makes sure they’re rotated regularly like other server logs. Security Security Security Each server provisioned by SpinupWP is security-hardened from the word go. SSH login is disabled for the root user (you login with your user and use sudo instead). The firewall only allows connections to Nginx and SSH and failed attempts are monitored and blocked when the reach a threshold. Nginx is configured to defend against XSS, clickjacking, MIME sniffing, and other attacks. Software security updates are installed automatically. Scheduled Posts Published on Schedule For every site you add via SpinupWP, a server-side cron job will be configured to make sure that your WordPress site’s cron is executed every minute, as it should be. WP-CLI Preloaded If you love WP-CLI (we do! ❤) you’ll be very pleased to find it available on the command line the first time you login to your server. Security Isolation for Sites For each site that you add to your server via SpinupWP, a new system user is created for that site. All site files are owned by the site user and a PHP-FPM pool is configured to run as that user as well. Each site only has access to its files and so if only one site has a security vulnerability and gets infected with malware for example, only the files for that one site can be infected. SFTP Access for Your Clients If you’re hosting a site for someone else, you can easily give them SFTP/SSH access to just that site. And because of the security isolation between sites, they will only have access to files for that site. Professional Guidance & Best Practices SpinupWP will actively point you in the right direction and offer suggestions for maintaining your server. And because it provides detailed feedback about the operations it runs on your server, you can learn what is happening with your server. New release of Ubuntu just came out, should I upgrade? We’ll add a notice to the app about that, why we don’t recommend upgrading your existing servers, and how you can spin up a new server with the new release of Ubuntu and migrate your sites to that server instead. Should I install Varnish to improve page caching performance? We’ve benchmarked Varnish and Nginx FastCGI Cache performed better. Varnish would add complexity too, so one less moving part is another reason. Much of the time SpinupWP will suggest things that you may not have even thought of. Email deliverability for example. SpinupWP will strongly encourage you to configure an email sending plugin for the best email deliverability. SpinupWP’s guidance is especially helpful for those new to managing a server, but can also help those who’ve been at it a while, providing transparency to our decisions. Scheduled Backups of Site Files & Database All server providers (DigitalOcean, Linode, etc) offer automated backups of your entire server for a fee. These services are great and we highly recommend having backups of your whole server. But what happens if some media or data was deleted by accident from your WordPress site? You’re not going to restore your entire server just to get that data back. That’s where site backups come in. Site backups are full backups of your site files (media, themes, and plugins) and database. They allow you to easily restore a single site or just some files or data from a single site. With SpinupWP’s site backups, you choose your preferred provider to stash your backups whether that’s Amazon S3, DigitalOcean Spaces, or Google Cloud Storage. You plug in your account details and SpinupWP will send your site backups there in an easy-to-see format. Teamwork Makes the Dream Work Create a new team account, invite a member of your team, and allow them to spin up their own servers. Or just only allow them to add sites, the permissions you give them is up to you. Features Page cache purging Persistent object caching Ensures debug.log files aren’t saved in a publicly-accessible location