xSpeed Cache is officially live! Get 50% OFF during Launch Week — Lifetime starts at just $79Lifetime from $79 — 50% OFF, Launch Week! See Plans →

See Plans →
Features
xSpeed Hub Pricing Docs Blog Scan
Appearance
Get Plugin

Tune WordPress cache settings with ChatGPT

Tuning cache settings with ChatGPT means asking it, in chat, to read the xSpeed settings of a WordPress site, explain what each option does, and write one change through xSpeed Hub after you confirm it.

list_sitesget_cache_statuslist_modulesget_settingsupdate_settingstoggle_cacherun_benchmark

Last updated: October 2026

Example session · ChatGPT

You: Posts with a YouTube embed load slowly on blog. What can I change through xSpeed Hub?

list_modules(site: blog) read-only
→ cache, minify, lazy and more; lazy is on

get_settings(site: blog, module: lazy) read-only
→ lazy_images on, lazy_iframes off, video_facade off

ChatGPT: Images are lazy-loaded but embeds are not, so the video player loads with the page. I would turn on Lazy-load embeds for blog. Apply that?

You: Yes, do it.

update_settings(site: blog, module: lazy, values: { lazy_iframes: true }) changes site
→ stored, lazy_iframes on

ChatGPT: Done. Open a post with a video while logged out to check it, since the cached copy may need a purge first.

01

How ChatGPT handles this

You are in a ChatGPT conversation with the xSpeed app added, and you have a site where embedded videos slow every post down. You write what you see: the blog loads slowly when a post has a YouTube embed. ChatGPT calls list_sites, then list_modules to find the lazy loading module, then get_settings so it can tell you which parts of lazy loading are on today, such as images, embeds and click-to-play videos, before it suggests anything.

What comes back is an explanation in ordinary language and one concrete proposal: turn on Lazy-load embeds for blog, leave images as they are. The Hub tells the agent to briefly confirm intent before update_settings, so ChatGPT states the change and waits for your yes. After that it calls update_settings and reports the stored result. If any key or value breaks the module's rules, the whole call is refused and nothing is stored, a Pro-only module is refused on a site without a licence, and credential fields are refused over the Hub.

What differs in ChatGPT is how it decides to ask. It confirms write actions by default and treats a tool with no read-only annotation as a write action. The Hub's tools declare no such annotation, so expect a confirmation on list_modules and get_settings as well as on update_settings. You can expand a call to read the JSON it will send, and you can have ChatGPT remember an approval for a tool for the rest of the conversation, after which that tool runs without a prompt. The Hub runs a write as soon as the connection allows it. ChatGPT signs in with OAuth and gets the scopes it asks for, and the Hub's Read-only everywhere switch applies only to the connection token, which ChatGPT cannot send. For read-only access, sign in as a Viewer member of the workspace, or keep ChatGPT's own confirmations on.

02

Set up ChatGPT once

Already connected? Skip to the prompts. Alternatives and troubleshooting are on the ChatGPT 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.

2Turn on developer mode

In ChatGPT on the web, open Settings, then Security and login, and turn on Developer mode. On a Business workspace only admins and owners can use it. On Enterprise and Edu an admin grants access first, and you then turn it on under Settings, Apps, Advanced settings.

Text
Settings  >  Security and login  >  Developer mode

3Create the app from the Hub URL

Open ChatGPT Plugins, select the plus button and create a developer-mode app. Name it xspeedhub, paste the MCP server URL and choose OAuth. Click Scan Tools, approve access on the xSpeed Hub page that opens, wait for the scan to list the tools, then click Create. Workspace admins can also start from Workspace settings, Apps, Create.

Text
https://app.xspeedcache.com/xspeed/mcp

4Select the app in a chat

The app appears under Drafts in your app settings with a Dev label. In a new chat, open the plus menu in the composer, choose Developer mode and select xspeedhub. In a workspace, only an admin or owner can publish the app for other members.

