WP Manifestindependent plugin directory
manifest / developer / axle-runtime-doctor

Axle Runtime Doctor

Check the server WordPress runs on: OPcache, object cache, PHP version, limits and more, with fixes.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/aryanjasala/axle-runtime-doctor/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Axle Runtime Doctor

Try in WordPress Playground Latest release WordPress 6.6+ PHP 7.4+ License: GPL-2.0-or-later
PHPCS PHPStan Unit tests E2E tests Plugin Check

Find the server settings that slow WordPress down, from inside a real web request, with the fix and a support ticket for your host.

Running the checks, finding OPcache skipping wp-content and the blacklist that causes it, picking the host, and copying the support ticket


A site is slow and the host says everything is fine. Often the cause is runtime config nobody checks: OPcache skipping wp-content, a Redis drop-in that falls back to memory, a PHP branch with no security fixes, WP-Cron off with no real cron behind it. Site Health says "Opcode cache is enabled" and stops there. Axle Runtime Doctor checks what core does not, inside a real web request, and gives the fix for your host with a support ticket to paste.

[!NOTE] Free and open source under the GPL. No pro version, no upsells, no ads in wp-admin, no tracking. And it stays that way.

Part of Axle by AryanX, a family of plugins for running WordPress sites safely.

Features

  • OPcache coverage: asks OPcache about files every request loads, and flags core cached with wp-content skipped, with the reason (blacklist file, file_cache_only, restrict_api, .user.ini or the host). Plus memory, strings, file slots, restarts, hit rate and validate_timestamps
  • An object cache that lies: writes a key in one request and reads it in the next, so a drop-in running on memory because Redis is down shows up. Hit rate from sampled front-end requests
  • PHP: end of security support for your branch, the patch level against php.net (optional), memory_limit against real peak use, max_input_vars against your biggest menu, upload limits, display_errors
  • Database: the 20 biggest autoloaded options with owners and a Turn autoload off button, autoloaded transients, options of inactive plugins, slow queries on key pages grouped by shape, MyISAM, missing primary keys, MySQL and MariaDB end of life
  • Cron, loopback and files: DISABLE_WP_CRON with nothing running events, duplicate events, loopback through a CDN, PHP in uploads, file owner mismatches, disk space
  • A fix per host: detects WP Engine, Pressable, Kinsta, WordPress.com, VIP, Pantheon, GoDaddy, Flywheel, SiteGround, Cloudways, Hostinger, cPanel, Plesk, nginx and Apache with the evidence, lets you correct it, and gives the setting, where it lives and a ready-to-paste support ticket
  • Web values, not WP-CLI's: WP-CLI, cron and abilities run the checks through a token-authenticated loopback probe, and say so when it fails
  • History and alerts: a daily run keeps 30 snapshots, and a check that gets worse sends an email and shows a notice
  • Site Health tests and Info, WP-CLI, abilities for AI agents, multisite, and a filter or action for every default and event

Install

  1. Download axle-runtime-doctor.zip from the latest release.
  2. In WordPress, go to Plugins > Add New Plugin > Upload Plugin, choose the zip and activate it.

Or with WP-CLI:

wp plugin install https://github.com/aryanjasala/axle-runtime-doctor/releases/latest/download/axle-runtime-doctor.zip --activate

Needs WordPress 6.6+ and PHP 7.4+. To try it first, the Try in WordPress Playground badge opens a throwaway WordPress in your browser with the plugin and some demo content.

Quick look

Find out whether OPcache really caches your plugins and theme, from the web server's PHP, not WP-CLI's:

wp axle-runtime-doctor check --status=critical,recommended
# Ran in the web server (PHP 8.3.14) through the loopback probe. Host: Pressable.
# opcache_coverage  critical  OPcache is skipping wp-content

wp axle-runtime-doctor fix opcache_coverage   # the fix and a support ticket to paste
wp axle-runtime-doctor autoload off my_plugin_cache

Screenshots

The checks, with OPcache skipping wp-content and the blacklist that causes it
The checks, with OPcache skipping wp-content and the blacklist that causes it
How to fix it on Pressable, with the support ticket filled in
How to fix it on Pressable, with the support ticket filled in
History: the day OPcache stopped caching wp-content
History: the day OPcache stopped caching wp-content
Slow queries on the key pages, grouped by shape, with the component that sent them
Slow queries on the key pages, grouped by shape, with the component that sent them

Documentation

Doc What it covers
Reference How the checks run, every check, hooks, abilities, WP-CLI, data and privacy
Development Local setup, commands and tests
Contributing Pull requests, required checks and PR titles
Releasing How merged pull requests become releases
Security Reporting a vulnerability
readme.txt What WordPress.org shows, with the FAQ and changelog

Project structure

axle-runtime-doctor.php   plugin header and PSR-4 autoloader
data/
├── fixes.json            the fix and ticket per check and host
├── php-versions.json     PHP branch support dates
└── db-versions.json      MySQL and MariaDB end of life
src/
├── Plugin.php            creates the services
├── Settings.php          settings, thresholds, capability
├── Probe.php             the token-authenticated loopback probe
├── Runner.php            runs checks in the web server
├── Facts.php             reads the runtime, one value at a time
├── Hosts.php             host detection with evidence
├── Fixes.php             fixes and support tickets
├── History.php           snapshots and regressions
├── Alerts.php            regression email and notice
├── Sampler.php           1-in-50 front-end samples
├── Autoload.php          autoloaded options and turning autoload off
├── PhpReleases.php       optional php.net release check
├── Scheduler.php         the daily run
├── Rest.php              REST routes for the screen
├── Abilities.php         abilities for AI agents
├── Privacy.php           exporter, eraser, policy text
├── Checks/               one class per check, plus Context and Registry
├── Admin/                the screen and the regression notice
├── Health/               Site Health tests and Info
└── Cli/                  wp axle-runtime-doctor
assets/                   the screen's CSS and JS
tests/                    PHPUnit (Brain Monkey) and Playwright

More free plugins

Small plugins that each fill one gap in WordPress, all free with no pro version:

Plugin What it does
Page Template Usage See which template every page uses, and fix the pages on a missing template
Staging Guard Stops staging copies from emailing real people or getting indexed
Category & Tag Trash A trash for categories, tags and custom terms, with undo and full restore
Axle Read-Only Mode Read-only mode for WordPress during migrations and deploys
Restore Blocks from Revisions Restore a single block from an old revision, not the whole post
Activity Log with Undo An activity log where every change you can reverse has an Undo button
Agent Governance Hold risky AI agent calls for approval, preview what they change, and roll back a session
Block Doctor Scan the whole site for invalid and broken blocks and fix them in bulk, with undo
Block Theme Ops Find Site Editor changes that override your theme files, see the diff, reset them or send them to Git
Role Right-Sizer Recommends the smallest role each user needs, from what they actually do
Update Rehearsal Try plugin, theme, core and PHP updates on a disposable copy of your site in WordPress Playground first
User Session Manager See every device signed in, sign out one, and limit sessions per role

License

Copyright Aryan Jasala. Licensed under GPL-2.0-or-later.