Can WordPress Scale? It’s the question that drives every WordPress developer crazy- the often-asked and often-debated point of contention that comes up when comparing content management systems. It comes up time and time again with different variations:
- Can my WordPress site scale up?
- Can WordPress handle lots of traffic?
- Can my WooCommerce store have thousands of products?
- Can WordPress host my corporate blog network with millions of visitors and hundreds of authors?
All of the above can be summed up in a single word: Yes. WordPress can and often does scale to gigantic proportions to sites of countless levels of complexity, from single blogs to databases to online storefronts. You’ll hear from a lot of developers or advocates of other systems about how it’s just meant for blogging or how they tried once but it just didn’t work… And all of that is nonsense. WordPress can scale to fit whatever size you need – in fact, the ENTIRE WORDPRESS.COM ECOSYSTEM, thousands upon thousands of sites, are all running off of one WordPress installation. The New York Post, CNN, and even TIME magazine’s sites are all WordPress sites, so yes. It 100% can scale.
That said, there is a giant caveat to the statement, so let me rephrase a little more accurately: WordPress can scale with the proper infrastructure and know-how. This is an extremely important point, and also a complex topic that can’t be covered in a single blog post, so consider this as an introduction to a series of blog posts. In the coming posts, I’ll cover various ways that you can scale WordPress, using only methods that I have personally confirmed. We’ll start with an overview, and in future posts see larger and more complicated methods.
In this series, I am not trying to sell you anything. I have no affiliate codes or incentives to sell you on one web host or another, and any plugins or tools I recommend are things that I use and purchase with my own money. No freebies or slanted viewpoints. Without further ado:
Scaling WordPress 101 – The Ten-Thousand Feet View
Let’s start from a broad perspective in what scaling WordPress means. Traditionally, WordPress has been thought of as a blogging platform first – this is still true to an extent, although it is more of a different approach to a Content Management System (CMS). It started with small blogs in mind and still thrives in that area with hosted solutions like WordPress.com and the option to self-host via WordPress.org.
As sites grew in popularity, the need for more powerful sites came about. With the robust plugin ecosystem, new and different kinds of sites were developed, and suddenly thousands and hundreds of thousands of visitors were flooding into self-hosted sites on budget plans. These budget plans struggled under the load, and thus the stigma that WordPress suffers from performance issues came about… But you’ve just heard the issue with that stigma – a budget plan. I love the concept of running a site off of a Raspberry Pi machine, but it’s a $35 microcomputer – it can’t support a fraction of the visitors an actual server can.
So, we need a good way to expand the capabilities of WordPress. To do that, let’s examine what exactly powers WordPress.
Meet the Software
WordPress runs, like any other code, on a computer. This computer is specialized with hardware (which can change) and software, most commonly a LAMP stack. Knowing that a “stack” in software lingo is essentially a set of software, let’s cover what LAMP means:
With a million varieties (known as distributions), Linux is an open-source operating system, an alternative to the Windows or macOS that you likely run on your computer. It’s actually a pretty neat way to speed up an older computer because it can be more lightweight than either of the two big hitters, but that’s for a different post. Regardless, you’re often dealing with Ubuntu Server for servers.
Technically “Apache HTTP Server”, Apache is (also open-source, you’ll notice a trend) software specifically for running web servers. It’s installed on top of Linux, but can also be installed on Windows servers – called a WAMP stack, in that situation. Honestly, this is the portion I personally deal with the least outside of installing it, but hey, know that it’s a thing.
MySQL is the world’s most popular open-source database software. There’s a hot debate about how to pronounce this – I personally say “My S-Q-L” with each letter said individually, but people also pronounce it “sequel”. I don’t really care so much, but “.gif” is absolutely, 100% pronounced “Jif”, like the peanut butter. ANYWAY, there’s other database software that can work with WordPress, but unless you really know what you’re doing and have a good reason, MySQL will do just fine.
PHP is a general-purpose code language that is primarily geared towards the web. This is the server-side code language that WordPress uses to create pages. Every single WordPress site, theme, and plugin has some sort of PHP in it. “Server-side” means that most of the processing is done by the server instead of the user’s browser. PHP is pretty efficient for all it can do, but like all code, it can be written poorly and judged on that.
Meet the Hardware
Great, so now you know some terms – but what about the hardware that really runs the site? This is a trickier area and a whole different specialization. There are a few components important to understand:
The central processing unit of the computer. This is what does all of the computing and calculation to run the code. There’s a bunch of terms and marketing around this that can complicate it, and what I’m about to say is a great oversimplification, but think of it like this: all of your code is math. The CPU is a calculator, and the speed of the CPU determines how fast the calculator can run.
Now, a CPU has cores. Each core can (oversimplification!) do one thing at a time, but very, very quickly. So, a dual-core processor can do two things (oversimplification!) at a time, which is a great improvement. There’s also hyperthreading in CPUs. Most modern processors have each core running two threads. This divides the calculation power in half and lets it do two things at once (oversimplification!), because CPUs are much, much more powerful than they usually need for a single calculation.
The rule of thumb is each core has two threads and can do two things at once. Doubling the number of cores doesn’t always equate to a 100% increase in speed, but it’s close enough.
How does this relate to hosting? WordPress can be CPU-heavy, meaning it requires a lot of calculation. This is because it’s server-side code (PHP, remember?), and isn’t inherently a bad thing, just something we’ll want to keep in mind for the future.
The memory of a computer is often confused with the hard drive space, but they’re very different. Memory, in terms of servers and computers, is specifically talking about Random-Access Memory (RAM). RAM temporarily stores bits of data that are in use by the computer, like how we might use a scratch piece of paper. The larger the RAM in a computer, the more calculations, images, code, and processes can run at the same time. In your personal computer, the RAM will directly determine how many applications you can have open at the same time, so it applies very similarly.
How does this relate to hosting? Memory allows for more simultaneous things to happen on your site. This means more visitors, larger amounts of data you can manage at the same time, and also the performance of the site for visitors (though there are hundreds of components for performance). RAM is essential to an optimized site.
Hard Drive (Storage)
This is pretty straightforward – just like in your computer or phone, this is the amount of storage you have available for all of your files, including the operating system, backups, some temporary storage, and anything else. There are two main types of hard drives – disk and solid-state. You want solid-state for anything that does the processing, so you’ll store Apache and WordPress on solid-state drives. Disk drives are notably slower but much cheaper, so you’ll store most of your media like images and videos here.
How does this relate to hosting? You need enough storage space for everything you’re going to deliver. While I don’t usually suggest storing most of your stuff on the same computer as your operating system (more on that down the road), you should always have at least 10% of your maximum disk capacity free, so if you’re using a 1 terabyte drive for media, you should increase your drive size when you start getting around 800-900 gigabytes of files. I don’t know the exact reasons why aside from saying that filling it past that point will see a significant slowdown.
Why do I need to know this?
You need to know this because of all of the future implementations that will be tied to it. I’ll reference all of these things in upcoming articles, so make sure you understand them before continuing. Until then, keep on hosting and rest assured that more articles are on the way. Now would be a great time to subscribe for updates, and I’ll add links to this page as I write options.
Have any questions or comments about this article, or ways you think it can be improved?
Join the conversation in the comments below, or sign up for my newsletter to recieve periodic updates!