AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I run a full on-page SEO audit of a page — title, meta, headings, images, links, content and keyword usage — with a score, without uploading my HTML?

Open AnyTool&rsquo;s On-Page SEO Analyzer, paste your page&rsquo;s HTML source (View Source / Ctrl+U), optionally add a target keyword, and it runs a complete on-page audit entirely in your browser. It checks the <strong>&lt;title&gt;</strong> and <strong>meta description</strong> (present + length), that there is <strong>exactly one H1</strong> with a logical H2&ndash;H6 outline, every <strong>image&rsquo;s alt text</strong> (counting missing ones), <strong>internal vs external links</strong> (and nofollow / empty-anchor / http links), <strong>content length</strong>, the <strong>canonical</strong>, <strong>robots/noindex</strong>, <strong>viewport</strong>, <strong>html lang</strong>, <strong>charset</strong> and <strong>JSON-LD structured-data</strong> presence. With a target keyword it checks whether the keyword is in the title, H1, first paragraph, meta description and URL, plus its body density. Each check is a pass / warn / fail with a concrete fix, grouped into Titles &amp; Meta, Content &amp; Headings, Images, Links and Technical, and everything rolls up into a weighted <strong>0&ndash;100 score</strong> with a letter grade and a prioritized fix list. It is broader than a meta-tag checker &mdash; a whole-page audit. Honest caveat: it audits only the on-page factors <strong>in the HTML you paste</strong> against common best practices; it is guidance, not a ranking guarantee, and it cannot see off-page factors (backlinks, authority), real rendering or Core Web Vitals. Your HTML is never uploaded.

  • Full-page audit: title, meta, one-H1 + heading order, image alt, internal/external links, content length, canonical, robots, viewport, lang, JSON-LD
  • Optional target keyword checked in title, H1, first paragraph, meta description, URL + body density (flags absence AND stuffing)
  • Weighted 0–100 score + letter grade, grouped pass / warn / fail checks with a fix each, and a prioritized to-do list
  • 100% client-side — your page HTML is parsed in the browser and never uploaded; safe for staging / unreleased pages
  • Honest: guidance not a ranking guarantee; can’t see off-page factors, rendering or Core Web Vitals — paste your source

What is

On-page SEO audit

An on-page SEO audit reviews the elements within a single page&rsquo;s own HTML — title, meta description, headings, image alt text, links, content and technical tags — against best practices and reports what to fix. It covers on-page factors only, not off-page signals like backlinks.

SEO & Web

Related terms

Title tagMeta descriptionH1 headingImage alt textInternal linkingCanonical URLStructured data

Frequently Asked Questions

It checks a page’s title, meta description, headings (one H1), image alt text, internal and external links, content length, canonical, viewport, language and structured data, and gives a score.

An on-page SEO analyzer audits the factors inside a single page’s HTML: the title tag (present and ~50–60 chars), the meta description (~150–160 chars), a single H1 with a logical H2–H6 heading order, image alt text (flagging missing alt), internal versus external links (and nofollow / empty anchors), content/word count, the canonical link, the robots/noindex directive, the mobile viewport, the html lang attribute, character encoding and JSON-LD structured-data presence. AnyTool’s tool grades each as pass, warn or fail with a specific fix, then rolls everything into a weighted 0–100 score — all computed in your browser from the HTML you paste, with nothing uploaded.

A meta tag analyzer only checks the tags in the head. This audits the whole page — headings, images, links, content and keyword usage too — and gives one overall score.

The sibling Meta Tag Analyzer focuses on the meta and link tags in the document head (title, description, robots, canonical, viewport, Open Graph, Twitter Card). The On-Page SEO Analyzer is broader: it also audits the body — the H1 and heading outline, image alt text, internal versus external links, content length and how a target keyword is used across the title, H1, first paragraph and body — and combines all of it into a single weighted score with a prioritized fix list. Use the meta analyzer for a deep meta-tag pass and this one for a whole-page audit.

Yes — your HTML is parsed in your browser and never uploaded, so it is safe for staging, unreleased or internal pages.

The analyzer runs 100% client-side. The HTML you paste is parsed with the browser’s own DOMParser and audited locally — nothing is fetched, uploaded, logged or crawled, and there is no server proxy. That makes it safe for staging, unreleased or internal pages that you cannot or do not want to expose to an online checker. Because most live sites block cross-origin fetches (CORS) and there is no proxy, the reliable path is to open your page, copy its source (View Source / Ctrl+U) and paste it in.

No. It’s guidance on the on-page basics in your HTML. Rankings also depend on off-page factors, rendering and Core Web Vitals it can’t see.

A high score means the on-page fundamentals present in your HTML follow common best practices — a strong foundation, but not a ranking guarantee. The tool cannot see off-page factors (backlinks, domain authority, brand signals), how the page actually renders (JavaScript-injected content, layout), or your Core Web Vitals and real page speed, and Google frequently rewrites titles and snippets. The length and count thresholds are widely-cited approximations, not hard rules. For a full site crawl, rendered analysis and performance data, pair it with Screaming Frog, Google Search Console and PageSpeed Insights.

Detailed Explanation

How It Works

What the On-Page SEO Analyzer Does

