Since the inception of WPSteam in April 2021, a lot has changed in my WordPress setup. The theme has changed, plugins have been modified and the most important thing of all – the hosting setup has been changed.
In this post, I will go through my entire WordPress setup, what theme I use, what plugins I use, how have I optimized my server, and more.
The most important part of any website is its hosting setup. If it’s not done correctly, then crashing of that site is imminent under a very light load.
As you might know, I hosted my site with Hostinger before but as time passed, I found out multiple flaws with their service. For starters, they don’t provide free SSL certificates (yes, they charge you for it and provide you with Let’s Encrypt SSL certificates which in my opinion is daylight robbery). Also, their email setup is weird. One time, I sent emails to two of my website visitors. They queried me about something. I sent those 2 emails within 1 min. Apparently, that was enough for them to disable my webmail service. When I tried contacting their customer service (which takes over an hour if you haven’t purchased priority customer service), they told me that I was using their email services for mass mailing. I was shocked. I showed them what I was trying to send and only after that they removed the ban. Also, their server response times are extremely slow, and multiple times, I faced timeout issues. Just to let you know, I was on their most expensive shared hosting plan (WordPress Business) and was only hosting this site.
Due to these reasons, I decided to move away from them. For a month, I tried going with WordPress.com but they have some weird restrictions which were not playing well with a plugin that I was using. So, I finally decided to switch over to AWS, specifically – Lightsail. Why Lightsail? Why not the standard EC2 instances? My decision to go with Lightsail and not with EC2 comes down to the monthly cost. I don’t serve ads, nor do I do affiliate marketing. So, the entire hosting cost is paid from my monthly allowance. If I were to go with EC2, then after the first year, I had to pay for the instance + the EBS storage + bandwidth. Also, as I am using CloudFront and S3, the monthly charges would’ve varied drastically and would’ve been unpredictable. So, to ensure that I can host with a fixed monthly budget, I chose to go with Lightsail.
My current setup is as follows:
- $5/month Lightsail instance (1 vCPU, 1 GB RAM, 40GB EBS Storage)
- $1/month S3 storage (5 GB with NO restrictions on number of operations)
- $2.50/month x 2 CloudFront distributions (50 GB each, one serves the images from S3 and another one serves everything else from the Lightsail instance)
Now, let’s look at the server setup:
- Bitnami LAMP stack (just because of the quick setup time)
- Redis DB caching and full-page caching
- Server-side firewall
This setup can easily handle 1000s of concurrent users without breaking a sweat. So, I highly recommend this setup to anyone who has a little knowledge about Linux CLI and servers for the best cost-to-performance ratio.
My WordPress setup has changed less compared to my hosting setup but the change is still substantial. For starters, I have switched over to the GeneratePress theme as it is fast and highly customizable. Also, I have added some plugins for managing my mailing list. Let’s take a look at them below.
I am using the GeneratePress theme due to its speed and high customizability. I am using custom CSS for all the shadows and some other small stuff.
For custom elements, I am using GeneratePress elements (only available in GeneratePress premium).
I use the following plugins on my site:
- Autoptimize – I use it for minification of JS, CSS, HTML etc and for every other site optimization
- Bloom – I use it for making email subscription forms
- EWWW Image Optimizer – As the name suggests, I use this plugin for image optimization
- FluentSMTP – I use it for sending email from my site via AWS SES
- GP Premium – Unlocks the premium features of GeneratePress
- Insert Headers and Footers – I use it for inserting some code into the site’s header of footer or it’s body
- LuckyWP Table of Contents – The table of contents on my posts is generated automatically by this plugin
- Mailster – This plugin helps me manage my mailing lists and design newsletters> Basically, this is a all-in-one plugin for newsletter in WordPress
- Mailster Amazon SES Integration – This plugin helps to integrate AWS SES in Mailster
- Perfmatters – This plugin helps me to disable all the things that I don’t need to be enabled in my site (example – xmlrpc.php)
- RaffelPress Pro – I use this plugin to hold giveaways and decide the winners
- Rank Math SEO – This plugin manages the SEO of my site
- Redis Cache Pro – This plugin helps to cache database resquests to reduce server resources and improve the site’s performance
- Redis Page Cache – This plugin enables full-page caching on my site using Redis. It helps to decrease server load and improve site performance
- RediSearch – Used for more accurate and faster search
- Regenerate Thumbnails – This plugin helps to regenerate theme thumbnails
- Simple Basic Contact Form – The contact form is powered by this plugin
- SiteGround Security – I use it for WordPress hardening
- UpdraftPlus – Used for weekly backups
- WP Media Offload – Used for uploading media to S3
- WP Show Posts – This plugin powers the “Also Read” posts list
These were the changes that I made to my new hosting setup for this site.
If you have any queries or suggestions, then please let me know in the comments down below.