How to Speed Up Your WordPress Website or Blog


Choose a good hosting plan (and company)

Speed, support, and performance really matters


One of the worst offenders for slow-loading WordPress sites are lackluster plans (or companies) – ones that can’t truly handle the site that you’re building or the traffic you’re receiving.

Choose a good host that offers support, storage, bandwidth, and load times for the best experience possible.

Recommended hosting for WordPress:



Offers economy WordPress hosting for under $5 per month and is recommended by WordPress.

Check it out


Use an optimized theme or framework

Sometimes it’s your theme causing the problems


The theme that you’re using can often be one of the main culprits for slow-loading pages.

Not all themes have been optimized and coded for best practices, leaving you with a design that might look good but function terribly.

Choosing a well-coded theme or framework will not only ensure load times are fast, but can often help with security and other critical issues.

Some recommended WordPress themes and frameworks:

Elegant Themes

Elegant Themes

Gives you 87+ WordPress themes (plus plugins) for one flat price.

Check it out

Genesis Framework for WordPress by StudioPress

Genesis Framework

One of the most popular frameworks for WordPress, optimized for speed, security, and best practices.

Check it out

You might also want to check up our ever-growing WordPress themes collection, for themes specific to your topic, content, or industry.


Keep your WordPress version up-to-date

Don’t let an outdated version of WordPress keep you from peak performance.


To update to the latest version of WordPress:

  1. Log into your site and click on “Dashboard” then “Updates” on the left-hand menu
  2. Click “Update Now”
  3. You’re done!

If you see “Reinstall Now” then you are currently running the latest WordPress version.


Use the latest PHP version (that your host allows)

Keep your site running on the most recent release of PHP


New versions of PHP are released with improvements that have been designed for performance, running on the latest version ensures that you’re site is using the best code available.

Log into your hosting account or call their support desk to ensure that you’re running the latest version they offer.

Optimize Your Site Structure


Use link instead of @import for CSS files

Allows parallel downloading of your stylesheets


Make sure your site is using:

<link rel="style.css" href="yourstyle.css" type="text/css">

instead of:

@import url("yourstyle.css")

for your stylesheets (fortunately, most themes do this).

This will allow for parallel downloading of your CSS files instead of sequential loading, which means it takes more time for each request.[1]


Load your scripts in the footer

Allows your content to load before JavaScript


Where possible, load your scripts in your footer instead of your header.

By placing your scripts in the footer of your site, you are allowing the rest of the page to render instead of waiting on your scripts to load before your content does.


Flush the Buffer

Allows your content to load before JavaScript


Continue loading content while your files (CSS, favicon, etc.) are being loaded in the <head> of your page.

To flush the buffer, simply add:

<?php flush(); ?>

immediately after the </head> tag in your theme’s header.


Prefetching domains

Allows you to download files preemptively or as soon as possible


By implementing prefetching you can gain a performance boost for your site, especially useful for things like Google Fonts, analytics, or social networks.

For example, placing this in your header file (within <head>):

<?link rel="dns-prefetch" href="//">

Should give you a slight performance boost when loading those particular files.


Replace PHP with static HTML

Every little bit helps


Although fast-loading, any time you can replace dynamic PHP with static HTML should save you some time.

Look through your theme’s files for code snippets that don’t change and see if they can be replaced with static HTML instead of PHP.

Often, these will be found within your header in between <head> and </head> or the footer of your site.

Some of the more common replacements include:

  • Links to your stylesheets and scripts
  • Document attributes
  • Website/blog name

Fewer calls to scripts and external sites

Rely internally on scripts and files if possible


Try to keep your use of external scripts and resources (for CSS, scripts, etc.) to a minimum.



Optimize and compress your images

Ensure that your images have been optimized and compressed as much as possible


In most cases, the images or photos that you are using or uploading to your site have not been compressed and optimized for the smallest possible file size.

There are several tools and WordPress plugins that will optimize your images by compressing them and still maintaining a high-quality image.

Some tools for compressing images:

  • TinyPNG/TinyJPG– upload a photo and it will compress it and allow you to download it
  • WP Smush – a WordPress plugin that will automatically reduce your image sizes when uploading to WordPress
  • Imagify – another WordPress plugin that reduces image sizes upon upload

Use correct image sizes

Make sure that your images are sized correctly


Avoid scaling images to ensure fast load times and the best experience possible for your visitors (i.e. don’t resize a 180px square picture to 150px).

By using the correct image sizes for your site, you will avoid unnecessary and larger images by only serving up the correctly-scaled ones.

Also, be sure to set the height and width correctly.

For example, if you are using a 250px square image – your HTML should look something like this:

<img src="/images/image.jpg" height="250" width="250" />


Use local gravatars

Use locally-hosted Gravatars instead of relying on the resource-intensive


