Skip to main content
Why Is My WordPress Site So Slow? Causes and Fixes

Why Is My WordPress Site So Slow? Causes and Fixes

A WordPress site can be slow because of server-side work, uncached pages, oversized images, heavy CSS and JavaScript, or slow database queries. Test the affected page first, change one thing at a time, and retest after each change to see which fix actually helps.

Testing and Tuning a Slow WordPress Page

  • How do I start diagnosing a slow WordPress page? Test the affected page in PageSpeed Insights and record the starting result. Then make one controlled change and repeat the same test.
  • Will a caching plugin fix every slow site? No. Page caching serves generated HTML for eligible requests, but it does not address every cause. Autoptimize notes that further gains may still need page caching and web-server configuration.
  • Should I enable every optimization option? No. W3 Total Cache recommends testing object caching with and without database caching, and Autoptimize recommends configuring, testing and retesting. Confirm each setting gives a measurable benefit without breaking the page.
  • How can I find a slow database query? Use Query Monitor to identify slow queries and trace them to a plugin, theme or WordPress core. Then use MySQL EXPLAIN to see how a query runs, including whether it uses an index or scans a table.

A slow WordPress page can involve server-side work, front-end assets, images or database queries. Diagnose the page before changing several settings at once: test it, make one controlled change, and repeat the same test.

Start with a repeatable test

Enter the affected page in PageSpeed Insights. The tool analyzes a URL and is intended to help make pages faster across devices. Test each important page type separately because a home page, article and checkout can use different assets and code.

Record the initial result and retest after each change. This does not prove that every variation came from your change, but it makes comparisons more useful than changing several components simultaneously.

Check page caching

WP Super Cache explains that it generates static HTML files from a dynamic WordPress site. The web server can serve those files instead of processing the comparatively heavier WordPress PHP scripts for each eligible request.

Its documentation says static files are generally served to visitors who are not logged in, have not commented and have not viewed a password-protected post. Its recommended settings also include not caching pages for known users. That distinction matters when testing logged-in or personalized areas.

Caching can involve more than finished pages. W3 Total Cache lists Redis and Memcached among its supported caching methods. Its installation guidance warns that disk-based database or object caching may be too slow on shared hosting and recommends testing object caching both with and without database caching to confirm an improvement.

Do not assume that more caching layers are automatically better. If your host already supplies caching, check its documentation before enabling another page-cache system. Test public pages and any important logged-in or transactional flows after changing the configuration. For more context, see the guides to WordPress caching and WordPress server setup.

Optimize oversized images

Resize images for their intended display rather than uploading a large original without checking how it will be used. Then choose an optimization method whose limits fit the media library.

Smush documents lossless and lossy compression, bulk optimization and lazy loading. Its plugin page marks WebP and AVIF delivery as a Pro feature. The FAQ says the free version skips images larger than 5 MB and that original images are not deleted.

ShortPixel documents lossy and lossless compression, bulk optimization, WebP and AVIF conversion, and local backups that can be restored. Its listed allowance is 100 free credits per month, with paid options available beyond that.

Whichever tool you choose, test a representative selection first and confirm that the displayed images still look acceptable before processing the full library.

Review CSS and JavaScript optimization carefully

Autoptimize can minify assets, defer scripts and optionally aggregate CSS and JavaScript. Its documentation says it is not a complete fix for PageSpeed problems and that further improvements may require page caching and web-server configuration.

The same documentation advises that inlining all CSS is probably not appropriate in most cases because it makes each HTML page larger and prevents the CSS from being cached separately. It also says new installations no longer aggregate CSS and JavaScript by default in response to HTTP/2, and recommends a cycle of configuration, testing and retesting.

After changing asset handling, check the actual page rather than relying only on a score. Verify navigation, forms and other interactive elements because optimization settings can change when and how their code loads.

Profile slow database queries

If database work appears to be the problem, the CSS-Tricks guide to slow WordPress queries describes using Query Monitor to identify slow queries and trace them to a plugin, theme or WordPress core. It also explains that MySQL’s EXPLAIN can show how a query is executed, including whether it uses an index or scans a table.

The guide presents three possible responses: rewrite the query, add an index, or cache its result with WordPress transients. These approaches have different risks and should not be applied blindly.

In the guide’s site-specific example, repeated runs of one query took about 1.71–1.85 seconds. A rewritten version took about 0.26–0.38 seconds, while adding an index brought the original query down to roughly 0.002–0.004 seconds. The author explicitly describes the comparison as unscientific, so these figures are an example rather than a prediction for another site.

The article also warns that SAVEQUERIES affects performance and probably should not be used on a production server. It notes that indexes can accelerate reads while making writes slower because indexes must be recalculated for inserts and updates. Back up the database and use an appropriate test environment before modifying queries or indexes.

A practical order of work

  1. Test the affected page in PageSpeed Insights and save the starting result.
  2. Check whether an existing page cache is working for eligible visitors.
  3. Review large images and test compression on a small selection.
  4. Adjust CSS or JavaScript optimization one setting at a time.
  5. Profile database queries if server-side processing remains a concern.
  6. Retest the same page after every change and verify its important functions manually.

When to get help

Consider involving a developer when diagnosis requires tracing PHP or SQL, changing database indexes, or configuring caching for personalized pages. A technical SEO audit can place performance work in a broader site review. If you want help examining your own configuration, you can tell us about your site.

FAQ

Will a caching plugin fix every slow WordPress site?

No single tool is demonstrated by these sources to fix every cause. WP Super Cache addresses eligible page requests by serving generated HTML, while Autoptimize says further gains may still require page caching and server configuration.

Should I enable every optimization option?

No. W3 Total Cache recommends comparative testing for object and database caching, while Autoptimize recommends configuring, testing and retesting. Confirm that each setting produces a measurable benefit without breaking the page.

How can I find a slow database query?

The cited database guide uses Query Monitor to identify slow queries and their source, then uses MySQL EXPLAIN to investigate how a query runs.