How to create a Joomla 6 module with YOOtheme Builder Emails going to spam: setting up SPF, DKIM and DMARC Joomla on LiteSpeed: CSS and JavaScript 403 errors with query strings Joomla 3 to Joomla 6 with T3 and Purity III: a migration case study Website hacked? What to do first and mistakes to avoid How to import Excel into WordPress with a custom plugin ChatGPT Ads: Paid Advertising Is Challenging Google Ads Ecommerce localization in Italy: catalogue, checkout and technical support Italian web developer for website support and local coordination Italian website localization: more than translating web content Taking over an existing Italian website without rebuilding it Website localization in Italy: a technical guide for international companies WordPress Dashboard Won't Load: 8 Causes and How to Fix Them WordPress Not Working: What to Check Before Panicking WordPress Site Stuck After Update: How to Recover It How to create a Joomla 6 module with YOOtheme Builder Emails going to spam: setting up SPF, DKIM and DMARC Joomla on LiteSpeed: CSS and JavaScript 403 errors with query strings Joomla 3 to Joomla 6 with T3 and Purity III: a migration case study Website hacked? What to do first and mistakes to avoid How to import Excel into WordPress with a custom plugin ChatGPT Ads: Paid Advertising Is Challenging Google Ads Ecommerce localization in Italy: catalogue, checkout and technical support Italian web developer for website support and local coordination Italian website localization: more than translating web content Taking over an existing Italian website without rebuilding it Website localization in Italy: a technical guide for international companies WordPress Dashboard Won't Load: 8 Causes and How to Fix Them WordPress Not Working: What to Check Before Panicking WordPress Site Stuck After Update: How to Recover It

Slow WordPress site: measure and locate the bottleneck

Author Graziano De Maio - Gdmtech
I wish you a good read and remember: if after reading this article you need help, don't hesitate to contact me.
Author: Graziano De Maio | Founder of Gdmtech
Table of contents

Fixing a slow WordPress website starts with locating the delay: waiting for the server, transferring resources, displaying the main content or responding to an interaction. A single score cannot identify the intervention required.

Before changing hosting or adding another caching plugin, choose representative pages and actions. A brochure-site homepage, internal search and an ecommerce cart can have different bottlenecks and should not be treated as equivalent requests.

Define the slowdown in observable terms

Record the page, device, connection, login state and action. Establish whether the delay affects the initial visit, every navigation, an administrative screen or a particular operation. Check whether it coincides with imports, backups or increased activity.

ObservationArea to measure
Long wait before the document arrivesNetwork, caching and server generation
Document arrives but main content appears lateImages, CSS, fonts and loading sequence
Visible page reacts slowly to clicksJavaScript work and interaction handling
Slow dashboard but fast public pagesDynamic requests and caching differences
Delay limited to particular operationsRelated queries, processing and external services

This selects the next measurement. It does not automatically attribute the first symptom to hosting or the third to a particular plugin.

Collect comparable measurements

Choose a consistent set of pages: the homepage, an internal content page and an important functional page. Repeat tests with comparable device, network, test location and cache state. Record the date, configuration and several runs, including variability rather than only the most favourable result.

Distinguish laboratory measurements from real-user data. Lab tests support controlled comparisons; field data reflects a range of devices and connections. Core Web Vitals address main-content loading, responsiveness and visual stability. They describe different parts of the experience, not interchangeable measures of server speed.

For a before-and-after comparison, preserve the baseline and change one area. If hosting, theme, images and caching all change together, an overall improvement cannot reliably be assigned to one intervention.

Investigate server work, queries and external calls

Time to First Byte, or TTFB, helps locate the initial wait but includes several factors. The technical explanation of TTFB separates network and response components: a high value does not measure PHP execution time alone.

Compare cached responses with requests that reach WordPress. Then use available hosting tools to examine resource use, database waits and external calls. A slow API request can delay a page whose images are already well optimised.

For example, if only a filtered search is slow, measure that request and its queries. The total number of installed plugins does not identify the bottleneck. Query Monitor can expose queries and HTTP calls in the request context, but its output should not be presented as a universal ranking of every plugin’s execution cost.

Follow the evidence to a specific operation. Removing a plugin may improve a measurement simply because its useful feature has disappeared; the replacement still needs to provide that feature efficiently.

Investigate images, CSS and JavaScript

If the document arrives quickly but main content is late, inspect the browser’s request sequence. Identify the resource needed to display it and determine when it is discovered, downloaded and used.

In a hypothetical case, an oversized opening image needs a different intervention from a script delaying that image’s appearance. The first calls for appropriate dimensions and compression; the second needs loading and rendering analysis. Indiscriminate lazy loading of initial content can be counterproductive.

If the page is visible but unresponsive, investigate long JavaScript tasks and features loaded where they are unnecessary. Apply targeted reductions and retest menus, forms and filters. Smaller files alone do not guarantee responsive interactions.

The useful question is what prevents the specific content or action from becoming available, rather than which optimisation checkbox remains unused.

Apply caching with correct boundaries

The WordPress optimisation documentation includes caching and resource distribution among available techniques. Before enabling them, define which responses can be shared and which depend on the user, session or recently changed content.

Carts, account areas and other dynamic features need rules compatible with their components. Verify invalidation and freshness: a fast page showing stale information is not a correct result.

Compare cold and populated caches separately rather than mixing them in a single before-and-after result. Avoid overlapping transformation systems without coordinated configuration. If optimisation breaks functionality, use the plugin and theme conflict investigation.

Prioritise the bottleneck that matters to users

Give priority to important pages and actions. An unusable internal search may matter more than a small score difference on the homepage.

For a query bottleneck, examine requested data and query structure. For an external dependency, inspect waiting and failure handling. For frontend resources, reduce what obstructs content or interaction. Evaluate hosting changes against evidence of environmental limits rather than assuming they will correct inefficient code.

This produces a scoped intervention with a measurable purpose, such as reducing a particular wait while preserving the relevant feature.

Verify speed and correctness together

Repeat the initial measurements and functional workflows. Include logged-in users, mobile devices and recently changed data. Preserve the configuration, test conditions and observed results; one favourable run is not a general performance promise.

If your WordPress site is slow and the right intervention is unclear, I can investigate its performance and prioritise the requests and functions shown to be problematic.

Author Graziano De Maio - Gdmtech
I wish you a good read and remember: if after reading this article you need help, don't hesitate to contact me.
Author: Graziano De Maio | Founder of Gdmtech