Text
+  >  Developer mode  >  xspeedhub
1 / 4

Full ChatGPT 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. ChatGPT asks you to confirm write actions by default. You can expand a tool call to read the JSON it will send, and you can choose to remember an approve or deny choice for a tool for the rest of that conversation. ChatGPT respects a tool's read-only annotation and treats a tool without one as a write action; xSpeed Hub's tool definitions do not declare that annotation today, so expect confirmations on reads as well. OpenAI says confirmation also depends on app permissions and context, and some especially risky actions can be blocked. xSpeed Hub has no confirmation step of its own, so once you tell ChatGPT to remember Approve for a tool, that tool runs without a prompt for the rest of the conversation, as soon as your connection allows writes.

03

What do I ask?

Three prompts written for ChatGPT. More for this job are below.

Prompt for ChatGPT
Using xSpeed Hub, look at the lazy loading settings on blog and explain, in plain words, what each one does for a post with a YouTube embed.
Prompt for ChatGPT
Use xSpeed Hub to turn on lazy loading for embeds on blog only, and tell me the setting before and after.
Prompt for ChatGPT
Ask xSpeed Hub which modules on shop have settings I have never changed. Do not change anything yet.
04

What happens, step by step

Every xSpeed feature is a module with its own settings. Through xSpeed Hub an agent can list the modules a site has, read one module's settings, change them with a checked update, and turn page caching on or off. The site validates every write against the module's own schema, so a wrong key or value is refused with a reason instead of being quietly ignored.

01

List the modules

list_modules returns every Free and Pro module available on one site, with its settings schema and status. It tells the agent which module slugs exist, such as minify or gzip, and what each setting accepts.

02

Read the current settings

get_settings takes a module slug and returns its settings. Credential fields come back masked, so an agent cannot read a stored API token or password back in plain text.

03

Change them

update_settings takes the module and a values object of setting keys. The site checks the whole object first. If any key is unknown, any value is outside the schema, or a field is pinned by a constant in wp-config.php, it refuses the write, writes nothing and says which keys and why, sometimes with a "did you mean" hint.

04

Turn page caching on or off

Page caching has its own tool, toggle_cache, because it installs or removes the cache drop-in and the WP_CACHE constant. Asking update_settings to set cache_enabled does not work and is refused. If another caching plugin owns the drop-in, the site declines to enable xSpeed and returns blocked: true with the reason.

05

Check the effect

The result of a settings write is the stored settings. A module can add a warning when a setting is saved but has no effect on this server, for example Brotli on a server without the module for it, and the agent should pass that on. run_benchmark then times cached against uncached to see whether the change helped.

06

Apply to many sites only after reading one

update_settings and toggle_cache accept site: "all" or a list of handles. Each site validates against its own schema and answers in its own row, so a module missing on one site fails that row and the others still apply. Read one site first, then apply.

05

Reference

Discoverlist_modules (read): Free and Pro modules, settings schema, status, per site
Read settingsget_settings (read): argument module; credential fields masked
Change settingsupdate_settings (write): arguments module and values; validated by the site
Bad inputThe whole write is refused and nothing is written; the error names the keys and reasons
Page cache on or offtoggle_cache (write): argument enabled; cache_enabled in update_settings is refused
Blocked by another plugintoggle_cache returns blocked: true with blocked_reason when another plugin owns the cache drop-in
Every site at onceupdate_settings and toggle_cache accept site: "all" or a list of handles, one result per site
Pro modulesA Pro module on a site without an active licence cannot be read or written; the site refuses
Credential fieldsRefused by default over MCP; set them in the xSpeed dashboard, not through the agent
Read-only connectionThe connection token with Read-only everywhere on, or a Viewer member's sign-in: update_settings and toggle_cache are refused; list_modules and get_settings still work. An OAuth sign-in gets the scopes the client asks for, read and write by default, clamped to the member's role
ConfirmationNone on the Hub; the Hub tells the agent to briefly confirm intent for these two, and your client's prompt is the gate
06

