SiteGround Review – Blazing WordPress Hosting at Under 300ms

A little over a year ago I did a review of InMotion Hosting. However, over this past year, a lot has happened as it pertains to web performance and speeding up WordPress in general. Now there are new protocols such as HTTP/2, free SSL from Let’s Encrypt, PHP 7, and a bunch of other things.

Unfortunately, InMotion Hosting has not been upgrading with these changes and I will no longer be recommending them to anyone. I am happy to say that I have done a full analysis of SiteGround hosting and was actually blown away.

Check out my in-depth SiteGround review below and even some optimization tips for getting the best speed out of their platform.

I was able to achieve speeds of under 300ms! Speed tests below.

SiteGround Review

For a cheap and affordable host, SiteGround is definitely at the top of the pack when it comes to keeping up with technology as it changes. They were one of the first web hosts to jump on the HTTP/2 bandwagon, thank you! For those of you who don’t know, HTTP/2 is a new protocol that requires SSL/TLS (HTTPS) and speeds things up with parallelism, multiplexing, smaller headers, and other things. This actually makes running HTTPS fast now.

And for those of you who care about SEO, I encourage who to migrate to HTTPS to take advantage of even the small ranking factor boost. Every single blog and website I run is over HTTPS. Thankfully this is now free with SiteGround’s Let’s Encrypt integration. InMotion Hosting still charges you $99 a year to set up SSL, which is ridiculous.

SiteGround Pricing & Features

They have plans starting at $9.95 $3.95 (with my 60% discount) a month and all of them include the following:

  • Free SSDs
  • HTTP/2 & PHP 7
  • MariaDB
  • Free Domain
  • Free Backups (with super easy restoration form)
  • Unlimited Disk Space
  • Preinstalled WordPress upon Checkout
  • Free Website Transfers (no-downtime)
  • WP-CLI
  • Select your Data Center Location
  • 30-Day Money-Back Guarantee
  • 24×7 Support

Support

SiteGround doesn’t just offer great speeds, they also have amazing support which is available 24 hours a day, 365 days a year. Always comforting to know someone is there to help if you run into a problem. I have chatted with them a couple of times now and they have always been very helpful.

Getting Started with SiteGround

Here is a quick walkthrough on getting started with SiteGround hosting. It is very easy.

Step 1

Simply signup for a plan, and upon checkout, you will be greeted with an easy to use website setup wizard. In this example, I am using a test domain and so I am going to do a fresh install of WordPress so I select “Get WordPress preinstalled on this account.” I also chose Chicago as my datacenter.

install wordpress siteground
Install WordPress at SiteGround

Note: SiteGround doesn’t take American Express. If you try to use one, you will get an error like “no available payment agent.”

Step 2

Then choose your login credentials for WordPress and click submit. If you don’t pick a theme from the options you get the default WordPress 2016 theme which is what I wanted.

siteground account setup
SiteGround account setup

You will see account information on the next page, such as your WordPress login. You also get an email with this.

Step 3

Next, you need to point your domain to SiteGround. You will get an email in your inbox with your nameservers.

dns siteground
DNS SiteGround

You do this at your domain registrar. In my example, I am using Godaddy because this is where my test domain was registered. So I click into my domain and next to click on “Set Nameservers.”

set nameservers godaddy
Set nameservers at GoDaddy

Step 4

Then under “Custom” input the nameservers that SiteGround gives you in the email.

godaddy nameserver settings
GoDaddy nameserver settings

You might need to wait a few minutes after you hit save for everything to propagate. When I ran through it, it was almost instant. You can then test your domain to ensure WordPress is up and running. As you can see below a fresh install of WordPress was installed on my test domain, themewood.com.

fresh wordpress install siteground
Fresh WordPress installation at SiteGround

Step 5

The next thing I recommend doing is enabling SSL. This is optional, but I highly recommend running over HTTPS. And it is completely free with SiteGround! To do this simply click into your SiteGround dashboard and click on the “Go to cPanel” button.

siteground cpanel access
SiteGround cPanel access

Step 6

Then scroll down and click on “Let’s Encrypt.”

siteground lets encrypt free ssl
SiteGround Let’s Encrypt

Step 7

Click on the “Install” button. This will then take a few minutes and you will see a successful message afterward.

install let's encrypt siteground
Install Let’s Encrypt at SiteGround

Step 8

Now you need to add a redirect to SSL so everyone is redirected from HTTP to HTTPS. There are plugins that do this, like the free Really Simple SSL plugin (if you use the plugin you can skip to step 12).  I recommend doing it on the server though. To add the redirect we need to edit a file on your web server. So we need to create an FTP account. In Cpanel simply click into the FTP accounts icon.

siteground ftp
SiteGround FTP Accounts

Create a new FTP account. In my example I simply made one called “ftpaccount” and make sure to choose the root directory of /public_html/. Then click on “Create FTP Account.” Make sure to store the password somewhere you remember it.

ftp account siteground
FTP account

Step 9

