Basic server optimization takes only a day or two. It can make profound differences in the performance of a website. Not just with the keyword rankings in Google, but every possible metric. We are going to show you how we went about doing our last update of site performance optimization. Our Page load times for PDXWeb Design were in the 4-7 second range before. Now almost all of them load in under 2 seconds. About 80% of the performance increase came from optimizing the images. Something to keep in mind.

According to a Shopping behavior Study by Kissmetrics:

  • 47% of visitors expect pages to load in under 2 seconds.
  • 40% will bounce from the website if it takes longer than 3 seconds.
  • 79% of visitor who were dissatisfied with a websites performance, were less likely to buy from them again.
  • 45% of mobile users have encountered websites that didn’t function as expected
  • Amazon would Lose 1.6 billion dollars in revenue every year If they slowed the site down by just one second.

When it comes down to actually doing the work of site optimization. Its mostly a time thing. You can do a killer job of optimizing a website for free. You should be able to get any WordPress blog to load in under 2 seconds if you use follow the steps below. Don’t miss out on traffic, and sales because your website is slow. 

Our Server Setup:
Digital Ocean Droplet: 2 GB Memory / 30 GB Disk / – Ubuntu WordPress on 14.04
Server Location:
Texas, United States for a more balanced site speed for the entire country. Most of our traffic is US at the moment, so its best to optimize it for them. We use Cloudflare mostly to help optimize the website load time for our international traffic. The Free SSL is also another awesome benefit of using this service. 

Step 1.) Free Cloudflare SSL & CDN:

If you head over to Cloudflare and create a free account with them. Email confirmation inst required. If its for a website you plan on keeping. Then I would recommend using a personal email address. So you can get notifications in case something happens. 

After the account is created, it will ask you to Scan your website’s DNS
Let it scan the records, so you can setup new ones with them in the next step.

Domain Name System (DNS) Records:

Here is our very basic DNS Setup. 
Points to: would be the IP address of the server you are using. 

Note: If you are struggling with installing cloudflare, our installation guide on fighting bots covers it more in depth.

Cloudflare Account Settings:

Our Auto Minify settings are turned on. If you have any conflicting issues with plugins, you may have to turn this off. This is very unlikely to happen though. 

Using the free flexible SSL certificate. You can use cloudflare to redirect all of the non-https page requests to the secure page. This can be done by using a page rule, and wildcards tokens. 

Page Rule: Always use HTTPS 
URL Format: http://**


Plugin’s To Try If The SSL Causes WordPress issues:

  • CloudFlare Flexible
  • SSL Remove HTTP
  • SSL Insecure Content Fixer
  • WordPress Force HTTPS

Step 2.) Image Optimization:

WP-Smush, in my opinion, is the best and free WordPress plugin for compressing and resizing images. If you are using a website that uses a lot of images, then you might think about upgrading to the pro version. Just whatever you do, don’t use a credit-based service. The improved quality for the cost spent just isn’t worth it.

Other Popular Plugins:

WP-Smush Settings:

Automatically smush images on upload: Yes to all.

Preserve image EXIF data: Off, unless you know what you are doing.

Resize my full photos: This will depend on the layout of your website. Find out the max width you can fit onto your page without scaling. Set it to that. If you already have some photos live on the website. The Max dimensions listed for you should be accurate. Sometimes on our articles, we use really long images. For our purposes, I have it maxed out. Its normally the width of the images that give issues. 

Manually Fixing the leftovers: With the free version of this plugin, sometimes you will run into images it won’t compress without the upgraded pro license. Manually resize them, and make sure they are saved as a jpeg. Delete them from the WordPress media database as well, so you don’t get the error message every time.

Jpeg’s tend to compress the best, so try to save all photos as a jpeg image if possible. If you already have images uploaded. You will need to keep the bulk smashing window open when it’s running. As It makes you restart the process after a certain number of runs. The first run of  bulk optimization takes some time and uses up a lot of server resources. So try to do this during a slow part of the day.

Manual Compressing Tools:

Step 3.) CSS & Script Optimization:

Head over to, and create a free account with them. Using the waterflow chart to improve our page load times. You are not required to have an account, but the extra benefits are worth taking the time to do so. You can run more tests at the same time, It will save the URLs, and history of the scores when logged in. This really helps for debugging, as this process can take some time. Make sure to test the home page, and a few inner pages as well.

Things to look out for:

  • Large img files
  • Unneeded plugins
  • Javascripts not located in the footer
  • Unneeded CSS files
  • Slow server requests from other websites 
  • Gzip not installed
  • High HTTP Requests
  • No Browser Caching
  • Total Page Size
  • Local Server Response Time

You will want to make sure the Yslow, and Page score are passing as well. Most of the really basic server optimization tasks are in there. If you have not done them, then you will be made aware of them via the Yslow or Pagescore results.

The waterfall just presents the information in a nice way. So you can see whats really slowing down the site. Work on the major issues, then tackle the smaller ones.

Google PageSpeed Test seams to give some better advice when it comes to JavaScript and css optimization. Its reports can sometimes be helpful with Images, but gtmetrix generally does a better job of it. 

Another method for finding slow page scores requires that you have some traffic going. You can look in analytics at the speed suggestions report. Then you can look at a larger amount of data at once to find slow pages. See what adjustments they recommend, and attempt to fix whats wrong. This method is better used as a website audit, as it requires live traffic for accurate results. 

Managing Enqueued Files:

Head to the menu page of the WP Minify plugin
You will find the list of scripts under the Manage Enqueued Files tab.

Find the JavaScript file that need to be relocated to the footer, or header 

Hit the Action Selection button next to the script of the file.
This will bring up the menu to relocate/remove/non-minify.

Remove any unused CSS files and save. 

Step 4.) Caching:


<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg “access 1 year”
ExpiresByType image/jpeg “access 1 year”
ExpiresByType image/gif “access 1 year”
ExpiresByType image/png “access 1 year”
ExpiresByType text/css “access 1 month”
ExpiresByType text/html “access 1 month”
ExpiresByType application/pdf “access 1 month”
ExpiresByType text/x-javascript “access 1 month”
ExpiresByType application/x-shockwave-flash “access 1 month”
ExpiresByType image/x-icon “access 1 year”
ExpiresDefault “access 1 month”

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Update the htaccess file with the above script. 
Make sure not to replace, or duplicate any modules that are already in the htaccess file. 

Step 5.) Deleting Unused Database Files:

Just like you delete unwanted files on your desktop, and defragment the hard drive. You also build up a collection of junk files on your server. Using the free plugin WP-Optimize, you can automate the process.  

Under Settings:
Enable the scheduled clean up beta feature. 
Select the schedule frequency for the database optimization.

Select what you want it to delete/optimize when it runs
And save the settings. 

Step 6.) Reducing The Number Plugin’s:

Schema App Structured Data
Official site

By Hunch Manifest

Better WordPress Minify
Official Site

By Khang Minh

Google XML Sitemaps
Official Site

By Arne Brachhold

Thrive Visual Editor/Thrive Architect
Official Site

Reduce Bounce Rate

By Okoth1

Above are the plugin’s we have active and live on this website. You are going to want to keep as few as humanly possible. Find ways to avoid using the plugin, but still solving the problem they were fixing. Normally done in the child theme files, or server side. You just have to google and try to find some solutions.