On-Page SEO Checker
Fetches one live URL and runs 17 on-page SEO checks on its real HTML, scoring the page and pairing every failure with the exact fix.
Last updated 2026-08-06
Summary#
On-Page SEO Checker fetches a single URL, reads the HTML a search engine would read, and runs 17 checks on it — title, meta description, headings, images, links, structured data, social tags and indexability. It returns a score out of 100, every failure with a written fix, and it costs nothing.
Purpose#
A page can look perfect in a browser and still be invisible to search engines, because engines read the raw HTML and the raw HTML is where the quiet problems live: a title that gets truncated in the results page, a missing description that lets Google write its own, images with no alt text, no structured data at all. None of that shows on screen.
This tool exists to make those invisible signals visible for one page at a time, and to tell you what to change. It is the tool to open when you are about to publish, or when a page is not ranking and you want to rule out the basics.
Overview#
You give it a URL. Metric Vault fetches that URL directly, follows redirects, and parses the returned HTML. It extracts the title, meta description, meta keywords, viewport, robots meta, canonical, the <html lang> attribute, every H1, H2 and H3, every <img> tag, every link, every JSON-LD block and the Open Graph and Twitter Card tags. Those raw values feed 17 named checks, each of which resolves to pass, warning or critical.
The score starts at 100 and loses 12 points per critical and 4 points per warning. Everything on the report is computed from the HTML that was actually fetched — nothing is estimated, modelled or generated.
Benefits#
- Free on every plan, including Free. No credits, no gate.
- Reads the live page, not a cached copy or an index, so it reflects what you shipped a minute ago.
- Every failure comes with a fix written for that specific check.
- Named checks, not a vague grade — you can hand the list to a developer.
- Runs in seconds, so it fits into a publishing checklist.
Use Cases#
- Pre-publish check. You have written a new page and want to confirm the title, description, H1 and schema are all in place before it goes live.
- Diagnosing a page that will not rank. The content is good but the page underperforms; the checker rules out (or finds) a technical cause in seconds.
- Reviewing a template. Run it on one product page or one blog post to discover a template-level omission that affects hundreds of URLs.
- Auditing a competitor's page. See exactly how a top-ranking page has structured its titles, headings and structured data.
- Handing work to a developer. Export the check list to CSV and attach it to the ticket.
Requirements#
- A signed-in Metric Vault account.
- Any plan, including Free.
- A publicly reachable URL. Private, internal and loopback addresses are refused.
- No credits, no integration, no site ownership.
Permissions#
| Your situation | What you see |
|---|---|
| Signed out | Please sign in to run this tool. in the result area |
| Free plan | The tool runs normally — it is one of the zero-credit technical tools |
| Any paid plan | The tool runs normally |
| Over the hourly fair-use limit | Hourly fair-use limit reached (100 light-tool calls/hour)… |
No role restriction applies. See Roles and what each can do.
Cost#
0 credits. The button reads Audit Page · FREE, and the run never touches your monthly credit allowance. It does count toward the fair-use limit of 100 light-tool calls per hour shared across all the zero-credit tools. See How credits work and What you get on Free.
Because the tool costs nothing, there is no "You already ran this" prompt and no shared-result cache: every run fetches the page again. The run is recorded in your Report History as free.
Navigation Path#
Dashboard → Site Health → On-Page SEO Checker
Inputs#
| Field | Accepts | Required | Default | Validation | Notes |
|---|---|---|---|---|---|
URL field (placeholder e.g. https://nike.com/mens-running) | A full page URL, or a bare domain | Yes | Empty | Empty input returns Enter a value first. https:// is added if you omit it. Private and loopback hosts are refused | This is a single-page tool — give it the exact page you care about, not just the domain |
| See example | — | No | — | — | Renders a stored sample report at no cost |
Step-by-Step Guide#
- Open
Dashboard → Site Health → On-Page SEO Checker. - Optionally click See example to view a full sample report first.
- Paste the page URL into the field marked
e.g. https://nike.com/mens-running. - Click Audit Page · FREE, or press
Enterin the field. - Wait for
Analyzing… this can take a few seconds for live data.to clear. A single page usually takes a few seconds. - Read the score and the Health Verdict, then work down the Most Common Issues list.
- Use Export CSV in the result header to hand the full check list to a developer, Export PDF for a client, or Schedule Weekly to re-run it automatically.
Reading the Results#
Result header. Your page's hostname and favicon, the label On-Page SEO Audit, a Verified live HTML badge, and the number of checks run. Three buttons sit on the right: Export PDF, Export CSV and Schedule Weekly.
The four KPI tiles.
| Tile | Shows | What good looks like |
|---|---|---|
| SEO Score | 0-100, with the word Strong (80+), Needs work (60-79) or Critical (below 60) | 80 or above |
| Passing | Checks passed out of the total, plus the percentage | 15 of 17 or better |
| Word Count | Body words, with the image count beneath | 600+ words; 1,500+ reads as in-depth |
| Links | Total links, split into internal and external | Some of each; zero internal links is a warning |
Health Verdict. A meter of the overall score plus one sentence: "Strong on-page foundation. Polish the warnings to push the score into the 90s." at 80+, "Solid base with a handful of fixes to lift this into top-tier territory." at 60-79, and "Critical gaps are holding rankings back — fix the red items below first." below 60.
Severity Breakdown. A donut of Good, Warnings and Critical with the total check count in the center. A healthy page is almost entirely green; any red segment means an engine treats something on the page as broken.
Category Scores. A bar chart scoring eight groups by the share of their signals that pass: Title & Meta, Headings, Content, Images, Links, Schema, Indexability and Mobile-ready. The lowest bar is where to start. Indexability or Mobile-ready below 100 is the most urgent — those two decide whether the page can rank at all.
Most Common Issues. Every non-passing check as its own card: the check name, what was found, a severity badge, and a Fix: line written for that check — for example, "Keep the <title> between 30–60 chars and front-load the primary keyword", or "Add a descriptive alt="…" attribute to every <img>. Decorative images can use alt="" (empty)." If nothing failed you get a single green card: "No critical or warning issues".
Page Facts. Eight raw measurements with an OK / Check / Issue chip each: HTTP Status, Server, Language, Word Count, H1 / H2 / H3 counts, Images (no alt), Links (int / ext) and JSON-LD Blocks, followed by the exact URL that was audited after redirects. Check that URL — if it is not the one you typed, the page redirected and you audited the destination.
Prioritized Action Plan. The first six issues renumbered as an ordered to-do list, each with its fix. This is the panel to work through.
All 17 On-Page Checks. Every check with its result and the value found:
| Check | Passes when | Warning when | Critical when |
|---|---|---|---|
| HTTPS | The final URL is https:// | — | It is not |
| Status Code | HTTP 200 | — | Anything else |
| Title Tag | 30-60 characters | Present but outside that range | Missing |
| Meta Description | 70-160 characters | Present but outside that range | Missing |
| H1 Tag | Exactly one | Two or more | None |
| H2 Tags | At least one | None | — |
| Viewport | A viewport meta tag is present | — | Missing |
| Canonical | A canonical link is set | Not set | — |
| Language | <html lang> is set | Not set | — |
| Robots Meta | No noindex | noindex present | — |
| Image Alt Text | Every image has alt | Some do not | — |
| Internal Links | At least one | None | — |
| External Links | Always passes; reports the count | — | — |
| Open Graph | og:title and og:description present | Either missing | — |
| Twitter Card | twitter:card present | Missing | — |
| Structured Data | At least one JSON-LD block | None | — |
| Word Count | 300 words or more | 1-299 words | Zero |
Quality bands. Below the checks, three plain-language verdicts: title quality (Good at 30-60 characters, Too short, Too long or Missing), description quality (Good at 120-160 characters, Too short, Too long or Missing) and content length (In-depth at 1,500+ words, Standard at 600-1,500, Thin below 600, Empty).
Under everything, the AI Action Plan panel can turn the result into a written step-by-step plan. See Get Recommendations.
Examples#
Example: You audit https://example.com/mens-running. The score is 78 / 100 — Needs work: 12 of 17 checks pass, with 3 warnings and 2 criticals. The criticals are Meta Description ("Missing title tag" style failures show here) and Viewport. Category Scores show Mobile-ready at 0 and Title & Meta at 50. Two lines of HTML — a viewport meta tag and a 140-character description — take the page to 94 and make it mobile-indexable.
Screenshots#
Tips#
- Audit the URL after redirects. Check the URL line in Page Facts to confirm you scored the page you meant to.
- Run it on a competitor's top-ranking page to see the title length, heading structure and schema types that are winning.
- Export CSV gives you
name, severity, detailfor all 17 checks — a ready-made developer ticket. - The tool is free, so re-run it after every fix. There is no reason to batch.
- A page can score 100 and still not rank. This checks technical correctness, not content quality or search demand — pair it with Content Optimizer.
Best Practices#
- Make it the last step of your publishing checklist, before you hit publish.
- Fix criticals first: HTTPS, Status Code, Title Tag, Meta Description, H1 Tag, Viewport and Word Count are the checks that can go critical.
- When a check fails on one templated page, assume it fails on all of them and fix the template.
- Use Site Audit to find which pages to check, then this tool to work on them.
- Re-check after a CMS or theme update — themes silently drop canonicals and viewport tags.
Common Mistakes#
- Auditing the domain instead of the page. A bare domain audits the home page only. Give it the URL you care about.
- Assuming a JavaScript-rendered page is empty. The checker reads the HTML as delivered. If your title, headings or schema are injected by JavaScript after load, they will not be counted.
- Chasing a perfect 100. Two warnings on a strong page are not worth an afternoon. Criticals are.
- Ignoring the Robots Meta warning. A stray
noindexis the single most expensive line of HTML on the internet. - Reading Word Count as a target. It is a signal, not a quota — thin is bad, padded is not good.
Limitations#
- One page per run. There is no bulk mode; for multiple pages use Site Audit.
- No JavaScript rendering. The page is fetched, not rendered in a browser, so client-side content is invisible to the checks.
- Regex-based HTML parsing. Very unusual markup can be counted imprecisely.
- Bot-protected pages may fail. Sites that block non-browser requests return a non-200 status and the audit reports that status honestly.
- No speed, security-header or full schema validation. Those live in PageSpeed & Vitals, Security Headers and Schema Tool.
- Results are not saved as a re-openable report; re-run the page instead — it is free.
Troubleshooting#
| Symptom | Likely cause | Fix |
|---|---|---|
Enter a value first. | The URL field is empty | Paste a URL and run again |
Please sign in to run this tool. | Session expired | Sign in again — see I cannot sign in |
On-Page SEO check failed: … | The site refused the request, timed out or is unreachable | Confirm the URL loads in a browser; some hosts block non-browser requests |
| Status Code shows a non-200 value | The URL redirects, is gone, or is behind protection | Audit the final URL shown in Page Facts |
| Structured Data reports 0 but you have schema | Your JSON-LD is injected by JavaScript | Confirm with Schema Tool, which reports JavaScript rendering explicitly |
Hourly fair-use limit reached (100 light-tool calls/hour)… | Over 100 zero-credit calls this hour | Wait for the next hourly reset; the message says how long |
| The score dropped without you changing anything | Your CMS or CDN changed a tag | Compare Page Facts against your last export |
FAQs#
Does this cost credits? No. It is one of the zero-credit technical tools and works on every plan, including Free. It only counts toward the 100-calls-per-hour fair-use limit.
Why does it say I have no structured data when I definitely do? The page is fetched, not rendered, so schema added by JavaScript after page load is not seen. Schema Tool detects that case explicitly and tells you the page is JavaScript-rendered.
How is the score calculated? It starts at 100 and subtracts 12 for each critical check and 4 for each warning, with a floor of 0. So one critical costs you the same as three warnings.
What is the difference between the 30-60 character title rule and the 30-60 "Good" band? They are the same rule shown twice: the Title Tag check passes at 30-60 characters, and the quality band repeats that verdict in plain words. The description check is more permissive than its quality band — it passes at 70-160 characters but only reads as "Good" at 120-160.
Can I check many pages at once? Not in this tool. Site Audit crawls up to eight of your top pages in one run for one credit, and Duplicate Content Audit compares titles and descriptions across pages.
Can I schedule it? Yes — Schedule Weekly in the result header creates a weekly audit emailed to you. Scheduling requires a paid plan even though the tool itself is free.
See also
Was this article helpful?
Thanks — feedback noted for the docs team.