HTML Meta and Heading Extractor
Extract every meta, title, link, canonical, and hreflang tag from an HTML page, or analyze the H1-H6 heading outline with accessibility flags. Paste HTML or fetch any URL.
Interactive tool
HTML source
Meta surface
LivePaste HTML or click Load sample to begin.
What is the HTML Meta and Heading Extractor?
A free HTML auditor with two complementary modes. Meta mode lists every <title>, <meta>, and <link> tag: Open Graph, Twitter Cards, robots, canonical, hreflang, categorised and audit-checked. Headings mode renders the H1-H6 outline with accessibility flags for missing H1, multiple H1s, and skipped levels. Paste HTML for instant local analysis or fetch any URL through our SSRF-safe backend.
How to Use the HTML Extractor
- 1Pick a mode: Meta tags or Heading outline
- 2Pick an input source: paste HTML or fetch from URL
- 3Read the live results: categorised meta tags and a hierarchical heading outline
- 4Review the audit findings (errors, warnings, info notes)
- 5Fix any flagged issues in your source HTML and re-run
Key features
Two-mode tagged-union processor
Single tool, two complementary lenses on the same HTML: meta-surface analysis and heading outline analysis
Categorised meta tag display
General, Open Graph, Twitter, robots, http-equiv, link, social: every tag bucketed for at-a-glance review
Hierarchical heading outline
H1-H6 rendered as a nested tree with depth indents, anchor IDs, and skipped-level flags
Accessibility audit findings
Missing H1, multiple H1s, skipped levels, empty headings: all the WCAG-relevant issues are surfaced
SEO audit findings
Title length, description length, viewport, canonical absoluteness, multiple canonicals, noindex robots: flagged automatically
Paste or fetch
Local-only paste mode for development, or fetch any URL through our SSRF-safe backend
Privacy-first fetching
URL fetches go through our hardened backend with size, timeout, and SSRF caps. URLs are not logged.
Why Audit a Page's Meta Surface and Heading Outline?
Meta tags drive search-result snippets, social-media link previews, and crawler behavior. Heading outlines drive screen-reader navigation and Google's topical understanding of the page. A page can render perfectly to the eye while shipping a broken canonical, a noindex robots tag, or a skipped heading level that locks out users with screen readers. This tool flags those silent failures in seconds.
Common use cases
- Pre-deploy QA on a new page template (catch missing canonical or viewport)
- Diagnosing why Twitter or LinkedIn renders a poor link preview
- Verifying hreflang setup matches what the page actually emits
- Auditing a competitor's page outline to understand their topical structure
- WCAG conformance check on heading hierarchy before an accessibility audit
- Confirming a CMS migration preserved every meta tag and link tag
Meta vs heading mode: when to use which
Meta mode answers: "What does this page say about itself to search engines and social platforms?" Headings mode answers: "Can a screen-reader user navigate this page logically?" Both matter; both are commonly broken; both are fixed with one-line edits once you know what to fix.
What the meta audit checks
- Title presence and length (~60 char ideal)
- Meta description presence and length (~155 char ideal)
- Viewport tag (mobile-friendliness)
- Robots directives (noindex warning)
- Open Graph required fields (og:title, og:type, og:url, og:image)
- Twitter Card presence
- Canonical absoluteness and uniqueness
- Legacy http-equiv refresh redirects
What the headings audit checks
- Exactly one H1 per page
- No skipped levels (H2 → H4)
- No empty heading tags
- Reasonable nesting depth
Open Graph vs Twitter Cards
Twitter (now X) reads Open Graph as a fallback if no twitter:* tags are present, which is why we emit only an info-level finding when twitter:* is missing. Facebook, LinkedIn, Discord, Slack, and most other previews read Open Graph exclusively. If you set Open Graph well, Twitter is a free win on top.
Tips & best practices
Make canonical absolute
Relative canonical URLs like "/page" are silently demoted by Google. Always emit the full https:// URL.
One H1 per page
HTML5 technically allows multiple H1s inside <section> or <article>, but every major screen reader still expects exactly one document-level H1. Use H2-H6 for nested sections.
Mind the description length budget
Google truncates around 155-160 chars on desktop and ~120 on mobile. Bing allows ~250. Aim for 150 chars to look good in both.
Verify hreflang reciprocity
Every locale variant must self-reference and point to all sibling locales. The Hreflang Generator in this category builds reciprocal sets correctly out of the box.
Don't skip heading levels for visual styling
If you need an H2 to look smaller than an H3, use CSS: not a smaller heading level. Screen readers cannot fix a broken outline.
Privacy & security
Paste mode runs entirely in your browser. Fetch mode sends only the URL to our backend, which applies SSRF guards plus response size, timeout, and rate-limit caps. The URL is not logged.
Related tools
- Schema Markup Validator
Validate JSON-LD, Microdata, and RDFa schema markup against Google Rich Results criteria. Paste HTML or JSON-LD, or fetch from any URL: get per-block required-field reports.
SEO Tools
- Robots Meta Generator
Build a <meta name="robots"> tag and the matching X-Robots-Tag HTTP header. Combine noindex, nofollow, noarchive, nosnippet, max-snippet, max-image-preview, max-video-preview, and unavailable_after with per-engine support hints.
SEO Tools
- Hreflang Generator
Generate hreflang link tags and XML sitemap fragments for international sites, with BCP 47 validation, x-default support, and reciprocity checks.
SEO Tools
- Robots.txt Tester
Test whether a list of URLs are allowed or blocked by a robots.txt file, across multiple user-agents. RFC 9309-compliant matching with rule and line attribution. Paste content or fetch from any domain.
SEO Tools
- URL Normalizer
Bulk-normalise URLs against RFC 3986: lowercase scheme/host, strip default ports, remove dot segments, canonicalise percent-encoding, dedupe and sort query parameters, and optionally strip tracking parameters.
SEO Tools
- CSP Nonce & Hash Generator
Generate cryptographically-random CSP nonces and SHA-256/384/512 hashes for inline <script> and <style> sources. Bulk-hash several inline snippets at once.
SEO Tools
Frequently Asked Questions
What is the difference between meta mode and headings mode?
Meta mode lists every <title>, <meta>, and <link> tag and audits them for SEO issues like missing canonical, oversize description, or noindex robots. Headings mode lists every H1-H6 and audits the outline for accessibility issues like missing H1, multiple H1s, or skipped levels. Both modes work on the same HTML, just different lenses.
Does it work with fragments or only full HTML pages?
Both. Paste a full <!DOCTYPE html> page or just a snippet: the regex-based parser tolerates either. Findings that depend on a fully-formed page (like missing viewport) will still surface even when only the <head> is present.
Why does the audit warn about multiple canonicals?
Search engines treat conflicting canonical signals as a sign of an error and may pick the wrong one or ignore both. Exactly one <link rel="canonical"> per page should be emitted, pointing to the absolute URL of the page itself.
What does "skipped level" mean in the heading outline?
A skipped level is a heading whose level number is more than one greater than the previous heading's level: for example, an H2 followed by an H4. Screen readers expect a contiguous outline; skipping levels makes the document harder to navigate. Adjust the heading levels (or use CSS for size) to fix.
Are private IPs blocked when fetching?
Yes. Our backend refuses any URL that resolves to a non-public address: loopback, private, link-local, or otherwise internal, and also enforces response size, timeout, and rate-limit caps.
Can it parse JavaScript-rendered content?
No. The fetch is a static HTML download: the same HTML Googlebot would receive without rendering JS. If your page populates meta or headings via client-side JS, those will not be visible. This matches what crawlers see and is usually exactly what you want to audit.