

Overview: the Site Weight grade and a ranked action plan — step 1 expanded with exactly what to do, the next fixes tagged by effort (quick win, some work, needs a host or developer).
Your site is slow and PageSpeed only tells you to “reduce server response time”.
That number is decided inside WordPress — by autoloaded options loaded on every request,
a database full of leftovers, a page cache that is installed but not actually serving
pages, a plugin quietly running hundreds of queries. Speed tests can’t see any of it.
SpeeSeek looks at your site from the inside and tells you, in plain language, what
is slowing it down, why it matters, and exactly how to fix it — then puts the fixes in
order, so you know what to do first.
SpeeSeek is advise-only. It is not an optimizer and it never changes your data
or your settings. It diagnoses; you decide. There is zero front-end footprint —
nothing is added to your site’s public pages, nothing is added to autoload, and scans
run on demand from the admin only.
On demand, SpeeSeek measures (rather than estimates) real server render time, database
time per plugin, query count, peak memory, front-end asset weight, and outbound HTTP
during a single request to any page on your site — or to a logged-in wp-admin screen such
as the Dashboard or the Posts list (“why is my admin slow?”). Nothing is installed and no
file is written: SpeeSeek measures from inside itself during that one request, then
forgets it. After a few pages it points out the templates that do the most work.
On WordPress 6.9+, SpeeSeek registers read-only abilities through WordPress’ built-in
Abilities API. Connect an AI assistant to your site (via the MCP Adapter plugin or the
WordPress AI Client) and it can ask SpeeSeek for your latest Site Weight report, list the
findings, see what changed since the last scan, and trigger a fresh scan — so you can ask
“why is my site slow?” in plain language and get an answer grounded in real diagnostics.
It’s administrator-gated and read-only, and your assistant connects to your site, so
nothing new leaves it and there is no API key to set up.
Ships ready in English, German (de_DE), and Persian (fa_IR), with full RTL support for
Persian. The German and Persian translations are AI-drafted and welcome a native-speaker
review pass.
SpeeSeek connects to external services in two clearly-scoped cases. No personal data and
no content from your site is ever transmitted.
WordPress.org API (api.wordpress.org) — The “External HTTP” scanner performs a
single test request to https://api.wordpress.org/core/stable-check/1.0/ to measure
your server’s real outbound latency to a known-good endpoint. Only a standard HTTP GET
is made; no data about your site is sent. This request only happens while you run a
scan in the admin, and it respects the WP_HTTP_BLOCK_EXTERNAL constant.
WordPress.org terms: https://wordpress.org/about/privacy/ .
SpeeSeek Benchmark service (opt-in, OFF by default) — If — and only if — you
explicitly enable “Compare against other sites” in SpeeSeek’s settings, the plugin
sends a small set of anonymous numeric “weight” metrics (for example: total
autoloaded bytes, query count, database overhead size) to the SpeeSeek Benchmark API
so it can show you where your site sits relative to aggregate percentile bands of
other sites. No URLs, no site identity, no personal data, and no content are sent —
only whitelisted numbers. This happens at most once per day, and never while the
setting is disabled.
Endpoint: https://benchmark-backend-cf.leoworking96.workers.dev (hosted on
Cloudflare Workers). Service privacy & terms:
https://benchmark-backend-cf.leoworking96.workers.dev/privacy .
Cloudflare’s terms: https://www.cloudflare.com/website-terms/ .
SpeeSeek ships its full, human-readable source. The admin dashboard is written in
React/JSX and lives in the src/ directory, bundled inside the plugin alongside
the compiled assets in build/. The PHP in includes/ has no build step.
The compiled build/ assets are generated with the official WordPress build
tooling (@wordpress/scripts, which wraps webpack/Babel). To regenerate them
from source:
npm install
npm run build:assets
That compiles src/ into build/. No other build step is required.