Now it is time to login via FTP. I recommend using a free FTP client like FileZilla. Use the information you created in the previous step.

Example:

FTP Username: ftpaccount@themewood.com
FTP Server: ftp.themewood.com
FTP: port: 21

Once you get in, you will see a file called .htaccess. Download this to your desktop so you can edit it.

filezilla htaccess file
.htaccess

Step 10

Add the following code into your .htaccess file and save it.

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R=301,L]

It will look like this below after you are done. Then re-upload it to your server.

siteground http to https redirect
SiteGround HTTP to HTTPS redirect

Step 11

Now that the redirect is in place you need to login to your WordPress dashboard and change the WordPress Address and Site Address to HTTPS.

https wordpress
HTTPS in WordPress

Step 12

The last thing to do is enable PHP 7. You will want this because it is faster. By default, SiteGround has PHP 5.4 enabled. In Cpanel again, click into the “PHP Version Manager.”

php version manager
PHP version manager

Click into your public_html directory and change it to PHP 7. For security purposes, the X-Powered-By header is removed to hide your PHP version.

wordpress php 7
WordPress PHP 7

And that is it! You now have WordPress up and running.

SiteGround Optimization – Optional But Recommended

Now to go through and optimize SiteGround to benefit from the most optimal speed. Again I am using a default WordPress install and chose the default WordPress twenty fifteen theme. I chose twenty fifteen simply because I don’t like the look of twenty sixteen.

Step 1

The first thing I do is disable the caching that SiteGround provides. Yes, this sounds strange, but there is a much faster method. To do this, in Cpanel, click into what they call “SuperCacher.”

siteground supercacher
SiteGround SuperCacher
disable siteground cache
Disable SiteGround cache

Then turn off both the Level 1: Static Cache and the Level 2: Dynamic Cache.

Step 2

The reason we disabled that above is that we are going to use the free WordPress Cache Enabler plugin. This is a lightweight caching plugin that creates an HTML version of your page and caches straight to the disk. This method is still one of the fastest caching methods out there. You can read my article on Cache Enabler. There are plenty of debates which is faster, but my speed tests don’t lie.

Step 3

Because SiteGround is using a reverse proxy for Nginx we need to add a small snippet again to the .htaccess file to gain the full speed benefit of the Cache Enabler plugin and bypass PHP. Note: this is a very important step and can cut off about 300-400ms of your load time! Add the following to the very bottom of your .htaccess file.

# BEGIN Cache Enabler
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# set blog sub path
SetEnvIf Request_URI "^(.*)$" SUB_PATH=/wp-content/cache/cache-enabler/

# set Cache Enabler path
SetEnvIf Request_URI "^(.*)$" CE_PATH=$1
SetEnvIf Request_URI "^(/)index.php$" CE_PATH=$1

<IfModule mod_mime.c>
# webp HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html.gz -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html.gz [L]

# gzip HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html.gz -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html.gz [L]

AddType text/html .gz
AddEncoding gzip .gz
</IfModule>

# webp HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html [L]

# default HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html [L]

# wp override
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [END]
</IfModule>
# END Cache Enabler

Step 4

I then install our Perfmatters performance plugin. This helps to get rid of useless things in WordPress like smiley emojis, embeds, etc. All they do is add to your load time.

Step 5

I then do a couple of additional optimizations:

  • I set up a CDN, KeyCDN, so that all of my assets will load fast around the globe. Read my tutorial on how to set up a CDN.
  • I load my favicon on my CDN. (see tutorial)
  • I load my Google fonts from my CDN. (see tutorial)
  • I install ShortPixel so that I can convert the dummy data images below to WebP and compress them.

SiteGround Review Speed Tests

And finally, here are the speed tests below with both the default WordPress twenty fifteen theme and the Schema theme from MyThemeShop.

Twenty Fifteen Theme

As you can see I was able to load a fresh install with a 100/100 score on Pingdom with a load time of 280ms. And this is on shared WordPress hosting? That is right!

siteground pingdom
SiteGround Pingdom speed test

I also ran it through GTMetrix and you can see I scored a 95% PageSpeed score and a 99% YSlow score.

gtmetrix wordpress twenty fifteen theme
GTMetrix speed test

Schema Theme from MyThemeShop

I then uploaded the Schema Theme from MyThemeShop and imported the dummy data. As you can see I was able to load a fresh install with a 100/100 score on Pingdom with a load time of 294ms.

schema theme siteground
SiteGround Pingdom speed test

I also ran it through GTMetrix and you can see I scored a 97% PageSpeed score and a 99% YSlow score. This was actually better than the default WordPress theme.

gtmetrix siteground speed test
GTMetrix speed test

Obviously some of these times will go up slightly once you add more content, but I was more concerned with the bare bones and how fast I could get their shared servers to benchmark. Under 300ms is very impressive. It just goes to show the power of Nginx, PHP7, HTTP/2, a CDN, and superior caching all working together in harmony.

