Your files never leave your device. All processing happens locally in your browser.
How do I analyze all the SEO meta tags on a page — without uploading the page to a server?
Open AnyTool’s Meta Tag Analyzer, open your page and copy its HTML source (View Source / Ctrl+U), and paste it in. The analyzer inventories every SEO, social and technical tag a search engine or platform reads — <title>, meta description, robots, canonical, viewport, charset, <html lang> + hreflang, author, theme-color, meta keywords and meta refresh, plus Open Graph and Twitter Card — and gives each a pass / warn / fail verdict with a concrete fix. Title and description are measured in characters AND pixels against Google’s approximate limits, noindex is flagged prominently, meta keywords is noted as ignored by Google, and duplicate title / canonical tags are caught. Results are grouped into Core SEO, Social and Technical, with a raw table of every tag found. Everything runs in your browser, so your page HTML is never uploaded — safe for staging or unreleased pages. Your browser can’t fetch most live URLs (CORS) and there is no server proxy, so paste the source; it checks best practices, it is not the official Google / Facebook / X validators.
Paste your page’s HTML source — every SEO, social and technical meta tag is extracted and checked
Pass / warn / fail on title, description, robots, canonical, viewport, charset, hreflang, OG and Twitter
Title & description measured in characters AND pixels vs Google’s approximate limits
noindex flagged prominently; meta keywords noted as ignored; duplicate title / canonical caught
100% client-side — page HTML never uploaded; safe for staging / unreleased pages
What is
Meta tag analysis (SEO)
Meta tag analysis is the process of inventorying and grading the tags in a page’s <head> that search engines and social platforms read. Core SEO tags include the <title>, the <meta name="description">, the <meta name="robots"> index/follow directive and the <link rel="canonical">; technical tags include <meta charset>, the responsive <meta name="viewport">, <html lang> and hreflang; social tags are Open Graph (og:*) and Twitter Card (twitter:*). A meta tag analyzer checks each for presence, value and length or format, then reports pass / warn / fail with a recommendation, so you can catch a missing description, a truncated title, an accidental noindex, or an incomplete share card.
SEO & Web
Related terms
Title tagMeta descriptionMeta robotsCanonical URLViewportOpen GraphTwitter Cardhreflang
Frequently Asked Questions
The core SEO tags (title, description, robots, canonical), technical tags (charset, viewport, html lang, hreflang, theme-color, keywords, meta refresh) and social tags (Open Graph and Twitter Card) — each with a pass / warn / fail and a fix.
It inventories every tag that matters, grouped into three sections. Core SEO: the <title> (length in characters and pixels), the meta description (length), the meta robots directive (it flags noindex and nofollow prominently) and the canonical link (present, absolute, not duplicated). Technical: the charset (utf-8 and first in the head), the viewport (width=device-width for mobile-first indexing, and it warns if zoom is disabled), the <html lang> and hreflang alternates, plus author, theme-color, the deprecated meta keywords and the discouraged meta refresh. Social: the Open Graph tags (og:title / description / image / url / type) and the Twitter Card (twitter:card and its type). Each check returns pass, warn, fail or info with a one-line recommendation.
Aim for a title around 50–60 characters (≤ ~600px) and a meta description around 120–160 characters (mobile cuts near 120). The analyzer measures the exact pixel width, not just characters.
As a starting point, keep the title to roughly 50–60 characters so it stays under Google’s ~600px desktop cut-off, and the meta description to roughly 120–160 characters — mobile truncates around 120, so put the key message first. Because Google truncates by PIXEL width rather than character count, the analyzer measures the actual width of your exact text with the same canvas measurement the SERP Preview uses and warns when a title or description will be cut. Treat these as pixel budgets, not hard caps, and write for the click — Google may rewrite your title or description anyway.
Yes. It flags noindex prominently (the page would be blocked from Search) and notes that meta keywords is ignored by Google since 2009, plus it catches duplicate title and canonical tags.
Two of the most common and costly mistakes are surfaced clearly. If the page carries a <meta name="robots" content="noindex"> the analyzer raises a prominent failure at the top of the report, because a noindex means the page will not appear in Google Search — a frequent accident on pages that went live from a staging template. It also notes when a <meta name="keywords"> tag is present, since Google has ignored it since 2009 and it can hand competitors your keyword list. Beyond those, it flags a nofollow directive, a missing or non-absolute canonical, duplicate <title> or canonical tags, a charset that is not utf-8 or not first, and a viewport that disables pinch-zoom.
Paste the HTML source. Your browser can’t fetch most live URLs (CORS) and there’s no server proxy, so the URL box only works for CORS-enabled or same-origin pages.
Because the tool is 100% client-side with no server proxy — which is what keeps your page private — your browser can only fetch pages that explicitly allow cross-origin requests (CORS) or are on the same origin. Almost all live sites block that, so the reliable path is to open your page, use View Source (Ctrl+U), copy the HTML and paste it in. The optional “try to fetch” box is there for the rare CORS-enabled case; when it fails, it tells you to paste the source instead. Nothing you paste is ever uploaded, and this checks best practices — it is not the official Google Search Console, Rich Results Test, or the Facebook / X validators, so confirm important pages there.
Detailed Explanation
📖How It Works
What the Meta Tag Analyzer Checks
The Meta Tag Analyzer takes a page’s pasted HTML source (View Source / Ctrl+U) and inventories every SEO, social and technical tag in the <head> that a search engine or social platform reads, then grades each one. It groups the results into three sections. CORE SEO covers the <title> (its character length and pixel width), the <meta name="description"> (length), the <meta name="robots"> directive (flagging noindex and nofollow prominently) and the <link rel="canonical"> (present, absolute, not duplicated). TECHNICAL covers the <meta charset> (utf-8 and declared first in the head), the <meta name="viewport"> (width=device-width for mobile-first indexing, warning if pinch-zoom is disabled), the <html lang> attribute and hreflang alternates, plus author, theme-color, the deprecated meta keywords and the discouraged meta refresh. SOCIAL covers the Open Graph tags (og:title / description / image / url / type) and the Twitter Card (twitter:card and its type). Each check returns a pass, warn, fail or info verdict with a one-line recommendation, and a raw table lists every tag found.
Paste your page HTML; every meta / link tag in the head is extracted and graded
Grouped Core SEO / Social / Technical, each check a pass / warn / fail / info with a fix
Covers title, description, robots, canonical, charset, viewport, html lang, hreflang, theme-color, keywords, meta refresh, Open Graph and Twitter Card
noindex and nofollow flagged prominently; meta keywords noted as ignored by Google
All parsing runs client-side with DOMParser (regex fallback) — no server call, no CDN, no upload
⚙️Methodology
How It Parses and Scores Each Tag
The analyzer reuses the project’s shared, well-typed engines rather than re-parsing: parseSocialMeta (socialMetaEngine.ts) does a DOMParser-first extraction of the og:* and twitter:* tags, the <title>, the <meta name="description"> and the canonical link, and analyzeSerp (serpEngine.ts) measures the title and description with a canvas measureText() pass against Google’s approximate pixel limits (~600px desktop title, ~920px description). A small new module, metaAnalyzeEngine.ts, imports those (without modifying them) and adds the checks they do not cover — robots (parsing noindex / nofollow), viewport, charset (including whether it is utf-8 and the first head element), <html lang>, hreflang alternates, author, theme-color, meta keywords, meta refresh, and duplicate <title> / canonical detection — via one extra DOMParser pass with a regex fallback so the module is safe in any environment. Length rules are research-verified: a title around 50–60 characters (≤ ~600px) and a description around 120–160 characters (mobile cuts near 120). Each tag becomes a check with a status and a concrete recommendation; the report totals the passes, warnings and failures and surfaces prominent flags for noindex, nofollow and a missing core tag.
Reuses parseSocialMeta (og/twitter/title/description/canonical) and analyzeSerp (pixel measurement) unchanged
New metaAnalyzeEngine.ts adds robots / viewport / charset / lang / hreflang / keywords / refresh / duplicate checks
Title ~50–60 chars ≤ ~600px; description ~120–160 chars (mobile ~120) — measured in chars AND pixels
charset checked for utf-8 AND being the first element in the head (within the first 1024 bytes)
DOMParser-first with a regex fallback; totals pass / warn / fail and flags noindex, nofollow, missing-core
⚠️Limitations
Paste Source (CORS), Best-Practice Checks, Not the Official Validators
The tool is explicit about three honest limits. First, paste the page SOURCE: because it is 100% client-side with NO server proxy (which is what keeps your page private), your browser can only fetch CORS-enabled or same-origin pages — almost all live sites block cross-origin requests, so the reliable path is View Source (Ctrl+U) → copy → paste; the optional “try to fetch” box is only for the rare CORS-enabled case and, on failure, tells you to paste instead. Second, the length, pixel and format rules are WIDELY-CITED APPROXIMATIONS, not hard limits — Google truncates by pixel width (which varies by font, device and SERP feature) and frequently rewrites titles and descriptions per query, so a clean report is guidance, not a promise of how the snippet appears. Third, it is a helpful client-side analyzer checking common best practices — NOT the official Google Search Console or Rich Results Test (indexing and rich results), the Facebook Sharing Debugger, or the X (Twitter) Card Validator (which fetch and render the live page). It also notes that <meta name="keywords"> has been ignored by Google since 2009. Always confirm indexing, rich results and social previews in those official tools before relying on them.
Paste your page source — browser can’t fetch most live URLs (CORS); no server proxy keeps it private
Length / pixel / format rules are approximations; Google rewrites titles and descriptions per query
Not the official Google Search Console / Rich Results Test, Facebook Debugger or X Card Validator
meta keywords has been ignored by Google since 2009 (flagged as such)
A clean report is guidance from best practices, not a guarantee of indexing or rich results
🔒Privacy & Security
Why Analyzing Meta Tags In-Browser Is a Privacy Win
Online meta-tag analyzers send your whole page — or a URL they crawl server-side — to a remote service. The Meta Tag Analyzer instead runs entirely on the user’s device: the pasted page HTML is parsed with the browser’s built-in DOMParser (regex fallback) and every check runs in plain JavaScript; nothing is fetched, uploaded, logged or stored, and no page is crawled (there is deliberately no server proxy). That makes it safe to audit STAGING, UNRELEASED or INTERNAL pages whose source you do not want to expose to a third-party service before launch — a meaningful advantage, especially for catching an accidental noindex that shipped from a staging template. The tool works offline once cached as a PWA, supports dark mode and mobile with a sticky Analyze / Copy bar, has exactly three ad slots, and adds no new dependency: it reuses the shared socialMetaEngine and serpEngine and adds one small metaAnalyzeEngine module.
Page HTML is parsed locally with DOMParser and never uploaded — no server, no CDN, no crawl, no proxy
Safe for staging / unreleased / internal pages, unlike online analyzers that send your page to a server
Works offline once cached; closing the tab discards your data
No new dependency — reuses socialMetaEngine + serpEngine; adds one small metaAnalyzeEngine module
Dark mode and mobile support with a sticky Analyze / Copy bar; exactly three ad slots
Meta tag analysis: in-browser (AnyTool) vs online analyzers
Capability
AnyTool
Typical online analyzers
Processing
Runs entirely in your browser
Sends your page / URL to a server
Your page
HTML never uploaded, works offline
Page or URL crawled server-side
Staging / unreleased pages
Safe — nothing leaves the device
Exposed to a third-party service
Input
Paste your page HTML source (View Source)
Often a URL the tool crawls
Coverage
Core SEO + Social + Technical, each pass/warn/fail
Varies; often a raw list
Title / description
Character AND pixel measurement vs Google limits
Often character count only
Fixes
A concrete recommendation per tag
Sometimes vague or upsold
Honesty
Best-practice checks — verify in official tools
Often implies it is authoritative
Cost / signup
Free, no signup
Often gated or ad-heavy
AnyTool analyzes a page’s meta tags locally from pasted HTML and uploads nothing, which is safe for staging or unreleased pages. It checks common SEO best practices (length, pixel and format rules are approximations and Google rewrites titles / descriptions), and it is not the official Google Search Console / Rich Results Test, the Facebook Sharing Debugger or the X Card Validator — confirm important pages there. Comparison as of June 2026.