Woorkup’s article explains the process best.[2]

Lazy Load Your Images

Only load images when your visitor has scrolled to that content


You may have seen pages where the images slowly fade in as you scroll – what you are seeing is “lazy loading” in action.

Reduce your server bandwidth and load time for your visitors by implementing a lazy loading WordPress plugin.

Lazy Loading WordPress Plugins

Lazy Load WordPress Plugin via

Lazy Load

Gives your site’s images lazy loading functionality.

Check it out

Advanced Image Lazy Load WordPress Plugin via CodeCanyon

Advanced Images Lazy Load

Offers extended and enhanced lazy loading functionality for your blog or website.

Check it out

Files & Content Delivery


Use a Content Delivery Network (CDN)

Allows your content to load before JavaScript


When you use a CDN (Content Delivery Network), you are offloading the burden and costs of serving your site’s content to your visitors – while optimizing it for your visitors by serving your (images, video, files, etc) from a server that is closes to theme – reducing the speed and time it takes to load your site.

Using a CDN greatly enhances the performance, security, and usability of your site.

The most popular and highly recommended CDN:



Used by millions, MaxCDN is the premiere Content Delivery Network with pricing from only $9 per month and integrates via a WordPress plugin with ease.

Check it out


Minify files (CSS, JavaScript, & HTML)

Reduces your files to the smallest size possible


By minifying your files you reduce their size and deliver the smallest possible file (and size) to your visitors.

A quick word of caution though, many sites experience broken layouts and designs when using minified files – so be sure to be cautious as you’re implementing this on your site.

While most caching plugins offer built-in minification tools, you can also do it manually:

  • Minifier – an online tool that lets you copy and paste your CSS and JavaScript, it is then automatically minified for you.

Use a caching plugin

W3TC, WP Rocket


Continue loading content while your files (CSS, favicon, etc.) are being loaded in the <head> of your page.

To flush the buffer, simply add:

<?php flush(); ?>

immediately after the </head> tag in your theme’s header.


Clean up and optimize your database

Get rid of what you don’t need


Continue loading content while your files (CSS, favicon, etc.) are being loaded in the <head> of your page.

To flush the buffer, simply add:

<?php flush(); ?>

immediately after the </head> tag in your theme’s header.


Concatenate CSS and Javascript

WP Smush and Imagify


Continue loading content while your files (CSS, favicon, etc.) are being loaded in the <head> of your page.

To flush the buffer, simply add:

<?php flush(); ?>

immediately after the </head> tag in your theme’s header.

WordPress Plugins & Settings


Disable, limit, and delete post revisions

You don’t really need all those post revisions do you?


WordPress has built-in functionality that autosaves a post every time you make a revision or update to it.

For many, saving every version is overkill and unnecessary.

You have two options, and can place the code below in your functions.php file found in your theme’s files.

Disable post revisions functionality altogether:

define('WP_POST_REVISIONS', false);

Limit the number of post revisions you want to keep (in this example we are saying to keep 5 revisions):

define('WP_POST_REVISIONS', 5);


Disable trackbacks and pingbacks

Most sites and blogs don’t really need these enabled


Pingbacks and trackbacks are built-in notifications that also tend to take up some space and resources, if they’re not absolutely (which for most sites they’re not) – go ahead and disable them.

WPBeginner has a great overview of what pingbacks/trackbacks are and how to disable them.[3]


Deactivate and delete unused plugins

Get rid of what you don’t need


WordPress plugins (while quite the lifesaver), can also can bog your site down if you’re not careful.

Go into your WordPress dashboard and regularly deactivate and delete any plugins that aren’t necessary for your site or that you’re no longer using.


Empty your WordPress trash (automatically)

Automatically delete files in the “trash” to keep your site clean and optimized


Any time you delete a post, comment, spam, etc. it is sent to your “Trash” bin in WordPress.

Keeping this cleaned out regularly is a good habit, and you can automate this process so you don’t have to keep checking it.

To automatically delete your Trash, open up your wp-config.php file and place this code inside (be sure to be VERY careful when modifying this file):

define('EMPTY_TRASH_DAYS', 10 );

10 days is a good rule of thumb, just in case you accidentally deleted something you might not have meant to.


Update your WordPress plugins

New plugin updates and releases are usually better optimized


When a plugin developer releases an update to a plugin, it’s usually because issues have been fixed and performance has been enhanced.

Always ensure that your site is using the latest versions (which WordPress automatically notifies you of in your dashboard).

Testing Your Load Time & Speed

See how your changes affect the load time and speed on your site using these tools:

PageSpeed Insights

Google’s PageSpeed Insights

Analyzes your pages to ensure fast load times on all devices

Test your load time



Analyzes individual page load times

Test your load time



Actionable insights and recommendations for website and blog load time

Test your load time

Leave a Comment