WebsitesCategory

How to improve WordPress speed and performance: Tips to fix common issues

17 min read
Vladimir Bognar
graphical user interface, diagram, icon
Image credit: stock.adobe.com - bestforbest

WordPress is a great platform for building a website or blog. Its ease of use has made it one of the most popular content management systems (CMS) in the world. However, common issues like unoptimized images, too many plugins, and slow hosting can hurt your site’s speed and performance. Understanding these challenges and how to fix them will help you create a faster, more reliable WordPress site from the start.

Your business needs a website.

Optimizing WordPress for the best speed and performance is very important

Because modern users expect websites to load instantly, WordPress speed optimization may determine your online success. Research shows that a site that loads in 1 second has a conversion rate 5x higher than a site that loads in 10 seconds. Studies also show that 53% of mobile users will abandon a site that takes more than 3 seconds to load. This makes speed optimization a critical business priority that affects bounce rates, conversions, and revenue. 

So, why is performance an issue with WordPress to begin with? One reason performance can become an issue is that WordPress was initially designed for bloggers, not for enterprise users who needed more control over their site's performance and security settings. For this reason, WordPress doesn't have any built-in caching, so it has to generate every page from scratch each time someone visits your site. This can slow down your site if it isn’t properly optimized.

Fortunately, improving WordPress performance is more accessible than ever. Modern optimization tools and plugins can handle many best practices automatically, helping you boost speed without needing advanced technical expertise or complex manual setup.

Why could a WordPress website run slowly?

In addition to the infrastructure considerations above, your WordPress website may run slowly due to:

  • Unoptimized images
  • Outdated or excessive plugins
  • Outdated theme
  • The site is creating too many requests
  • Outdated PHP version
  • Not implementing caching and compression methods according to best practices
  • Unoptimized database
  • Inadequate hosting infrastructure (shared resources without guaranteed CPU/RAM allocation)
  • Server software not optimized for WordPress (Apache vs. Nginx vs. LiteSpeed)
  • Lack of proper CDN integration at the hosting level
  • Geographic latency from single-location hosting without a CDN

It is always recommended that you use the latest version of the WordPress core files to ensure maximum compatibility.

GoDaddy is one of the fastest WordPress managed hosting providers. 

Things to do before you start optimizing your website

You should test your website using online tools such as GT Metrix, Pingdom Tools, Page Speed Insights, and Lighthouse tools, which can be found in Chrome’s inspect tool. The Lighthouse tool can give you better insights into page speed and performance, as well as mobile optimization recommendations.

You can also use the built-in developer tools in browsers like Firefox and Chrome, which include performance measurement capabilities for real-time analysis of your site’s loading behavior.

There are a couple of important metrics in Google’s Core Web Vitals that are common to most performance-measuring tools. These are critical to the overall user experience and your website's speed. These metrics are:

  • Largest Contentful Paint (LCP): Measures how quickly the largest above-the-fold content element is rendered onto your page. You need to identify the largest text block or image (usually hero images) and optimize its load time.
  • Cumulative Layout Shift (CLS): Measures the visual stability of your website and helps you prevent unexpected layout shifts. Reducing CLS is essential because shifting pages can lead to a negative user experience.
  • First Contentful Paint (FCP): A time stamp when the browser loads the first bit of content from your website. This can be a text or an image, a non-white canvas, or SVG. This is the moment when your users first see content on your website.
  • Total Blocking Time (TBT): The time that passes while tasks longer than 50ms block the main thread, affecting page usability. During this time, the webpage is usually unresponsive before it becomes interactive.
  • Time to First Byte (TTFB): The time that passes between sending a request to the server and receiving the response, specifically receiving the first byte of information.

Google’s Core Web Vitals have been ranking factors since 2021, which means they directly impact your site’s visibility in search results. These metrics also tie closely to user experience and overall performance. Sites with poor Core Web Vitals scores often see higher bounce rates and lower conversion rates.

The recommendations from Google Page Speed Insights can guide you toward the ideal level of optimization for your website. Scoring 100 on these reports may not always be possible (your hosting environment, for example, can affect this); however, the goal is to get this number as high as possible given the content of your site. For more detailed information on how Google Page Speed Insights works, you can check this link to their official documentation.

WordPress speed and performance tactics we recommend

Every WordPress website is built differently and is a case of its own. The same optimization techniques might not work the same on any two given websites, but we will list some optimizations we consider to be good practices for most websites.

Always make sure to back up your website and database before making any optimizations!

1. Image optimization

Unoptimized images are the most common cause of poor WordPress speed and performance. On average, 67% of a web page’s total data comes from media like images and videos. In most situations, images can occupy 40–67% of your total page weight. This makes image optimization one of the most impactful performance improvements you can make.

Large, unoptimized images can lead to large page sizes and significantly increase page load time. Using images that are over 5000px wide and several MB in size can hinder your site’s speed.

Setting image dimensions

One important image optimization step that’s often overlooked is setting clear width and height attributes for every image. When these dimensions aren’t defined, the browser doesn’t know how much space to reserve during page load. This can cause layout shifts, which negatively impact your CLS score and create a poor user experience.

