The majority of SEO services focus on content creation, content modification, social media engagement, site submission, or “black hat” techniques like link spamming, and keyword stuffing/hiding. In this article, I’ll cover server-side technical optimizations that companies and SEO specialists can enable on their websites.
The following list covers most technical optimizations. The most common theme here is boosting the speed of delivered content to your customers. The importance of these items increases proportionately to exponentially, depending on traffic and served content. Later in the article I’ll get very specific for the benefit of those who implement these solutions.
- HTTPS – Enables your site to communicate over encrypted protocols. Aside from making the NSA try harder to snoop, it makes it unlikely that your customers can have their browsing sessions hijacked while using open Wifi connections.
- DNS (Domain Name Service) – The service that translates a domain name like “google.com” to the specific server address that will handle your request. Speeding up this process will decrease a customer’s wait time.
- Minify Website Content – If I have too many spaces here, it takes longer to It’s not so different with websites. Developers use whitespace in the same way we punctuate language – to make it more understandable. Once the HTML, CSS, Javascript, etc. are on the web, there’s no benefit for a customer to load whitespace as it’s more to download.
- Cache Website Content – This can be a lot of things, but I mostly refer to caching pages or assets into system memory. Even if your site is running on a server with SSD, the system’s memory is faster.
- CDN (Content Delivery Network) – Physics plays a role in page load time. If a website is hosted on the other side of the world, there’s that more transit time, routing, and the possibility of a failure along the way. You can use CDNs to distribute website content worldwide.
- SSD (Solid State Drive) – Many hosting providers have switched to SSD hosting over traditional spinning hard drives, but it’s always good to verify. For anyone who has ever gone from a spinning hard drive to an SSD on their personal computer, you know what kind of difference this makes.
- Ethernet port speed – If your site has sizable images or serves audio/video content, it is worth checking with your hosting provider about the speed of your server(s) Ethernet connection. A lot of customers are on connections of 100Mbps, and in some countries, 1000Mpbs is becoming common. There will be a bottleneck if a few of those customers are using your site that’s connected to a single 100Mbps Ethernet connection.
- Hardware – Just like a new personal computer is faster, the same applies to the server(s) hosting your site or hosting your app.
Okay, that’s the brief overview.
For the implementers of these optimizations, I’ll cover specifics for each point. This is just a starting point for you, as there are so many nuances depending on your architecture.
HTTPS
Ever since the NSA became popular, there has become much more emphasis on encrypting communications on the internet. Search engines have even given higher placement to sites that are https-enabled. Even forgetting about the NSA, so many people connect to insecure Wifi which is vulnerable to many attacks. A site that runs over HTTPS will enable customers to have a reasonably secure connection to your site. In case you’re wondering, I say “reasonably” because today’s secure protocols are tomorrow’s insecure protocols. It’s up to client and server to run the most up-to-date and secure software.
Here are some browser depictions of the various states:
HTTP (Not secure):
HTTPS (Secure):
HTTPS (Secure, with “Trust”):
The cost of implementing HTTPS is now free, thanks to several services:
- Let’s Encrypt – If you’re comfortable with server-side installation and configuration, I recommend Let’s Encrypt. Note – must renew every 90 days, but it’s easy to do with a crontab command. You can also use their free certificates to secure other services such as email.
- Cloudflare – By far, the easiest way to get up-and-running with HTTPS. You just point your DNS to their servers, and enable the SSL option. You can leisurely set this up in 10 minutes.
https://www.cloudflare.com/ - Comodo – Similar to Let’s Encrypt, also have to renew every 90 days.
https://ssl.comodo.com/free-ssl-certificate.php - Paid certificates are available from almost all domain registrars.
From a purely cryptographic standpoint, there is NO difference between free and paid certificates. So, what do you get if you pay for a certificate? Longer renewal lifespan (not that it matters with auto-renewals), technical support, warranty/insurance (your merchant processor might require this), and those green bars in the address bars with your company name. Free vs paid does not matter right now if your site isn’t running HTTPS, just get it running!
DNS
By default, a domain registrar will handle your domain’s DNS. You can customize it to use your own servers or a third party. Many of the large registrars have reasonable speeds for lookup response time, but you can sometimes get faster and more reliable results elsewhere. Here are some options for DNS servers for your domains:
- Cloudflare – They offer a free and very fast service. As you’ll read in other sections, I recommend them a lot.
https://www.cloudflare.com/ - Hurricane Electric – As of this writing, HE offers their DNS services as a free open beta.
https://dns.he.net/ - Amazon Route 53 – Amazon’s DNS product.
https://aws.amazon.com/route53/ - DNS Made Easy – Enterprise DNS
https://dnsmadeeasy.com/
You can check the DNS speeds of the most popular providers on this site – https://www.dnsperf.com/
Minify Website Content
There are a lot of tools out there to minify content. I’m only going to recommend 2 here because of it’s ease-of-use, and all-encompassing nature – Google PageSpeed Module (mod_pagespeed) and CloudFlare.
- Google PageSpeed Modules – https://developers.google.com/speed/pagespeed/module/ – This module will automatically and transparently minify and optimize most served HTML, CSS, Javascript, and images.
On CentOS/Apache:
64-bit: wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
32-bit: wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm
yum install at
rpm -U mod-pagespeed-*.rpm
/etc/init.d/httpd restart or apachectl restartThat’s it! After a page reload or two, you should start seeing the optimizations. PageSpeed will not always catch updates immediately, so if you push changes to your production site, you can force the cache to invalidate by running:
sudo touch /var/cache/mod_pagespeed/cache.flush - Cloudflare – https://www.cloudflare.com/performance/ – This is an external service that can optimize your site in conjunction with handling your domain’s DNS. You can only use this if you have access to your domain registrar’s configuration. Assuming you do, the sign-up process for Cloudflare is very simple. They can guide you through the process of switching your DNS servers to theirs. Once it’s switched, they effectively intercept your site’s traffic, optimize it, and serve it to the client on a lightning-fast network. Chances are, letting them handle this for you, it’s the fastest, easiest, and cheapest (free) way to speed up your site and protect it from attacks.
Cache Website Content
The fastest source of stored data on a computer is it’s memory, that is, the RAM (Random Access Memory). Most storage devices on servers are either hard drives or NAND based SSDs, which pale in comparison to RAM. There are many tools available that utilize a portion of your system’s RAM to serve frequently accessed data directly from RAM. Here are a few examples:
- Apache Traffic Server – Edge network proxy cache
https://trafficserver.apache.org/ - Squid – Caching and forwarding proxy
http://www.squid-cache.org/ - WP Super Cache and W3 Total Cache – WordPress cache plug-ins
https://wordpress.org/plugins/wp-super-cache/
https://wordpress.org/plugins/w3-total-cache/
- Built-in cache options – Some products already have caching built-in, it might be enabled already, or need configuration. Some of these products are: MySQL/MariaDB, Drupal, NGINX, Django, etc.
There is also the option of a RAM-based SSD which is much more expensive. This is best for applications with very high data I/O.
CDN (Content Delivery Network)
A CDN will distribute static portions of your website to a wider geographic area, in many cases, worldwide. This ensures faster response times to client requests versus everyone accessing the same server(s) regardless of location. This method doesn’t speed up dynamic content, but hopefully your site isn’t taking too long to generate dynamic content in the first place. A good portion of a client’s wait time for a site is downloading static content.
If your business is worldwide, it’s a good idea to prioritize this option.
- Cloudflare – Offer CDN transparently and free!
- Akamai – One of the most respected CDN networks. Setup isn’t nearly as easy (or free) as Cloudflare, but their network is currently the largest and most robust.
- Amazon CloudFront – Rapidly growing and robust.
SSD-based storage
SSD is far faster than the traditional spinning hard drive. Most hosting providers have already switched to SSD-based storage. If yours hasn’t, it’s time to change. Chances are, you’re paying the same price as SSD-based options. If you host a massive amount of content that isn’t frequently accessed, it might make sense to store it on traditional hard drives in a RAID configuration.
Ethernet port speed
It’s entirely possible that you’re hosting some great hardware that has a bottleneck of being plugged into a slower Ethernet port or maybe it’s plugged into something fast, but the cable is low-quality, causing the operating system to negotiate a lower speed. It’s a good idea to test the throughput of your connection.
- Speed test from Linux(CentOS):
wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod u+x speedtest.py
./speedtest.py
Results!
[Speedtest result] - Speed test from Windows: Log in with Remote Desktop, and visit any speed test site that measures upload speed. There will be a little overhead from your session, but not enough to matter… unless, for some odd reason, you’re running a 4k RDC session.
If you run a text-based, few-graphics, or low-traffic website, this is not so important. The intention here is to not worry about multiple customers on gigabit connections visiting your site at the same time.
Hardware
Sometimes you just need an upgrade. Most of the methods above will give you a performance boost without a hardware upgrade, but if there’s still a noticeable lack of speed, it’s going to be one of: Site coding efficiency, bad configuration, or insufficient hardware resources. Maybe it’s a combination of all these factors.
It’s hard to recommend a specific upgrade path to make because it depends on what your site does. If you’re a small company paying $5/month for hosting, try upgrading to the $20/month plan. After that, it’s not so easy to just recommend spending more money for hosting. This is where all aspects need to be examined for an in-depth recommendation.
Ideally, you’ll implement all methods to deliver the best experience to your customers. If you have other insights, please share with us.