Guru Site Health
A free, open-source WordPress audit plugin that scores a site out of 100, explains each problem in plain English and fixes thirteen of them with one click and an Undo.
- Project type
- Own product — published on WordPress.org
- Industry
- WordPress site owners and maintainers
- My role
- Designed, developed and published the plugin (sole contributor listed on the WordPress.org page).
- Technologies
- Verify it
Screenshots
- 32checks, scored out of 100
- 6weighted areas
- 13one-click fixes, each with Undo
- 0external requests or accounts
Project overview
Guru Site Health is a WordPress plugin built and published by BuildWithGuru. It scans a site across 32 checks in six areas (updates, security and configuration, accessibility, database, SEO and media), combines them into one health score out of 100, and lists every problem worst-first in plain English.
It is a product we make and maintain ourselves, not a client commission, so this page describes our own design decisions rather than a client brief.
Context
Most WordPress sites are launched and then quietly drift. Debug output is left on, a “discourage search engines” box stays ticked, revisions pile up in the database and plugin updates wait unapplied. None of these throw an error, so nobody looks for them. Guru Site Health is designed around that gap: find the quiet problems, rank them by how much they matter, and explain them in plain language.
Design goals
These are the goals the plugin’s own documentation states, and they shape its screens and behaviour:
- Rank problems, don’t just list them. Updates, security and accessibility are weighted more heavily than media housekeeping, because they matter more.
- Never penalise what cannot be measured. A check with no data source on the site is reported as “not measured” and left out of the average.
- Fix safely or not at all. A fix has to be reversible, show what it will change and record what it changed.
- Keep the site’s data on the site. No account, no API key and no external requests.
My role and contribution
I designed, developed and published the plugin, from the scoring model and check library to the dashboard, the fix and undo system, and the WordPress.org release. WordPress.org lists a single contributor for the plugin.
Design and development approach
A weighted score you can trust. Each of the six areas carries a weight, so an unpatched plugin counts for more than an unattached image. Severity also depends on environment: debug mode is serious on a live site and normal on a developer’s laptop, so the plugin reads the environment type and scores accordingly instead of nagging every local install.
Reversible fixes. Each one-click fix records the previous value, and a “Changes made” card lists everything the plugin has altered with an Undo beside each entry. The one exception, clearing expired transients, says it cannot be undone before the button is pressed, because there is nothing to restore.
A deliberately narrow blast radius. The plugin never edits wp-config.php, .htaccess or theme files, and never deletes content such as revisions, post meta or media. A plugin that writes to wp-config.php can white-screen the site it was installed to protect, so that door stays closed.
An assistant with no outside connection. “Ask Guru” answers in plain language, explains findings and applies fixes on request. It is rule-based rather than a language model: every sentence it can say ships inside the plugin, so there is nowhere for a site’s details to go.
Implemented functionality
- 32 checks across six weighted areas with a single 0–100 score.
- Findings ranked worst-first, each explained in plain English.
- Thirteen findings with a one-click fix, including unblocking search engines, changing the default role for new users, switching on a missing XML sitemap, plain permalinks, XML-RPC, version disclosure, the file editor, clearing expired transients, and automatic updates for WordPress core, plugins and themes.
- “Fix all” that shows the full list first and then applies fixes one at a time.
- A “Changes made” card with per-change and “Undo everything” controls.
- Score history across scans and scheduled monitoring.
- Environment-aware severity and “not measured” handling.
- An in-dashboard assistant, Ask Guru.
Technology stack
PHP 8.1 or newer and WordPress 6.4 or newer, built on the WordPress plugin API and released under GPL-2.0-or-later. These requirements are as listed on the plugin’s WordPress.org page.
Verified SEO and performance work
The plugin includes SEO checks, such as search-engine visibility, robots.txt, permalink structure and XML sitemap, and performance-related checks such as autoloaded options and post revisions. We have not published performance benchmarks for the plugin itself, so none are claimed here.
Measured outcomes
None are published on this page. Current installation numbers and any reviews are shown on the plugin’s WordPress.org listing, which is the source to trust.
Challenges and solutions
Making a score honest. A single number is easy to inflate or distort. Excluding unmeasurable checks from the average, instead of scoring them zero, means installing or removing an unrelated plugin can never change the result.
Making fixes safe. Automatic fixes are exactly what makes site owners nervous. Recording the previous value for every change, surfacing every change in one list and limiting fixes to settings the plugin can restore exactly made the trade-off acceptable.
Staying private. Site audits can expose sensitive details. Keeping all analysis local, and building the assistant without an external model, removed the question of where that data goes.
What this means for your project
The same approach applies to client WordPress work: measure first, change only what the data points to, make changes reversible, and keep your data in your hands.
Related service
This project supports our WordPress development work.
Read the thinking behind it
More work
Want work like this for your business?
Tell us what you need and we will recommend a practical starting point. We will explain exactly what is and is not included.