On-Page SEO Analyzer is a 100% client-side tool that runs a full on-page SEO audit of a single page from its pasted HTML source. Unlike a meta-tag-only checker, it audits the <strong>whole page</strong>: the <strong>&lt;title&gt;</strong> and <strong>meta description</strong> (present and length), that there is <strong>exactly one H1</strong> with a logical H2&ndash;H6 outline, every <strong>image&rsquo;s alt text</strong> (counting missing ones), <strong>internal vs external links</strong> (and nofollow, empty-anchor and insecure http links), <strong>content length</strong>, the <strong>canonical</strong>, the <strong>robots/noindex</strong> directive, the mobile <strong>viewport</strong>, the <strong>html lang</strong> attribute, character <strong>encoding</strong> and <strong>JSON-LD structured-data</strong> presence. An optional <strong>target keyword</strong> is checked in the title, H1, first paragraph, meta description and URL, with its body density. Every check is a pass / warn / fail with a concrete fix, grouped into Titles &amp; Meta, Content &amp; Headings, Images, Links and Technical, and everything rolls up into a weighted <strong>0&ndash;100 score</strong> with a letter grade and a prioritized fix list.

  • Full-page audit, not just meta tags: title, meta, headings, image alt, links, content, canonical, robots, viewport, lang, charset, JSON-LD
  • Exactly-one-H1 and heading-order checks; internal vs external link counts with nofollow / empty-anchor / http flags
  • Optional target keyword checked in title, H1, first paragraph, meta description and URL, plus body density (flags absence and stuffing)
  • Weighted 0–100 score + letter grade, grouped pass / warn / fail checks with a fix each, and a prioritized to-do list
  • Reuses the shared text-stats engine for word count; parses with the browser’s DOMParser (regex fallback so it never throws)
Methodology

How the Audit and Score Are Computed

The engine (onPageSeoEngine.ts, no new dependency) parses the pasted HTML with the browser&rsquo;s DOMParser, extracting the title, meta description, canonical, robots, viewport, lang and charset; every heading with its level; every image and whether it has an alt attribute; and every &lt;a href&gt; classified as internal (relative / root-relative) or external (absolute), with its rel (nofollow) and anchor text. Non-navigational hrefs (mailto:, tel:, javascript:, bare #fragments) are excluded from the link counts. Visible body text is read after stripping script / style / noscript, and word count comes from the shared textStats() façade. Each check carries a <strong>weight</strong> reflecting how important the on-page factor is; the score is the weighted percentage of checks passed, where a warning counts as half credit and a failure as zero, mapped to a letter grade (A&ndash;F). Suggestions are sorted failures-first, then by weight, so the highest-impact fixes surface at the top.

  • DOMParser-based extraction with a regex fallback for non-DOM environments (SSR / worker)
  • Links classified internal vs external; mailto / tel / javascript / #fragment excluded from counts
  • Body text stripped of script/style/noscript; word count via the shared textStats() engine
  • Weighted score: pass = full weight, warn = half, fail = zero → 0–100 and an A–F grade
  • Prioritized fix list orders failures first, then by weight (most impactful on top)
Limitations

Honest Scope and Limitations

This audits only the on-page factors <strong>present in the HTML you paste</strong>, against widely-cited best practices &mdash; it is <strong>guidance, not a ranking guarantee</strong>. It cannot see <strong>off-page factors</strong> (backlinks, domain authority, brand signals), how the page actually <strong>renders</strong> (JavaScript-injected content, layout, visual hierarchy), or your <strong>Core Web Vitals</strong> and real page speed. The length and count thresholds (title ~50&ndash;60 chars, description ~150&ndash;160, 300+ words, one H1) are approximations, not hard rules, and Google frequently rewrites titles and snippets. Your browser cannot fetch most live URLs (cross-origin / CORS) and there is deliberately <strong>no server proxy</strong> (so your page stays private), so the reliable path is to paste your page source. For a full multi-page crawl, rendered analysis and performance data, pair it with a dedicated crawler and Google&rsquo;s own tools.

  • On-page guidance only — cannot see backlinks, domain authority or other off-page signals
  • Sees the HTML as pasted — no JavaScript rendering, no Core Web Vitals, no real page-speed measurement
  • Length / count thresholds are approximations; Google often rewrites titles and snippets per query
  • No server proxy — most live URLs are CORS-blocked, so paste your source (which keeps your page private)
  • For a full crawl and performance data, use Screaming Frog, Google Search Console and PageSpeed Insights
On-Page SEO Analyzer vs typical online SEO checkers
CapabilityAnyTool On-Page SEO AnalyzerTypical online SEO checker
ProcessingRuns entirely in your browserSends your page / URL to a server
Your pageHTML never uploaded, works offlinePage or URL crawled server-side
Staging / unreleased pagesSafe — nothing leaves the deviceExposed to a third-party service
ScopeFull page: title, meta, headings, images, links, content, technicalSometimes meta-only or a URL crawl
ScoreWeighted 0–100 score + letter grade + prioritized fixesVaries; sometimes no score
Target keywordChecked in title, H1, first paragraph, meta desc, URL + densityOften absent or basic
FixesA concrete fix per checkSometimes vague or upsold
HonestyGuidance — can’t see off-page / rendering / CWVOften implies an authoritative verdict
Cost / signupFree, no signupOften gated or ad-heavy

AnyTool audits a page’s on-page factors locally from pasted HTML and uploads nothing, which is safe for staging or unreleased pages. It checks common best practices (length and count thresholds are approximations; Google rewrites titles / snippets), covers on-page factors only (not backlinks, rendering or Core Web Vitals), and is guidance rather than a ranking guarantee — for a full crawl and performance data use Screaming Frog, Google Search Console and PageSpeed Insights. Comparison as of July 2026.