To avoid this, always include width and height attributes in your image tags. Most modern WordPress themes and page builders handle this automatically, but it’s still worth reviewing your site to make sure everything is set correctly. 

If you see an “Optimize images” warning in performance tools, it’s a good idea to check how much of your page size is coming from images.

Tools like Pingdom can help you analyze image weight and overall impact on load time.

Choosing the right image format

Choosing the right image format before optimizing can make a noticeable difference in your site’s performance.

  • GIF: Should be reserved for animations only, since they tend to have large file sizes and aren’t efficient for static images.
  • PNG: Works best for graphics like logos, icons, screenshots, and anything with limited colors or transparency.
  • JPG: Typically the better choice for photographs or images with lots of color variation, such as gradients or detailed visuals, though it doesn’t support transparency.

Modern formats like WebP and AVIF offer better compression across the board. They support both lossy and lossless compression, handle transparency like PNGs, and can significantly reduce file sizes. Just make sure your site includes proper fallbacks for browsers that may not support them.

Pre-optimize images before uploading

While image optimization plugins can help, it’s best to optimize your images before uploading them to WordPress. This reduces the load on your server and leads to better performance overall.

  1. Resize images to match how they’ll actually appear on your site. Uploading a 5000px image for a space that only displays at 1200px wide adds unnecessary weight.
  2. Compress your images using tools like Photopea, TinyPNG, Squoosh, or desktop software such as Adobe Photoshop or GIMP.
  3. Choose the right format based on the image file type.

You can also use dedicated WordPress plugins to handle compression and formatting. Options like Robin Image Optimizer or WebP Express can help reduce file sizes and improve performance. While some caching plugins include image optimization features, using a dedicated tool often gives you more control and better results.

These plugins have bulk optimization features that scan your uploads folder and automatically optimize/scale the images to improve performance.

The PageSpeed insights and Google’s Lighthouse may display the warning for “Serve images in next-gen formats,” which usually refers to the WebP format.

Use the WebP Express plugin for this task since it generates copies of all images on your hosting in WebP format and serves them to users. This should improve the “Serve images in next-gen formats” score for mobile devices.

Implement lazy loading for images

Another important feature that can improve image loading is the lazy load option. Instead of loading all images immediately when a page loads, lazy loading only loads images as users scroll down the page. For example, if you have a long blog post with 20 images, only the images visible on the initial screen load immediately. The remaining images load progressively as the user scrolls and approaches them. This:

  • Reduces page load time
  • Decreases bandwidth usage, especially on mobile or slower connections
  • Reduces the amount of data browsers need to download initially
  • Reduces upfront HTTP requests by delaying off-screen image downloads until needed
  • Improves Core Web Vitals scores (particularly LCP and FID)
  • Lowers server load by spreading image requests over time

To improve user experience during lazy loading, add visual placeholders such as colored backgrounds that match the image’s dominant color, loading animations, skeleton screens, or low-quality image placeholders (LQIP) that load instantly.

To implement lazy loading:

  • Enable it in your image optimization plugin (or caching/performance plugin if it includes this feature).
  • Test key templates (home page, blog posts, product/category pages) to confirm images load as expected.
  • If your plugin supports it, configure placeholders to reduce “blank space” while images load.
  • Ensure you’re not lazy-loading critical images that affect first impressions and above-the-fold rendering.

There are a few plugins that provide this functionality. WP Rocket’s Lazy Load plugin is fast, simple, and does the job perfectly.

However, in some cases, the images that are loaded above the fold (logo, hero, or featured images) should not be lazy-loaded because lazy loading will affect the FCP. 

For instance, when you lazy-load above-the-fold images, users see a blank space or placeholder while the image loads, even though their browser has already loaded the page. This creates a poor first impression and makes your site feel sluggish, regardless of what your synthetic performance scores say. These images should be excluded from being lazy-loaded and should load as fast as possible.

2. WordPress plugin maintenance

Having a large number of plugins can cause or contribute to poor WordPress speed or performance. Using only the necessary for your website is the best way to go.

The plugins should be updated regularly to prevent compatibility issues and enhance security.

Obsolete plugins can sometimes break your website or provide a backdoor for malicious content. Therefore, always make sure that the plugins on your site are regularly maintained and updated by their developers.

3. Theme maintenance

Your active theme handles your website’s good looks, but it can also cause some performance issues if not updated and optimized. Usually, outdated themes cause issues because they use deprecated code and generate more requests. Updating your theme to the latest version ensures your website is compatible with the latest technology.

When the theme stops receiving regular updates and isn’t actively maintained by its developers, the best course of action is to rebuild your site using a regularly updated theme.

The best practice is to remove unused themes and keep one default WordPress theme for potential troubleshooting. You should also check the number of scripts (requests) that the theme is using. If the theme is bloated, it would be wise to consider a more performance-oriented one.

4. Reducing the number of requests

When your WordPress website loads, it sends out multiple requests for various JavaScript and CSS files. These requests can be render-blocking and can increase your website’s load time.

Minification is the process of reducing the size of code and markup in your web pages and script files. It's one of the major methods used to reduce load times and capacity usage on websites.

