SpeeSeek – Find What Slows Your WordPress Site

Description

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.

  • A ranked action plan. Up to five steps, ordered by how much each fix helps for the
    effort it takes. A two-minute cleanup comes before a hosting migration.
  • “I fixed it — re-check.” Re-run just the check behind a finding and see it turn
    green, without a full scan.
  • It measures, not guesses. Page caching is tested with a real request to your home
    page, so you learn whether your cache actually works — not just whether one is
    installed. The deep profiler times a real page load, front end or wp-admin.
  • Every finding is What Why it hurts How to fix, with a copy-paste-ready
    snippet, and “Copy as task” to hand it to your developer.

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.

Why it’s different

  • Reads what external tools can’t: autoloaded options bloat, cron backlog, database
    overhead, object cache / OPcache / page-cache behaviour, page-builder weight.
  • Its own transparent Site Weight grade across four categories — Server Response,
    Database Weight, Request Load, and Maintenance Health — instead of a single opaque
    Google score.
  • Built for site owners, not just developers. Query Monitor is a superb tool for
    developers debugging one request; SpeeSeek is the plain-language report for the person
    who owns the site — and it works well alongside Query Monitor.
  • Safe on big sites: heavy database checks are time-limited and skip themselves on huge
    tables instead of locking anything up, and a check that fails is shown as “not
    measured” rather than taking the whole scan down.
  • Lightweight by design: read-only, on-demand, and it refuses to be the bloat it detects.

It remembers, so it’s a keeper — not a one-time scan

  • History & regression alerts — every completed scan is snapshotted, so SpeeSeek
    can tell you what changed since last time and which plugin or update caused it.
  • Per-plugin cost attribution — the “who’s the culprit” finder attributes autoloaded
    weight back to the plugins that created it.
  • Consequence translator — not “1.2 MB of autoload” but “~16 ms added to every page
    load,” with the math shown under an Advanced toggle. Never fake precision.
  • A “✓ what we verified is healthy” panel, so you can trust the verdict.

Scanners included

  • Environment (PHP version / EOL, memory limit)
  • Autoloaded Options — size + top offenders loaded on every request (signature finding)
  • Cost by Plugin, Plugin Footprint
  • Database Weight (expired transients, orphaned metadata, table overhead)
  • Post Revisions (page-builder aware), Media Library, Comment Hygiene
  • Scheduled Tasks (overdue / duplicate cron, cron-on-page-load)
  • Caching (persistent object cache, OPcache, page cache)
  • WooCommerce (Action Scheduler backlog, stale sessions — when active)
  • Page builders: generic builder weight plus a dedicated Elementor scanner
  • Jet / Crocoblock (custom-table weight, SmartFilters indexer, widget packs)

Optional deep profiler

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.

Works with AI assistants

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.

Translations

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.

External services

SpeeSeek connects to external services in two clearly-scoped cases. No personal data and
no content from your site is ever transmitted.

  1. 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/ .

  2. 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/ .

Source code and build

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.

Screenshots

Installation

  1. In your WordPress admin, go to Plugins Add New Upload Plugin and upload the SpeeSeek zip, or install it directly from the Plugin Directory.
  2. Activate the plugin through the Plugins screen.
  3. Open SpeeSeek in the admin menu and click Run your first scan.

No configuration is required. Scheduled scans, an email digest, report export (HTML/CSV), and the optional benchmark comparison can be enabled from SpeeSeek’s Settings tab.

FAQ

Does SpeeSeek change my site or my settings?

No. SpeeSeek is strictly advise-only and read-only. It reports issues and gives you the
snippet to fix them yourself — it never edits your data, options, or files.

Will it slow down my site?

No. SpeeSeek adds nothing to your public front end and nothing to autoload. Scans run on
demand in the admin. It is built to never become the bloat it detects.

Does it send my data anywhere?

Only if you opt in to the benchmark comparison, and even then only anonymous numbers
(never URLs, content, or personal data). See the “External services” section above.

How is this different from PageSpeed / Lighthouse?

Those measure your site from the outside (the browser). SpeeSeek measures from the
inside — autoload bloat, cron, database overhead, cache config, plugin cost — which is
exactly where most server-side slowness actually comes from.

My wp-admin is slow. Can SpeeSeek tell me why?

Yes. Open the Deep profile tab and profile the Dashboard, the Posts list, or the Plugins
page. SpeeSeek measures one real, logged-in load of that screen and shows the database
time per plugin and the slowest queries behind it. Autoloaded options (below) slow the
admin just as much as the front end, and the scan checks those too.

