

When to use it
- A specific URL is slow. Not the whole site, just one page.
- You’ve ruled out database connectivity (the Resource Usage IO column is fine) and want to know which PHP code is slow.
- A plugin update broke performance and you can’t tell which one without measurement.
Start a trace
Pick the domain
Click Choose domain and pick one of the domains on your account. X-Ray can only trace requests routed through the cPanel-managed PHP handler, so add-on and primary domains both work.
Specify the URL mask
The Specify mask field is the path you want to trace. Examples:
The How to use special characters? link in the dialog covers wildcards.
| Mask | Matches |
|---|---|
/ | The homepage only |
/checkout | Exactly /checkout |
/blog/* | Anything under /blog/ |
/wp-admin/admin-ajax.php | Exact admin-ajax handler |
* matches any path segment.Pick how long to trace
Record for has two modes:
| Mode | What it does | When to use |
|---|---|---|
| Request | Capture the next N requests to the mask, then stop. Default 20. | When you can hit the URL yourself or there’s predictable traffic. |
| Time interval | Capture every request to the mask for N hours, up to 48. | When the slow page is rare and you don’t know when it’ll fire. |
(Optional) Open Advanced settings
Tick the Advanced settings box for finer control. The most useful options:
- Slow request threshold: only record requests that took longer than the threshold. Default is the system slow-request limit.
- PHP version: trace only requests handled by a specific PHP version (useful when migrating).
Read the report
When the task finishes, click its row to open the report. The page shows three things:- Summary: average and slowest request times across the captured samples.
- Function call list: a table of every PHP function called during the slow request, with cumulative time spent in each. Sortable by time-spent-descending; the worst offender ends up at the top.
- Slow function flag: any function over a threshold gets a red dot. Click for the call stack that led to it.
| Function | Calls | Time |
|---|---|---|
mysqli_query | 412 | 4,820 ms |
wp_cache_get | 1,103 | 380 ms |
apply_filters | 5,221 | 220 ms |
What X-Ray can’t do
- No view into MySQL internals. It tells you
mysqli_queryis slow, but not whether it’s the network, the query plan, or the locks. For that you need slow-query logs (open a ticket if you need them turned on). - No view into JavaScript or browser rendering. X-Ray is a server-side PHP profiler. Front-end performance needs Chrome DevTools or a real-user-monitoring tool.
- No view into background jobs. Cron jobs, queue workers, and other non-HTTP PHP runs aren’t traceable through this UI.
Common gotchas
Task started but no data is being captured
Task started but no data is being captured
Either the URL mask doesn’t match any traffic, or the requests aren’t going through the PHP handler. Check by hitting the URL yourself in a browser; the task should pick it up within a few seconds. If the URL is served by a static cache (AccelerateWP page cache, Cloudflare cache, etc.) PHP is never invoked, so X-Ray sees nothing. Bypass the cache temporarily to trace.
The report says 'No slow requests detected'
The report says 'No slow requests detected'
Either the page actually isn’t slow under your test conditions (try a logged-in scenario, a cold cache, real DB load) or the slow-request threshold in Advanced settings is set too high. Lower the threshold to capture every request, then sort by time.
I want to keep tracing day after day automatically
I want to keep tracing day after day automatically
The Continuous tracing tab is available to administrators only on shared hosting. End-users can’t create continuous tasks. Workaround: set up a recurring tracing task (Time interval mode, 48 hours) and re-run it.
Conflict warning when starting a new task
Conflict warning when starting a new task
Either you already have a running task for that domain/URL, or an administrator-level continuous task is running. Wait for it to finish or check the Tracing tasks list and stop the existing one.



