Docs › Keeping a site healthy
Eighteen checks, one click, worst findings first. Every result comes with a plain-language explanation and, where one exists, a direct link to the tool that fixes it — this is a diagnosis, not just a list of numbers.
In one lineRun it, read the failures at the top, fix what has a direct link first. The slow Core Web Vitals check runs separately so the rest of the audit stays fast.
All eighteen checks
| # | Check | Catches |
|---|---|---|
| 1 | Search-engine visibility | The site set to discourage search engines — the single most common silent killer. |
| 2 | XML sitemap reachable | Google cannot discover your pages. |
| 3 | robots.txt sane | A site-wide Disallow blocking crawlers. |
| 4 | Homepage response speed | Server-measured load time. |
| 5 | Dead links | Pulled from Link Doctor’s last saved scan. |
| 6 | Duplicate posts | Pages competing with each other for the same ranking. |
| 7 | Orphan posts | Nothing internal links to them. |
| 8 | Missing meta description | Reads across Yoast, Rank Math and AIOSEO. |
| 9 | Thin content | Under 300 words. |
| 10 | Images missing alt text | Lost image-search traffic and an accessibility gap. |
| 11 | Noindex tags | Published pages accidentally hidden from Google. |
| 12 | 4xx/5xx server errors | A bounded live sample, homepage included. |
| 13 | Title tag length | Outside roughly 50–60 characters. |
| 14 | Meta description length | Outside 150–160 characters, for pages that have one. |
| 15 | H1 hierarchy | A second H1 inside the body, duplicating the theme’s own title H1. |
| 16 | Click depth | Pages more than 3 clicks from the homepage. |
| 17 | Schema markup | Whether any JSON-LD structured data is detected at all. |
| 18 | Core Web Vitals + mobile usability | Google PageSpeed Insights — the slow one, see below. |
Worst first, always
Results are always sorted fail, then warn, then ok, regardless of the order the checks ran in. The top of the report is always where your attention is most needed — you never have to hunt through eighteen rows to find the two that matter today.
The H1 check assumes a specific theme behaviour
Check 15 only makes sense once you know the theme owns the H1. Your theme already renders the post title as the page’s H1, so the article body should contain zero H1 tags — any H1 inside the content creates a duplicate and breaks the heading hierarchy. The AI content writer already avoids this in new posts; the check exists for older content, imported content, or anything pasted in by hand with a stray <h1>.
Click depth is estimated, not exhaustive
Check 16 estimates click depth from your internal link graph across the newest 150 posts — a bounded sample, not a full-site crawl, so the audit finishes in one request instead of timing out on a large site. Treat a “0 deep pages” result as a good sign for your recent content specifically, not a full-site guarantee.
Why Core Web Vitals runs separately
Check 18 calls Google PageSpeed Insights, which can take 20–40 seconds to respond. Bundling that into the main audit would make every run slow, so by default it runs as a separate, deferred request after the other seventeen checks have already returned — you see a cached result immediately if one exists, and the fresh one fills in once Google answers.
Where checks 5, 6 and 7 get their data
Three checks reuse data your other tools have already collected rather than re-scanning from scratch: dead links come from Link Doctor’s last saved report, duplicates from the duplicate finder, and orphans from a bounded scan of your internal link graph. Running those tools first, then the audit, gives the most current picture.
Common questions
Why does the dead-links check show zero when I know a link is broken?
This check reads Link Doctor’s last saved scan rather than scanning live. Run Link Doctor first, then re-run the audit, and it will reflect the current result.
Why is the Core Web Vitals check slow or showing “measuring”?
It is waiting on Google PageSpeed Insights, which can genuinely take up to a minute. The rest of the audit does not wait for it — the other 17 checks return immediately.
Does the click-depth check cover my whole site?
It samples the newest 150 posts to keep the audit fast, so treat it as a read on your recent content rather than a complete site-wide crawl.
My theme adds its own H1 differently — is check 15 wrong for me?
The check assumes the theme renders the title as the sole H1, which is standard WordPress behaviour. If your theme does something unusual, verify with your browser’s inspector before treating a flagged post as an error.
Next
- Link Doctor — feeds check 5.
- Duplicate finder — feeds check 6.
- Why product boxes wreck Core Web Vitals — the fix for check 18.