What is “autoload” and why does it matter?

WordPress loads every “autoloaded” option from the database on every single request —
front end, admin, AJAX, cron. Plugins often leave large settings, caches, or logs there,
even after they are deleted. SpeeSeek measures the total, estimates what it costs per page
load, names the plugins behind the biggest entries, and shows how to fix each one safely.

How is this different from Query Monitor?

Query Monitor is an excellent developer tool: it shows everything about the request you
are viewing right now. SpeeSeek is a site-wide report for site owners: it checks things a
single request never reveals (autoload growth, database leftovers, cron backlog, whether
your page cache really serves pages), explains them in plain language, ranks the fixes,
and tracks your score over time. Many people use both.

My cache plugin is installed. Why does SpeeSeek say pages aren’t cached?

SpeeSeek requests your home page twice, as a logged-out visitor, and looks at what comes
back. If no cache answered, the plugin is installed but not serving that page — commonly
because caching is switched off in its settings, the home page is excluded, or something
on the page (a cookie, a query string) makes it skip the cache. The finding lists the
evidence it saw.

Does it support page builders like Elementor or Jet/Crocoblock?

Yes. There are dedicated scanners for Elementor settings and for Jet/Crocoblock custom
tables, SmartFilters, and widget packs, plus generic page-builder weight detection.

Reviews

Маусым 29, 2026 1 reply
Most speed tools just give you a useless score, but this one actually tells you what's breaking your server behind the scenes. It helped me clean up some massive autoloaded options and heavy JetEngine data that I didn't even know were there. The best part is that it’s read-only, so it won’t mess up your site settings. Totally worth trying.
Read all 1 review

Contributors & Developers

“SpeeSeek – Find What Slows Your WordPress Site” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.7.0

  • New: your action plan. The report now leads with up to five fixes in order — ranked by how much each one helps for the effort it takes, each marked “Quick win”, “Some work”, or “Needs your host or a developer”. The same plan heads the exported report and the email digest.
  • New: “I fixed it — re-check” on every finding re-runs just that check and confirms the fix, without a full scan.
  • New: “Copy as task” turns a finding into a ready-made checklist item for a ticket or a message to your developer.
  • New: the dashboard is organised into tabs — Overview, Findings, Deep profile, History & benchmark, Settings — and each tab has its own link.
  • Improved: page caching is now tested with a real logged-out request to your home page, so SpeeSeek tells you whether pages are actually served from cache, not just whether a cache plugin is installed. Cloudflare on its own is no longer mistaken for a page cache.
  • Improved: OPcache is no longer reported as missing on hosts that restrict its status API.
  • Improved: scans are far more robust. A check that fails is retried, and if it still fails it is shown as “not measured” while the rest of the scan completes. Skipped measurements never show up as fake improvements or regressions in your history.
  • Improved: heavy database checks are time-limited and skip themselves on very large tables, so scans stay fast and safe on big sites.
  • Improved: scan progress is stored per user, so two administrators can scan at the same time, and a persistent object cache can no longer lose a scan midway.
  • Improved: clearer deep-profiler errors when a page redirects, is blocked, or returns an error.
  • Fixed: multisite — tables are created for every site on network activation and for new sites, and cleaned up when a site is deleted or the plugin is uninstalled.
  • Fixed: scheduled-scan settings are no longer re-checked on every front-end page load.
  • Fixed: the CSV export escapes values that a spreadsheet could otherwise treat as formulas.
  • Fixed: the Site Weight trend showed a falling score in green; a drop is now red and a rise green.
  • Fixed: sizes of 1 MB and up show one decimal (“1.5 MB”), so a total no longer rounds up past the change shown beside it.
  • Fixed: uninstalling now also clears cached scan sessions on sites with a persistent object cache (Redis/Memcached).
  • Fixed: style changes now reach the browser right after an update instead of waiting for a stale cached stylesheet to expire.

1.6.0

  • New: profile a real wp-admin screen — “why is my dashboard slow?”, a question almost no tool answers. Measure a logged-in Dashboard, Posts list, or Plugins page and see per-plugin database time and the slowest queries behind it. Nothing is installed; your browser loads the screen once so the measurement uses your real admin session.
  • New: template hotspots — after profiling a few pages, SpeeSeek points out which templates do the most work (“your product page runs 4× the queries of your home page”), turning raw numbers into the next thing to look at.
  • Both are read-only and add no front-end footprint, like the rest of SpeeSeek.

