Web Hosting for WordPress
Web hosting for WordPress. What is it? Why might you need it? What’s the best hosting to use for WordPress? What do I need in terms of hosting if I’m using WordPress?
If you have anything to do with websites or are considering making a website, you’ll have probably heard of WordPress. What is WordPress, how does it work, and why is it so popular? Let’s start at the top…
What is WordPress?
The most simple way of putting it, is that WordPress is a web application that’s used to make websites, and manage, and update their content.
WordPress is a content management system (CMS), because it’s used to manage the content of websites.
The content management system (CMS) is the part that you’d log in to. You’d log in to make new pages and add content to these pages. Using a CMS allows you to create and update a website, without the need to code. This is the main benefit of using a CMS.
Most CMS’ are web applications that run as a program within a hosting account. You tend to log in to these using a web browser. Often people refer to this as “logging in to the back end of the site”. The back end is the CMS that you see after logging in. The front end is the website that people see when they visit the website itself. Changes to front end are made via the back end of the site.
WordPress is writting using a programming language called PHP. WordPress also uses an SQL based database (such as MySQL) to store information. The database stores variable information, ranging from the address of the website, to page content. The PHP itself (which is the code that runs WordPress) remains mostly static. PHP runs using an interpreter. The server containing WordPress has the PHP interpreter installed. The PHP interpreter executes instructions in the PHP code to make the computer or server do what’s instructed in the PHP code.
How Does WordPress Work?
Websites, when requested, give page output (which is made up of HTML, CSS and JavaScript) to browsers. Browsers turn the page output in to the web page that you look at. The process where the browser turns page output in to a displayed page is called rendering. A browser renders page output in to a displayable web page.
WordPress is what generates this HTML, CSS and JavaScript page output. It does this by executing it’s PHP. The PHP then interacts with the database. The PHP and database between them generate the HTML, CSS and JavaScript that makes up age output. WordPress sends page output to the browser using a web server as the delivery mechanism.
This probably all sounds horrifically complicated. You might wonder why I’m telling you all this, which I’ll come to in a moment. Before I get to that, I’ll try to give some context to the above. A website made using WordPress being requested results in the following steps taking place:
- Browser requests website (a clicked link or direct access).
- Request for website reaches web server.
- Web server locates the directory (folder) that contains the website being requested, and invokes the index.php of the WordPress site
- The index.php of the WordPress site calls all the rest of the PHP that makes up the WordPress site.
- The PHP all executes (via the PHP interpreter), and starts interacting with the SQL database.
- The PHP and what’s in the database combine to generate page output (HTML, CSS and JavaScript)
- Page output is sent to the browser (mentioned in step 1) via the web server.
- The browser receives the HTML, CSS and JavaScript and turns (renders) this in to the web page that you see.
As you can tell, there’s quite a lot involved here. Some of it, like the browser, is on your computer. Other parts, are WordPress itself (the PHP and what’s in the database). Some components are running on the server. The parts that are running on the server are:
- The PHP interpreter
- An SQL based database
- A web server
WordPress needs the 3 components mentioned above as a minumum to operate.
Why is WordPress So Popular?
WordPress is an “open platform”. This means that anyone can develop components of WordPress, and make them available to the public. These components consist of plugins and themes.
Themes are effectively templates that give your site an overall consistent look and feel. A theme often controls the top part of site pages (the header) and the bottom part (the footer). The theme usually also controls styling information such as colour schemes and fonts.
You can add functionality to WordPress sites using plugins. If you wanted a contact form on a WordPress based website, you’d use a plugin to achieve this. You might also use caching plugin to improve performance. You’d add social share icons to blog posts using plugins. There are lots of plugins that add lots of different functionality.
Because of the “open platform” element of WordPress, there are a lot of different themes. 10,000 themes are available for free, and around 11,000 themes additional themes can be purcahsed. There are over 60,000 free plugins available directly through WordPress.org, and around another 20,000 purchasable plugins.
This vast number of plugins and themes equates to a very extensive and flexible level of customisation. WordPress runs just under half of the websites on then internet. Do half of the websites on the internet all look the same? No they don’t, two WordPress based sites can look very different due to the level of customisation this plugin and theme ecosystem allows.
The popularity of WordPress is largely due to the amount of customisation that this vast plugin and theme ecosystem allows. There’s very little in the way of alternatives that provide customisation to the same degree for both appearance and functionality.
What Do You Need to Run WordPress?
If you’ve managed to make it through the above without gouging your eyes out and running around screaming, well done. You’ll know that you need a PHP interpreter, an SQL based database and a web server to run WordPress. A server runs these components. The server has an operating system (usually Linux). The database server (usually MySQL), the PHP interpreter, and a web server (usually Apache), are all installed on the Linux operating system. Collectively these components are commonly referred to as the LAMP (Linux, Apache, MySQL and PHP) stack.
It’s completely possible to have your own internet connected server, running the LAMP stack, and have WordPress running on that. Then again, that would mean you’d have to update and maintain the server and the LAMP stack. You’d also have to manage all the things WordPress needs. These might include database users, Apache modules, and PHP extensions. You’d might have to do all that by typing in to a box. Systems Adminsitrator is the role of the person that carries out this task.
Using WordPress involves a Systems Adminstrator in some capacity, simply due to the stack required to operate WordPress.
In reality, the ability of a Systems Administrator aren’t something that someone can pick up in a few days. It’s also a full time job being a Systems Administrator (it’s a job title/role in its own right). Running a server and a stack that WordPress needs to run, in entirety, isn’t very accessible for most people.
And that’s why most people don’t run their own servers to operate a WordPress site. So what do they do instead? They use web hosting.
Web hosting For Web Applications.
Companies operating as hosting providers provide web space that can be used to operate WordPress sites. These companies employ Systems Administrators to do the administration of the server and stack for you. That’s right! Systems Adminsitrators do the typing in the box part so that you don’t have to. These friendly systems administrators have done more that just the typing though, they’ve also installed a management interface for you. The management interface means you don’t have to type in to a box!
From the perspective of a Systems Administrator, WordPress is just another PHP based, database backed web application. There are a lot of these types of web applications. Drupal, Joomal, Prestashop, Opencart, and many more.
These all work in roughly the same way: PHP code running the application, and all variables stored in the database.
All these web applications need the same things to run: A PHP interpreter, an SQL based database server, and a web server.
At this point you might wonder why “WordPress Hosting” is a thing, rather than just “PHP/Database hosting”. You wouldn’t be wrong. PHP based database backed applications will function in most types of hosting.
There are different types of hosting, which costs different amounts. Shared hosting is usually a cheaper option. Shared hosting contains multiple web hosting accounts. The web hosting accounts contain websites being run by different people. Shared hosting accounts vary in price according to things like how much disk space, RAM and CPU power is provided. More of these resources generally means a greater cost. At the more expensive en of hosting, there’s dedicated hosting. Dedicated hosting is usually your own server, just for your WordPress site. Again, the price of dedicated hosting varies according to how much disk space, RAM and CPU power is provided.
Shared hosting can usually accomodate any PHP based, database backed web application. Including WordPress.
Web Hosting for WordPress
There is another type of hosting that’s a bit more “tailored” to WordPress. You might recall that I mentioned Systems Administrators installing a management interface earlier. This management interface provides a suite of facilities that you’d use to manage aspects of a website. These facilities cover the administration of aspects related to most websites. A fewer number of these facilities are used to managed aspects of PHP based database backed web applications. One or two of these facilities are used specifically to administer WordPress sites.
Some examples of facilities orientated to WordPress might be Softaculous or WP Toolkit. Although Softaculous isn’t solely orientated to WordPress, this and WP Toolkit both offer some very handy WordPress specific facilities. Softaculous and WP Tookit can both be used to copy or clone a site in a few clicks. This allows WordPress website owners to create a copy of their site, test and publish changes, and then “push to live”. Pushing to live is really just copying the duplicated site (plus changes) back to the original site address. Whilst this might sound like a rigmarole it’s the defacto way of snesibly updating a WordPress website. The manual process of copying a WordPress site on to a different address to create a development site is much more of a rigmarole!
Web hosting for WordPress focuses more on the facilities used to manage WordPress based sites. It makes these more obvious or prevalent to website owners. This part of what makes hosting “hosting for WordPress” rather than “hosting for websites” or “hosting for PHP based web applications”.
The other part that make hosting orientated to WordPress tends to be the addition of software to the server. This software is usually in addition to the LAMP stack that I’ve been talking about. The purpose of this software is to improve the performance of WordPress based sites. Some examples of these types of software might be Redis or Memcached. WordPress recommends the use of an object cache to improve performance, and it’s this that Reids and Memcached provide. Other PHP based web applications can also make use of these. Joomla, for example, defaults to using object caching when it’s available on the server.
There are also different types of web servers. The A in LAMP stands for Apache, which is a very commonly used web server. Some of these alternative web servers that are effectively a faster alternative, such as Nginx (pronounced “engine x”). There are other web servers that are a faster drop in replacement for Apache such as the Litespeed Web Server.
There are a couple of clever things about the Litespeed Web Server. One is the “drop in replacement” part. What this means is that you can switch from Apache to Litespeed very easily. You can also do this in a live environment, without most people even noticing. The other thing that’s clever about the Litespeed Web Server is that there’s a dedicated, related, WordPress Litespeed Cache Plugin. This plugin helps WordPress interact with the web server more effectively. Improved website performance, with reduced loading times for pages, is easier to achieve using both the Litespeed Web Server and the Litespeed Cache plugin.
Hosting facilties contain a mixture of adminsitration tools, and some of these are specific to WordPress.
Web hosting servers can also have additional services installed to make PHP based database backed applications run faster. Some of these services can be specific to WordPress, rather than any, or all, PHP based database backed application.
Plugins, such as the Litespeed cache plugin, can be used to integrate WordPress with underlying services to make it run in a faster, and making more optimal use of server resources.
A platform that includes all of these WordPress specific customisations, is really what WordPress hosting consists of. The objective of combining these customisations is to make WordPress run in a more efficient, faster way.
Imagine a server that’s been set up with all the above to improve WordPress performance. Imagine, also, that this server’s management interface only includes the facilities specific to WordPress. What you’re imagining is Web hosting for WordPress.
We’ve Been Doing WordPress Hosting Experiments…
Here at Netnerd.com we’ve been hosting database backed, PHP based content management systems since they first became commonplace.
We’ve also been providing Softaculous by default for over 10 years now.
Our hosting software of choice is cPanel, which contains a lot of PHP orientated facilities.
In a way, we’ve been providing WordPress hosting for quite some time. We’d just disguised it as normal hosting and not disabled any of the “not WordPress” facilities.
Can we do this better? It’s a question we often ask ourselves here at netnerd.com. A question we ask ourselves more often than that is “can we do this better without it costing our customers a lot?”.
As it turns out, we can, and we do.
WordPress, unfortunately, is very easy to do badly and end up with a slow running website. Due to this we sometimes get asked this question:
“My WordPress is slow, can you do anything on the server to speed it up?”
It was this question that prompted us to start trying to deliberately make websites using WordPress that are really slow. As it turns out, this is VERY easy to do. The next thing we tried was to make these slow websites fast by “doing something on the server to speed it up”.
Initially we took the approach of “doing something on the server to speed it up”. We did manage to to acheive this to quite a high degree. Then we watched the CPU usage on the server go up… and up… and up. This wasn’t so good. What this translated to for our customers was “financial expense”. To be able to do “something on the server”, you’d need your own server (and therefore have a greater expense) for two reasons:
- To be able to carry out what we did, you’d need access to the underlying stack to be able to make some of the changes.
- Due to the CPU usage, you’d have to have your own server (or get you’d upset other website owners hosting on the same server as you, by using all the CPU resources).
After taking a server centric approach, we tried an alternative way of speeding up a poorly performing WordPress site. This was to use the cheap shared hosting and exclusively free plugins. What we were trying to achieve here was the best performance, for the least cost.
We did make some progress using this cheaper approcah, and it was possible to speed things up by just doing things in WordPress. Unfortunately there were some downsides:
- It’s a bit tricky
- You probably need to be able to read HTML
- The site looks a bit minimal
- It involves a lot of “trying things out”
That’s not very accessible to a lot of people, and the “minimal site” aspect isn’t to everyone’s liking so we started trying LOTS of things out to arrive at something that was:
- Easy to do, and accessible for the majority of our customers
- Didn’t result in massive CPU load
- Didn’t cost a fortune
… And What We Came Up With Was:
The server part:
- cPanel hosting (to cover the “things you need” facilities)
- The Litespeed web server
- Object caching available by default (Redis and Memcached)
- Softaculous (WordPress installer/cloner/staging/push to live)
The “in WordPress” part:
- The Litespeed cache plugin (this interacts with the Litespeed web server nicely IN ONE OR TWO CLICKS)
The optional external extra:
- The QUIC.cloud CDN – Again, this is designed to work with the Litespeed cache plugin, and it’s freemium offering covers lower traffic sites for free, or larger traffic sites for a very reasonable cost.
And how much does this cost? Well, you can buy WordPress hosting that includes all except for the QUIC.could CDN for £4.99 plus VAT per month, or if your budget is less, you can have a 1GB limited account (again with all the above except the CDN) for only £29.99 plus VAT per year. Both of these have no bandwidth limit, so as many visitors as you’d like a month.
So there you go. Web hosting for WordPress for £4.99 plus VAT per month, or more if you want more RAM and CPU. We’ve tried to make this as easy and cost effective as we can for you, because operating a WordPress site that performs well shouldn’t be an obstacle for anyone.