Rules worth keeping

  • Read before you write. Ask for list_modules and get_settings first, so the agent changes real keys with valid values instead of guessing.
  • update_settings and toggle_cache change how a live site behaves. They run as soon as your connection allows writes. The Hub tells the agent to briefly confirm intent first, which is guidance to the agent, so your client's approval prompt and a read-only connection (the connection token with Read-only everywhere on, or a Viewer sign-in) are the gates. The switch does not limit an OAuth sign-in.
  • For site: "all", the Hub tells the agent to confirm once with "this will touch all N sites", then make one call. The result is per site, and some sites failing is a partial result to report, not a blanket success or failure.
  • Do not ask an agent to set credentials such as a Cloudflare token or Redis password. The site refuses those writes by default, and they belong in the xSpeed dashboard.
  • If a settings result says a value is saved but inactive on this server, relay that. Do not tell the user the feature is enabled.

Good to know with ChatGPT

ChatGPT needs developer mode on the web to add the Hub as a custom MCP app, and the mobile app cannot use it. OpenAI's pages differ on plans: the developer-mode guide lists Pro, Plus, Business, Enterprise and Edu, while the help center calls full MCP with write actions a beta for Business, Enterprise and Edu and says Pro connects with read and fetch permissions. If update_settings and toggle_cache are missing, your plan is the likely reason. Ask ChatGPT for the exact change and apply it in the xSpeed dashboard.

07

More prompts for this job

They work in any client connected to xSpeed Hub.

Prompt
Use xSpeed Hub to list the modules on shop and tell me which ones are off.
Prompt
Ask xSpeed Hub for the current minify settings on blog.
Prompt
With xSpeed Hub, turn on HTML minification on blog, then benchmark the cache and tell me if it helped.
Prompt
Use xSpeed Hub to turn page caching off on staging while I debug, and tell me when it is off.
Prompt
Using xSpeed Hub, read the gzip settings on shop first, then enable the same options on every site.
Prompt
Use xSpeed Hub to set the page cache lifespan on docs to 30 days, and if the site refuses it, tell me why.
08

Frequently asked questions

OpenAI's help center says full MCP support with write actions is a beta for Business, Enterprise and Edu workspaces, and that Pro accounts connect with read and fetch permissions. On such a plan you get the Hub's read tools but not update_settings or toggle_cache. Ask ChatGPT for the exact change in words and apply it in the xSpeed dashboard.

It can, and the Hub tells it to briefly confirm intent before update_settings. ChatGPT also confirms write actions in its own interface, and because the Hub's tools carry no read-only annotation it will usually confirm reads too. If you tell it to remember an approval for update_settings, later calls in that conversation run without a prompt, so read what it is about to send before you do.

It calls list_modules for the site, which returns every available module with its settings schema and status, then get_settings for the one module it wants to change. The schema says which keys exist and what values each accepts.

The site refuses the whole update and writes nothing. The error names the keys it rejected and why, such as an unknown key, a value outside the allowed range, or a field fixed by a constant in wp-config.php, and it can suggest the nearest valid key.

Use toggle_cache with enabled set to true or false. It installs or removes the cache drop-in and the WP_CACHE constant. Setting cache_enabled through update_settings does not work. If another caching plugin already owns the drop-in, the site will not enable xSpeed and says why.

Yes. update_settings and toggle_cache accept site: "all", and the Hub runs the sites one after another with a one-second pause and returns a result per site. Each site checks the values against its own schema, so a site that lacks the module fails its own row while the others apply.

Not by default. Writing credential fields over MCP is off unless the site owner allows it, and the site refuses the write and names the fields. Set credentials in the xSpeed dashboard. Credential values also come back masked when an agent reads settings.

09

Keep going

Tune cache settings with other agents

More with ChatGPT

Documentation

From the blog

Tune cache settings, from ChatGPT.

xSpeed Hub is free and has no site cap. Connect your sites once and ask from the agent you already use.