1.5.0

  • New: works with AI assistants. SpeeSeek registers read-only “abilities” through WordPress’ built-in Abilities API (WordPress 6.9+), so an AI assistant connected to your site — via the MCP Adapter or the WordPress AI Client — can answer “why is my site slow?” using your real diagnostics.
  • Four abilities: get the latest Site Weight report, list the findings, see what changed since the last scan, and run a fresh scan. All gated to administrators, and — like the rest of SpeeSeek — read-only: they never change your content or settings.
  • Nothing leaves your site: your assistant connects to WordPress, so there is no new external service and no API key to configure. On WordPress below 6.9 the feature is simply absent; nothing else changes.

1.4.0

  • New: block theme (Full Site Editing) checks — measures the global styles inlined on every page and flags a pile-up of Site Editor template customizations stored in your database.
  • New: deeper WooCommerce — tells you whether High-Performance Order Storage is on (the single biggest order-storage speed win) and whether the product attribute lookup table is enabled for fast filtering.
  • New: detects the Bricks, Oxygen, and Breakdance builders and measures the layout data they store, just like the existing builders.
  • New: recognises GoDaddy Managed WordPress and Nexcess hosting so caching advice stays accurate on those hosts.

1.3.0

  • New: profile any page on your site, not just the home page — paste a full URL or a path like /shop/. Heavy sites are usually heavy on templates, not the front page.
  • New: a “Profiled pages” comparison table shows server render time, database time, and query count side by side, so you can see which template actually costs the most.
  • Each profiled page keeps its own most-recent measurement (up to ten), and only same-site URLs can be profiled.

1.2.0

  • New: SpeeSeek’s three most impactful findings now appear in Tools Site Health, alongside WordPress’s own checks, each linking into the full report.
  • New: a “Site Weight” dashboard widget shows your grade, a category breakdown, a score trend sparkline, and what changed since your last scan — without opening the plugin.
  • New: WP-CLI support — wp speeseek scan, wp speeseek report (table/json/csv), and wp speeseek profile for scripting audits across many sites.
  • All three reuse the existing scan engine and stored report, so they add no front-end footprint and never scan unless you ask.

1.1.0

  • New: after activating, SpeeSeek takes you straight to its dashboard with a clearer first-scan welcome.
  • New: after your very first scan, the report scrolls to the single most impactful finding so you know where to start.
  • New: a one-time, dismissible invitation to review the plugin — shown only after SpeeSeek showed you a measurable improvement.
  • German and Persian translations updated for the new screens.

1.0.0

  • First stable release in the WordPress.org Plugin Directory.

0.9.2

  • The profiler now resolves root-relative asset URLs through site_url() (the
    same way WordPress prints them) instead of concatenating onto ABSPATH, so
    measured asset weights are correct on subdirectory installs.

0.9.1

  • The printable report export now routes its stylesheet through the WordPress
    styles API (wp_add_inline_style) and its print button through
    wp_print_inline_script_tag() instead of raw <style>/onclick markup.

0.9.0

  • Reports now lead with a “Start here” recommendation that highlights your single
    highest-impact fix and groups related issues. When a deep profile has been run,
    a banner reconciles the resting score against the measured render time. Page-builder
    layout weight is now split into live page layout vs. duplicate copies stored in
    post revisions, so the number reflects what’s really there.

0.8.0

  • Internationalization: English, German (de_DE), and Persian (fa_IR, full RTL).

0.7.0

  • New Jet / Crocoblock scanner: custom-table weight, SmartFilters indexer status,
    widget-pack footprint, and listing-grid query cost. Added a Jet summary card.

0.6.0

  • Dedicated Elementor scanner (CSS print method, asset-loading experiments, saved
    templates, Font Awesome 4 shim). Profiler panel now shows measured asset weight and
    outbound calls. Benchmark client ships with a hosted endpoint (opt-in).

0.5.0

  • Fixed autoload measurement for WordPress 6.6+ autoload values. Measured loopback audit
    of front-end assets and outbound HTTP. Benchmark backend scaffolded.

0.4.0

  • Report export (HTML / CSV), scheduled scans with an email digest, new Assets / External
    HTTP / Page Builder scanners, and a live benchmark client.

0.3.0

  • Deep profiler (measured render/DB/query/memory), host awareness, “what you fixed” loop,
    and percentile benchmarking.

0.2.0

  • History snapshots, regression detection, per-plugin cost attribution, the consequence
    translator, breadth scanners, and a “what’s healthy” panel.

0.1.0

  • Initial release: Site Weight grade and the core diagnostic scanners.