How Grok handles this
You added xSpeed Hub on grok.com as a custom connector, signed in once, and moved on. Weeks later a new landing page goes live and feels slow, so you open a chat and ask about it. xAI says Grok uses a connector's tools whenever a question relates to that service, so you do not pick the connector from a menu first. Naming xSpeed Hub in the message is still worth the extra words, because it tells Grok which tools to reach for when more than one connector could answer.
Grok reads get_cache_status for landing and finds page caching off, with nothing cached. get_health adds the reason the switch alone will not fix: the advanced-cache.php drop-in belongs to another caching plugin. Grok offers to turn page caching on anyway, you agree, and the site refuses. That refusal comes from the xSpeed plugin, which will not take over a drop-in another plugin owns when the request arrives through the Hub, and its message says so. It is a useful result, not an error to retry. The fix is yours: deactivate the other caching plugin in wp-admin, then ask Grok to try again and run the benchmark.
This is a chat, so Grok works from what the Hub returns. That is enough for most causes, because get_health covers the drop-in, the WP_CACHE constant, permalinks, conflicting plugins, the cache directory and cookies on anonymous pages. For a single URL that bypasses the cache, Grok can tell you what to look for, and you request the page yourself in a private window with a plain GET.
Set up Grok once
Already connected? Skip to the prompts. Alternatives and troubleshooting are on the Grok guide.
1Put your sites in xSpeed Hub
Sign in at app.xspeedcache.com with Google or email; the Hub is free and has no site cap. Then connect each WordPress site from its own dashboard: click Connect Hub in the xSpeed Cache top bar, then Connect via xSpeed Hub. Each site needs the free xSpeed Cache plugin.
2Add xSpeed Hub as a custom connector
Go to grok.com/connectors, click New Connector and select Custom. Enter this as the MCP server URL and complete the authentication: approve access on the xSpeed Hub page that opens. Grok then reads the Hub's tools and makes them available in your conversations.
https://app.xspeedcache.com/xspeed/mcp
3Ask a first question
Start a chat and ask something that names xSpeed Hub, so Grok reaches for the connector. A list of your sites with their cache status means the connection works.
Use xSpeed Hub to list my sites and tell me which ones have page caching turned off.
Full Grok setup, sign-in options and FAQ
Before you send a prompt that changes something
Reads change nothing on your sites, though contact_support emails xSpeed support. Writes run once your connection allows them, so your client's approval prompt and a read-only connection (the token's Read-only everywhere switch, or a Viewer sign-in) are the gates that matter. xAI's connector documentation describes no per-tool approval setting. It says Grok can use a connector's tools whenever your questions relate to that service. xSpeed Hub has no confirmation step of its own, so a purge or a settings change runs as soon as Grok calls it and your connection allows writes. The Hub tells the agent to confirm the target site and to ask once before a write that touches every site, but that is an instruction, not a lock. If you want Grok to read and never change anything, sign in as a Viewer member of the workspace, which only ever gets read access. Otherwise read what Grok says it is about to do before you answer yes.
What do I ask?
Three prompts written for Grok. More for this job are below.
Use xSpeed Hub to tell me why landing is not serving cached pages, and quote the failing health check.
With xSpeed Hub, turn page caching on for landing and tell me exactly what the site says if it refuses.
Using xSpeed Hub, which of my sites has the lowest hit ratio today, and does its health report explain why?
What happens, step by step
When a WordPress page is not served from cache, the cause is usually one of a few things: caching is off, the cache drop-in or the WP_CACHE constant is missing, another caching plugin is in the way, or the pages carry something that makes them uncacheable. Through xSpeed Hub an agent can read the cache status, run the site's full health diagnostics, time a cached request against an uncached one, and check which Pro features would help, all without changing anything.
01
Start with the quick summary
get_cache_status returns whether page caching is on, the stats (cached pages, size, hit ratio, last purge) and the web server xSpeed detected. It is a glance. If caching is off, or the hit ratio is far below what you expect, the agent moves on to the diagnostic.
02
Run the diagnostic
get_health is the tool for troubleshooting. It returns the environment checks with pass or warn tones (the advanced-cache.php drop-in, the WP_CACHE constant, rewrite rules, PHP and WordPress versions, caching plugin conflicts), the cache stats, 24 hourly hit and miss buckets and a 30-day hit-ratio series. The Hub tells the agent to use it, not get_cache_status, when you are troubleshooting rather than glancing.
03
Time cached against uncached
run_benchmark requests the home page once with the cache bypassed and once normally, after a warm-up request, and returns the timings. If the second request still is not a cache hit, the page cache is not serving the home page, and the result says so. It measures xSpeed's own response time. It does not return a Lighthouse score.
04
Read what the checks mean
A warn is a lead, not always a fault. A static-file rewrite warning, for example, can mean the nginx snippet is not in your server config yet, or that xSpeed could not verify it, which is not evidence the config is wrong. The agent reads the detail line and tells you which one it is.
05
Fix it or hand it over
If caching is simply off, toggle_cache turns it on. If another caching plugin owns the drop-in, the site refuses to enable xSpeed and says why; removing the other plugin is yours to do. If nothing explains it, contact_support emails xSpeed support with the agent's summary, after the agent has confirmed the message with you.
Reference
| Quick check | get_cache_status (read): cache on or off, stats, detected web server |
|---|---|
| Diagnostic | get_health (read): environment checks, 24 hourly buckets, 30-day hit-ratio series, recent activity |
| One site per call | get_health does not accept site: "all"; call it for each site you care about |
| Benchmark | run_benchmark (read): home page only, cache bypassed against cache served, timings in milliseconds |
| Benchmark on every site | run_benchmark accepts site: "all" or a list of handles, one result per site |
| Benchmark history | get_benchmark_history reads past runs and the settings changes on the same timeline |
| Pro suggestions | get_pro_audit (read): which Pro features would help this site, from its settings and stats |
| Hit ratio scope | Counts requests that reach your server; pages answered by a CDN or Cloudflare edge are not counted |
| Support | contact_support emails xSpeed support with your account email and site list attached; classed read |
| Turning caching on | toggle_cache (write); refused by the site when another plugin owns the cache drop-in |
Rules worth keeping
- Diagnose with the read tools first. get_cache_status, get_health, run_benchmark and get_pro_audit change nothing on the site, so a read-only connection can run all of them. For clients that send the connection token, that means Read-only everywhere on; an OAuth sign-in gets the scopes the client asks for, unless the member is a Viewer.
- Do not answer a PageSpeed question with run_benchmark. It measures cached against uncached response time and returns no Lighthouse score; for a score, use the speed test or scan jobs.
- toggle_cache is a write. It runs as soon as your connection allows writes, and the Hub tells the agent to confirm the target site first. That is guidance to the agent, so your client's approval prompt is the gate that matters.
- contact_support sends a real email. The Hub tells the agent to confirm the message with you before sending, but the tool is classed read, so even a read-only connection can send one.
- The agent cannot edit your server configuration or another plugin's settings. When a check needs an nginx snippet or a conflicting plugin removed, it tells you what to do and you do it.
Good to know with Grok
xAI's connector documentation describes no per-tool approval setting, so the question Grok asked before the toggle came from the model following the Hub's instruction to confirm the target site, not from a lock. On a connection that allows writes, toggle_cache runs as soon as Grok sends it, and contact_support sends an email whenever Grok decides to call it, because the Hub classes it as a read. If you want Grok to diagnose and never change anything, sign in as a Viewer member of the workspace, which only ever gets read access. That stops the toggle but not contact_support, so ask Grok to show you any support message before it sends one. On Grok Business and Enterprise, a team admin provisions the connector in the cloud console first.
More prompts for this job
They work in any client connected to xSpeed Hub.
Using xSpeed Hub, why is the cache hit ratio so low on shop? Run the full health check and tell me the most likely cause.
Using xSpeed Hub, is page caching actually working on blog? Benchmark cached against uncached and tell me if the second request was a hit.
xSpeed Hub's get_health on docs shows a warning about the static-file rewrite. What does it mean and do I need to act?
Use xSpeed Hub to check whether another caching plugin is conflicting with xSpeed on shop.
Caching looks off on the staging site. Use xSpeed Hub to turn it on and tell me if the site refuses.
Using xSpeed Hub, which Pro features would help the shop site, based on how it is set up now?
With xSpeed Hub, compare the last few benchmark runs on blog and tell me whether my settings changes helped.
Frequently asked questions
Keep going
Find out why pages are not cached with other agents
More with Grok
Documentation
- How to read your cache diagnostics
- Understanding cache hits and misses
- How to check your site health
- Common problems and troubleshooting
- How to enable Page Cache
- How to write prompts for xSpeed Hub
- Grok + xSpeed
- Every AI agent that works with xSpeed
From the blog