What is a static WordPress site? Why would you want one?
Static websites? Isn’t that old-school? In the early days of the web, all websites were static. Today, turning your dynamic WordPress site into a high-performing static one might be a viable option for you. Visitors get a super-fast browsing experience, while content managers continue to use the WordPress authoring experience and plugin ecosystem. Hackers have next to no surface area to attack, because the only public-facing resources are static pages. We asked Miriam Schwab — an expert on static WordPress sites and CEO of Strattic (now part of Elementor) — to uncover the secret powers of static websites.
Why would you want to turn a dynamic site built with WordPress into a static one?
When I started building websites in the early 2000s, they were very much static. That’s why I often describe the shift to static websites as coming full circle.
A static website has several significant advantages:
- Speed. Static sites are generally faster because every page is prerendered – with no underlying processing server, no database queries, and no PHP processing, the pages can be quickly served to the user. Another way they’re faster is that every page can be served up through a CDN. In your standard dynamic site, only the static assets like images, CSS, and JS can be CDNed. The actual HTML pages, however, cannot because they are virtual.
- Security. Your standard dynamic website has a big attack surface. Every layer from the Apache server to the MySQL to every plugin installed on the site are potentially vulnerable. It’s hard to make sure all the holes are plugged, all the time. With a static site, there’s barely anything to breach.
- Scalability. Supporting a high-traffic site is costly and can be complicated. And even when you do that successfully, a spike in traffic can seriously slow down a site and cause issues. Static sites scale effortlessly. One of our customers got in the press and their traffic increased ten-fold, and we didn’t feel it at all! The site scaled, and not only that – got faster. That’s the weird thing about CDNs – sites get faster the more traffic they get.
- Less management and maintenance. With a dynamic site, there’s a need for regular maintenance, like upgrades, security tweaks, speed optimizations, etc. Not so on a statically generated site (this comes back to the above points).
I repeatedly hear from people who have gone the full static route (also known as Jamstack) that they end up spending a lot of time coding to manage the content on their sites. Also, the stack for non-WordPress static sites is very diverse and constantly changing. Every static site needs a CMS, static site generator, storage, CDN, and even version control. And for each of those layers, tens if not hundreds of solutions exist. With WordPress, you get most of that in one system. You need to take care of the static layer separately. For this, you can use a plugin, or an end-to-end platform like Strattic.
Surely there are disadvantages?
The disadvantages are that some types of functionality won’t work out of the box on static sites. You need to put in some work to make it static-compatible. Sometimes it’s simple to make a site static-ready, but sometimes it’s quite complicated.
Also, it’s a new paradigm and requires a bit of a mind-shift in terms of how you manage your site. If you use your own static publishing plugin, you need to configure the whole environment from the WordPress hosting to the static storage to the CDN. You have to make sure it catches every page, redirect, image, et cetera without crashing the server.
On Strattic, we automatically replace a lot of traditionally dynamic functionality with static-friendly solutions. For example, if you have search on your site, we replace it with Algolia-powered search without you having to do anything and we support WP form plugins like Gravity Forms and CF7 out of the box. However, our different approach to security means that you need to enter additional credentials to access your site.
Also, publishing your changes to your live static site involves an additional step: first, you publish your content on the WordPress site, and then you publish it to the static site, which can take a few minutes to go live. It’s just one additional button, but it’s a different flow.
And the potential benefits in terms of SEO?
There are potential SEO benefits from running a static site since they tend to load faster. This, of course, can lower bounce rates and improve conversion rates. In addition, they are extremely difficult to hack. Sites don’t risk being delisted from Google’s search index for malware and the like.
In general, running an SEO-friendly static website is the same as a regular WP site. So, make sure you have good content, titles, meta tags, links, etc. Ideally, a statically generated site can also optimize using an amazing tool like Yoast SEO.
At Strattic, we love Yoast SEO very much. So much so, that we made it one of our first priorities to support it completely: all metadata, Open Graph tags, etc. publish perfectly to the static site. In addition, we publish Yoast’s XML sitemap, robots.txt, and even support 301 redirects created using Yoast. Of course, we also support redirects generated with the Redirection and Safe Redirect Manager plugins.
How fast does a static site get and what else do you need to get the most out of it?
The speed improvements depend on how you built the site, and where you are hosting it. We have seen speed increases of up to 20 times faster, but running accurate speed tests is challenging. Sometimes, the numbers don’t reflect a huge speed increase but the site feels way faster for users. After visiting one page on a site, every subsequent visit feels nearly instant.
Also, all pages on a statically generated site can be served up completely via a CDN, including the HTML pages. The content pages on a standard WP site don’t actually exist as standalone files: they are virtual pages that are generated upon demand. So, in that case, the files that can be served via a CDN are only the static files like images, video, JS and CSS. A user accessing a content page depends on it reaching them from the physical location of the WP server, which in many cases can be pretty far. This could be a visitor in the UK trying to view a site hosted in Texas. All of the pages in a static site exist as standalone files, including the content pages. The system prerenders these as HTML files, so it can served them via a CDN, also making them faster for people around the globe.
As you said, security is another major advantage of running a static WordPress site, right?
Yep, exactly, security is definitely a major advantage of static sites. Your standard WP site runs on a LAMP server. Every layer of that server has potential vulnerabilities, from the operating system to the MySQL to the PHP. Then on top of that, you’ve got the WordPress site which is running many plugins. All these plugins could need a security update at any time. Every minute it takes for you to update the site opens a window of opportunity for the armies of hacker bots scouring the web looking for these known weaknesses.
A static site is essentially just a collection of files. There’s no processing or querying going on, so there’s basically not much to hack. On Strattic, we decouple the original WP site from the public-facing site. Then, we store it in a container that shuts down when not in use, and is only accessible to Strattic-authenticated users. As a result, owners of statically generated sites can sleep better at night :)
Let’s say you have a good use case for building a static site with WordPress, where do you start?
Users have a few options of how they can build a static site with WordPress:
- You can build a headless WordPress website. That means the WP admin is used purely for content management and not for the frontend. The frontend gets the content from the WP Rest API or WPGraphQL. This is a pretty complicated way of building a site since you would need to build a frontend that ties into the content management. Then, you have to keep creating new connections as the site develops. It also makes using Gutenberg blocks, or Elementor, or almost any plugins that impact the way your site looks more difficult and sometimes impossible.
- You can build your site in WordPress as usual (themes, plugins, and all) and then use a platform that specializes in generating a static version of your site. Like Strattic, for instance. We take care of the entire environment, and support important WP functionality that might otherwise be complicated to get working on a static site. Some examples are Yoast SEO, search (we replace native WP search with high-quality Algolia powered search, out of the box, for all our users), WPML, Polylang, 301 redirects, password-protected pages, scheduled posts, Gravity Forms, Contact Form 7, CoSchedule, and more.
To recap, what are your 5 top tips for people who want to launch a static WordPress site?
- Familiarize yourself with what “static” means, and what its benefits are. There’s tons of content out there on this subject. Another popular term used for describing this approach to website development is “Jamstack”. It’s meant to be positioned relative to the LAMP stack, which is considered older and legacy. “Jam” stands for Javascript, APIs and Markup.
- Research the available options for hosting and publishing static WP sites and see what works best for you.
- Make sure you are using static-friendly tools. For example, third-party form systems like TypeForm, Marketo, Wufoo, Hubspot, MailChimp etc. that feed form submissions directly to them are great. If you are using Strattic, you can also use Gravity Forms or CF7 – WordPress form plugins that don’t work on static out of the box, but we support them on Strattic. You can see many examples of tools you can use to replace traditionally “dynamic” functionality in our Static Tools Directory.
- Test your static site thoroughly before launching it. Strattic offers a free trial and you can migrate a copy of your site over and publish it to static, prior to connecting your website domain. Also, all Strattic users get a static Preview site in addition to the static production site. Even once you connect your domain, you can always test your WP site first in the Preview static environment to make sure everything looks ok before deploying changes to your live site for all to see.
- Celebrate being part of an exciting trend that helps ensure WordPress’ future for all! 🎉
Coming up next!
-
Event
WordCamp Netherlands 2024
November 29 - 30, 2024 Team Yoast is at Sponsoring WordCamp Netherlands 2024! Click through to see who will be there, what we will do, and more! See where you can find us next » -
SEO webinar
The SEO update by Yoast - October & November 2024 Edition
26 November 2024 Get expert analysis on the latest SEO news developments with Carolyn Shelby and Alex Moss. Join our upcoming update! 📺️ All Yoast SEO webinars »
Great! Nice informative blog Miriam! I am searching for high DA WordPress Sites. Can you suggest me a few?
I don’t believe the cost and the workarounds justify the pricing. While I’ll give them points for the security mechanisms, I could do almost the same with a regular WordPress site and full site cache it via a service like Cloudflare or Fastly with rules to serve everything (including the HTML) from the edge and get basically the same performance. I have a site which I host for just $10 on a small scale VPS and fully cache via Fastly for $50 as their monthly minimum (total cost $60). Based on my traffic estimates and bandwidth usage, I could easily go up to 800k to 1 million page and stay within the $50 minimum bracket. With Fastly’s shielding service, it would pick up static content from one of their buckets rather than constantly having to hit your origin which means I could easily keep my origin to its $10 bracket. So my best case is 1 million views for $60. I could throw in advanced DDoS protection for additional safety, and still come out better than strattic. With Just a few work around rules, I could still use my regular plugins (forms, et al) as necessary. I would like to see a case study of a side by side edge comparison. The case study does not provide a fair comparison as their original set up would have had them serving content globally from their origin versus a static page directly off the edge.
Hi Mike! Thanks for your feedback. Some sites that are coded really well and are relatively simple do run fast as WP sites. We see the biggest speed improvements on sites that have a lot going on: images, content, plugins etc. All the stuff that slows the site down is left behind and the prerendered static pages show impressive speed improvements.
But even sites that are already fast can benefit from running as static for the following reasons:
* on Strattic, sites get faster under page load as opposed to slower. Here’s a case study by one of our customers about this phenomenon: https://www.strattic.com/how-strattic-improves-site-performance-ftl-metrics-case-study/
* with Strattic, we serve up your entire site (including the HTML pages!) via CDN so it’s fast everywhere. Not so on a WP site.
* security – when running WordPress every layer of the site is exposed and potentially hackable. There’s not much to hack when a site is comprised of static files.
Re pricing: we are generally on par with others in the space and we aim to make static site generation accessible and possible for everyone. On Strattic, we give our users a sophisticated end-to-end solution, and we expand our feature set all the time. The goal is you click one button, and you get a static site. No muss, no fuss.
Hi Matt! Caching kind of turns your site into a static site but with the following caveats:
* It’s hard to get caching right on a dynamic site. Most people end up under-caching, so they don’t get the full benefits of a cached site; or they over-cache, which means new updates aren’t visible to users.
* Your site’s speed is still dependent on the processing server it sits on. So if the server is experiencing load, the static pages experience that load too.
* Your site is being served up from a specific geographical location which slows things down for visitors from other regions. Even if you use a CDN, you can’t (easily) serve up the HTML pages through a CDN. You might be able to do that with some very precise configuration, but you’ll have to invalidate the CDN on every change and hope that your changes are viewable around the world.
* Security – your WordPress site and plugins are still fully exposed and accessible to the web when using a caching plugin. On Strattic, the WP site is in a dedicated container which is only accessible to the site owners, so even if it’s running an outdated vulnerable plugin, the hacker bots can’t find it. Our containers also shut down after a period of inactivity, adding another layer of security.
You could also use a caching plugin like WP Super Cache that would essentially turn your WordPress site into a static one. The plugin is free and easy to use.
After reading this post I wanted to give Strattic a try. I opened an account, migrated my site and… couldn’t log in. After two hours or so the support told me that my site was not compatible with Woocommerce. Seriously? Sorry, but Woocommerce is the leading shopping system in the WP world. Took me two hours to find out that Strattic does not support WOO sites. Not funny! Miriam was very nice. But guys, please make this clear as soon as possible.
Hi Mike! Thanks for trying out Strattic…and for calling me nice :)
Due to the architecture of a statically generated site, it won’t be compatible with some dynamic functionality that runs on WordPress. We are always working on expanding our supported feature set, like we have done with search, forms, 301 redirects, and more. WooCommerce is definitely on our radar. However, supporting WooCommerce is very complex due to the heavily database-driven nature of the product.
We always try to be as clear as possible about what will and won’t work on Strattic. We will see how we can make it even clearer, and we are working on compatibility tools to help site owners check if their site:
1) Will work as static either because the functionality isn’t database-driven or because we have rolled out Strattic support for it.
2) Needs some tweaking to work as static (some dynamic functionality can be easily replaced with static-friendly versions)
3) Won’t work as static (like in the sad case of your WooCommerce site).
Some weeks ago I made some tests, since I was thinking about migrating some simple customer sites to a flat CMS (= static website). I created two exactly identical sites: One with WordPress and one with a simple flat CMS. There was absolutely no difference in loading time. I did then a few stress tests via loader.io with up to 4000 users per second. Only at very high loads I could notice a slight difference.
Don’t get me wrong: I love static websites, but WordPress is much better than many know when it comes to speed. But here’s the problem: Bloating your site with 40+ plugins will very often make your website slow compared to a static website. On the other hand: Try to get so many features using a flat CMS.
Services like Strattic might be an excellent choice, but are not affordable for everyone.