Also it is important to note that I am offloading every single script to my CDN. As you can see below in my waterfall, everything except for the initial DOC load, of course, is loading from my CDN. So when you combine SiteGround + KeyCDN, you pretty much get a winning combination. And both support HTTP/2 and free SSL with Let’s Encrypt.

cdn waterfall
CDN waterfall

Summary

All in all, SiteGround is just blazing when it comes to cheap and affordable WordPress hosting. I was very impressed, and trust me, that is hard to do. If you are looking for new affordable WordPress hosting, or maybe thinking of switching, I definitely recommend checking them out! If you use the link below you will get at least 60% off.

Grab 60% Off SiteGround Hosting

Was this Siteground review and tutorial helpful? If so, please let me below. Would love to hear your experiences with SiteGround. Also, don’t forget to check out additional WordPress optimization steps in my speed up WordPress guide.

author bio
Brian Jackson

I craft actionable content and develop performance-driven WordPress plugins. Connect on X, subscribe to my newsletter (once a month), or buy me coffee.

18 thoughts on “SiteGround Review – Blazing WordPress Hosting at Under 300ms”

  1. Hi Brian, very nice review!

    Yeah, I know well SiteGround, I used it for 1 years ago. It’s a Hosting very good for WordPress, with an amazing support, good prices and nice features, like SuperCacher, PHP 7, Nginx caching and MariaDB. On SiteGround you can use the configuration you want, like your example (with Cache Enabler + KeyCDN + HTTP2 and CDN, or also SuperCacher + Memcached + Autoptimize + CDN). On their Cloud Hosting plans, is available also HHVM.

    Reply
    • Thanks Alessandro,

      Ya I was actually very impressed myself, which is hard to do. For cheap hosting, they really do a great job and offer the latest technology. It’s refreshing to see and always great to have different options.

      Reply
    • InMotion doesn’t support HTTP/2 yet or Let’s Encrypt, that is why for cheap hosting I am now recommending SiteGround, as they offer both of these.

      Reply
  2. One thing to keep in mind is that cache enabler is currently incompatible for non-responsive themes when it comes to mobile devices. For instance, Jetpack’s mobile theme and WP-Touch will not will not be cached. I haven’t figured out a workaround as of yet but it might resolve itself once the CDN is enabled. Truthfully, we should all be upgrading to the latest standard of HTML and PHP.

    If I may pick your brain:

    1. Are you still keeping memcached enabled? I’d assume since you sound like me that you tinkered with both of them on.
    2. Are you still keeping the WP SG plugin installed?
    3. Are you using custom .htaccess rules for expires and other compression?/Gzip?
    4. I’ve heard it’s not ideal to add the Step 3 code above to underneath the end wordpress although it seems to be a smarter approach.
    5. Will that code (Step 3) apply to reverse proxies such as Cloudflare?
    6. Also, are you using CDN minifiers and/or concatenation plugins?

    Thanks!

    Reply
    • Hey. Great comment.
      I am not a big fan of Jetpack due to some bloat if you aren’t careful. That being said, I personally prefer responsive sites vs using a plugin. So Cache Enabler not being compatible with that was never an issue for me.

      1. Memcached was disabled.
      2. WP SG plugin was disabled.
      3. Most of the expires headers and compression such as Gzip is all added automatically with CDN (KeyCDN).
      4. I prefer just using a good CDN which adds the headers for you.
      5. Probably answered that already :)
      6. You can minify HTML with Cache Enabler, but other than that no. With HTTP/2 concatenation actually harms performance. That is a HTTP/1.1 optimization which you should no longer do if you have HTTPS along with HTTP/2.

      Reply
  3. Hi Brian, I’m using A2 hosting but feel my site is running too slow (has a few issues to fix but still a lot slower than it should be). I notice you recommend both hosts on this site but if you had to pick one which would you go with? I’m mostly concerned with site speed.

    Reply
  4. Great review, Brian.
    The free optimization plugins you mentioned were very helpful for me.

    I appreciate you taking the time to conduct the speed tests. I found it really helpful.

    Previously I was interested in trying out the GrowBig package. But the limit of 25,000 hits a month they impose was a big no-no for me.

    I finally went for DigitalOcean. At $5 a month, I’m handling sites with over 2,000 visits a day. But the drawback is that DO is unmanaged.

    SiteGround is good for hosting some affiliate sites, with less traffic at SSD speeds.

    Cheers.

    Reply
  5. I’m loving your blog.u really have an great analytical mind..nice info..every post so far loaded with great info and I have a nice flow too.thx dude

    Reply
  6. Brian, thanks for the recommendations and review. I just have one question, I have seen that some of the pictures are outdated related to the current interface, which there’s no problem but also would like to know: the performance recommendations are still updated?

    Thanks for your help
    Camilo

    Reply
    • Hey Camilo,
      Yes, I need to update the post. But yes, if you can’t afford a host like Kinsta, then SiteGround, in my opinion, is the next best choice. They are really good about staying on top of the latest technology. I work with clients on SiteGround on a regular basis. You won’t find a better host in their price range. Hope that helps!

      Reply

Leave a Comment

2