Minification helps improve site speed and accessibility, directly translating into a better user experience.

The Autoptimize plugin offers JavaScript and CSS file minification and deferred load. It reduces the number of requests sent from the website upon initial loading. When you activate the plugin, you need to access the JS, CSS, and HTML options and their sub-options.

Enabling the suboptions should be done with caution, as some can break the website (alter its look and functionality). In some cases, you will need to use the “Exclude scripts from Autoptimize” option, where you can exclude a script from being minified.

On the Extra tab, you can resolve how Google Fonts are displayed (to have them as non-blocking resources), as well as prevent the loading of some WordPress core JavaScript files that are commonly unused.

You can use WP Rocket for this as well. However, this is a paid plugin, and it’s a stand-alone solution for website caching and static asset optimization.

If you encounter some JavaScript and CSS files that are loaded on pages that don’t require them, you can use the Asset Cleanup or the PerfMatters plugin to determine where the plugins and scripts are loading, and deactivate them if necessary.

5. Update the PHP version

Running your website on the latest version of PHP helps it respond swiftly and reduces page load time. The latest PHP versions are 8.0 and 8.1, so make sure your website is compatible with them.

The latest versions of the WordPress core are fully compatible with PHP 8.0 and 8.1, so your plugins and theme should follow. 

If, for some reason, your plugins/themes are not compatible with PHP 8, you should update them to their latest available versions. If no updates are available, notify the developers of the incompatibility, or switch to an alternative plugin or theme that is fully compatible with PHP 8+.

If any issues occur during the PHP version update, it is most likely due to a conflict with a plugin or theme.

6. Caching and compression

Caching is the process of storing and recalling frequently served data to speed up websites. Since WordPress generates every page from scratch every time someone visits your site, caching helps by serving the static resources to your users from the cache.

Modern caching plugins are designed to be simple to use and quick to set up. In most cases, you can get started in just a few minutes, and many tools begin applying performance improvements as soon as they’re activated.

The best options work well right out of the box with smart default settings. That means you can improve your site speed without digging into complex configurations or needing a technical background.

Most managed WordPress platforms have caching enabled by default; however, on cPanel or similar hosting platforms, it is recommended that you install a caching plugin. You can use WP Rocket, WP Super Cache, or W3 Total Cache for this purpose.

7. Database optimization

We often overlook database optimization as a factor in website speed, but the database can become bloated with post revisions, transient data, and spam comments.

The common tables that become bloated are wp_options, wp_posts, and wp_postmeta. Transients usually bloat the wp_options table, and post revisions usually increase the wp_postmeta table’s size.

You can prevent post revisions from piling up by adding one line of code to the wp-config.php file that limits the number of post revisions per post:

define( 'WP_POST_REVISIONS', 10 );

You can also use the WP-Optimize plugin to check your database's status. If you notice your database is too large, check the WP-optimize report and apply the recommended optimizations.

WP Sweep delves into the database issues in more detail. Instead of executing direct MySQL delete queries, this plugin uses the appropriate WordPress delete functions whenever possible.

8. CDN

Another way to improve your WordPress website's performance is to use a Content Delivery Network (CDN). Using a CDN can improve loading times for all website visitors, no matter where they are located.

Every time a user visits the website, they are served content from whichever server is closest to them. GoDaddy Managed Hosting for WordPress provides a built-in CDN that improves your website's performance.

9. Bonus Optimizations

Another commonly overlooked issue is the WooCommerce cart fragments build-up. It can increase the initial page load time by up to 1 second.

WooCommerce makes an AJAX request to check your cart and update your cart totals wherever your theme displays cart contents (like the header menu). This AJAX call is made to override caching plugins, which is good, but it increases load time.

We can resolve this by using the Disable Cart Fragments by Optimocha plugin, which allows you to keep using the caching plugin. You also still get to update the cart totals when the cart is not empty.

Note that if products are listed on the front page, the plugin can break the add-to-cart functionality.

You can run into “Leverage Browser Caching”, “Add Expires headers”, and “Configure E-tags” warnings in your GT Metrix report. Those issues can be resolved by adding a piece of code to the .htaccess file on your website.

However, these optimizations only work for resources served directly from your website. These directives won’t work for external resources like fonts.googleapis.com, downloads.mailchimp.com, www.youtube.com, and www.gstatic.com.

# START EXPIRES CACHE
ExpiresActive On
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/svg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/xhtml-xml "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresDefault "access 1 month"
# END EXPIRES CACHE
# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpeg|jpg|png|gif|swf|pdf|svg)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
</filesMatch>
</ifModule>
# END Cache-Control Headers
# BEGIN Turn ETags Off
FileETag None
# END Turn ETags Off

Closing thoughts on WordPress speed and performance

Optimizing your WordPress site can have a real impact on both SEO and user experience. The goal isn’t to get a perfect score in performance tools, but to create a site that feels fast and responsive for real users. 

The optimizations covered above can help improve both performance metrics and real-world results, leading to better engagement, lower bounce rates, and stronger search visibility.

As WordPress continues to evolve, it’s important to keep your site updated and check performance regularly. Small improvements over time can help maintain speed as your content and traffic grow.

Products Used