Free Heading Structure Extractor
Paste 5-15 URLs. Get every page's H1-H6 outline as a nested view, side by side. Audit your own pages and competitors at once.
What the Heading Structure Extractor does
Auditing heading structure one URL at a time is fine for a single check, but tedious when you are reviewing your top 20 organic pages or studying 5 competitors before writing a new pillar post. The Heading Structure Extractor takes a list of URLs and returns each page's nested H1-H6 outline in one view.
Each result is a collapsible accordion: click a URL to see its per-tag count summary plus the indented hierarchy. Compare side by side. Copy any page's outline. Spot missing H1s, duplicate H1s, and skipped levels at a glance. The bulk view is what makes competitor outline analysis fast enough to be worth doing.
How to extract outlines
Five steps from URL list to clean outlines.
Paste URLs (one per line)
Drop in 5-15 public URLs — your own pages, competitors, a mix. Public URLs only.
Click Extract Structure
The tool fetches each URL server-side and parses every H1-H6 in the rendered HTML.
Click any URL row
Each result expands to show the per-tag count summary and the nested outline.
Copy or compare
Use the Copy button to grab a single URL's outline, or open multiple to compare side by side.
Edit and re-extract
Make CMS fixes for problem URLs, paste them again, confirm clean outlines.
When SEO teams use it
Six common workflows where bulk outline extraction earns its keep.
Auditing competitor outlines for a new pillar post
Run the top 5 SERP results for your target keyword. The H2 patterns you see are what Google currently rewards for that intent. Build your outline to match the patterns plus add one section nobody else covers.
Bulk QA across your top organic pages
Audit your top 20 organic pages quarterly. Run them through the extractor in one batch. The outliers (multiple H1s, skipped levels, 30+ H2s) become your priority fix list.
Theme migration regression check
Migrating from one CMS theme to another. Run a representative sample of post types and pages before and after the switch. Diff the outlines. Anywhere the theme broke the heading structure, you catch it before SEO impact.
Inventorying a newly inherited site
You took over a 200-page site and need a content audit. Run the top 30 organic pages through the extractor; the outline diff against intended structure is your audit report's opening section.
Pre-publish content QA across multiple staging URLs
Your team has 6 posts queued for publish this week. Paste all staging URLs in one batch, see all 6 outlines side by side. Catch structure issues before publish.
Accessibility compliance check
WCAG 2.1 AA flags heading hierarchy issues. Run all template pages through the extractor; pages with broken outlines fail accessibility audits. The fix is usually one CSS or template-tag change.
Platform-specific setup guides
How to deploy structural fixes across the CMSes most teams use.
WordPress
- Run your top 20 organic URLs through the extractor monthly. Common issues: theme wrapping logo as H1, footer widgets contributing H3s.
- Fix in header.php (logo) and footer.php (widget titles). Use CSS to keep visuals identical — only change the tag from H to p.
- Re-run extraction after the fix to confirm clean outlines.
Webflow
- Run all CMS template pages plus key static pages. Webflow is generally clean, but custom templates can introduce extra H1s in symbols.
- Fix in Designer: change tags on Heading elements via the dropdown. CMS items inherit from their template.
- Publish, re-run extraction to confirm.
Ghost
- Run all post URLs plus the homepage and any custom pages. Ghost themes usually keep things clean.
- If a custom theme introduced extra H1s in the header or sidebar, edit the .hbs template and change H tags to span/p.
- Re-run extraction. Ghost theme changes deploy on save.
Next.js / React custom builds
- Run all routes by category: home, marketing, docs, blog. Single-page apps are the most common cause of "no headings detected".
- Confirm getStaticProps or getServerSideProps fills H tags into the SSR HTML, not just JSON.
- Re-run extraction. JS-only renders are the typical culprit; SSR fixes it.
Squarespace / Wix
- These platforms hide tag selection in style panels. Look for "Heading 1/2/3" labels in text editor toolbars.
- Audit all template pages plus your top organic pages. Limited fix options exist if the platform hardcodes site logo as H1.
- Run extraction to identify which template pages have outline issues; prioritize fixes by SEO traffic.
Grigora vs. other extractors
A side-by-side of the alternatives.
| Capability | Grigora | Screaming Frog | SEMrush Audit | Free generators | Manual |
|---|---|---|---|---|---|
| Bulk URL extraction | Yes (5-15) | Yes (paid) | Single URL | Single URL | Manual |
| Free + unlimited | Yes | Limited free | Free trial | Free, ad-supported | Manual only |
| Nested hierarchy view | Yes | Yes | Yes | Flat list | Manual |
| All H1-H6 tags | Yes | Yes | Yes | H1-H3 only | Manual |
| Per-URL summary | Yes | Yes | Yes | Yes | Manual |
| Copy outlines | Yes | Yes (paid) | Yes | Yes | Manual |
| No signup | Yes | Account required | Account required | Yes | Yes |
| Result speed | <10 sec for 5 URLs | <60 sec | <5 sec single | <5 sec single | Manual |
Common errors and how to fix them
Eight issues SEOs hit when running bulk outline audits.
Extraction returns no headings for a URL that clearly has them
Cause: Page is a single-page app that injects content via JavaScript after initial render.
Fix: For SPAs, server-render the headings (Next.js getStaticProps, Nuxt asyncData, etc.). If the page cannot be SSRed, this tool will miss headings — use a Lighthouse audit run from a real browser instead.
Outline includes navigation or footer headings
Cause: Theme uses H2 or H3 for "Recent posts", footer column titles, or sidebar widgets.
Fix: Convert non-content headings to <p> with a heading-style CSS class. Reserve real heading tags for the article body. Sidebars and footers should not contribute to the page outline.
Multiple H1s detected on one URL
Cause: Theme wraps both site logo and post title in H1, or you have an article H1 plus a sidebar H1.
Fix: In your theme, change the logo to <p class="site-title">. Keep one H1 per page representing the actual page topic.
Skipped heading level (H2 to H4)
Cause: A developer or content team picked H4 because it "looked the right size", ignoring the missing H3.
Fix: Either insert an H3 or demote the H4 to H3. Use CSS for visual size; keep the tag semantically correct.
One URL fails to load while the rest succeed
Cause: Target server is slow, behind a strict WAF, or rate-limiting our resolver.
Fix: Retry that URL alone after 30 seconds. If it persistently fails, the site is blocking automated fetches; load the page yourself and view source manually.
Headings show HTML entities (&)
Cause: Source HTML uses entity encoding for special characters.
Fix: No fix needed — the encoding is fine. & renders as & in browsers and is read identically by Google. The output preserves raw HTML for transparency.
Page has 30+ H2s
Cause: You used H2s for every visual subheading without an H3 layer.
Fix: Group related H2s under broader H2s, demoting the inner ones to H3. A 30-H2 page reads as a flat list of equal-weight topics; structure matters more than count.
Structure changes between fetches
Cause: CMS A/B test, dynamic content, or you edited the page between extractions.
Fix: Re-run extraction. If the structure is genuinely changing per request (rare), pin the variant in the CMS or set a feature flag.
Original data from our 2026 outline study
What we observed across 4,000 random URLs run through bulk extraction.
Frequently asked questions
Twelve answers covering the most-asked questions about bulk outline extraction.
Related free tools
Other utilities that pair well with the Heading Structure Extractor.
H1, H2, H3 Heading Checker
Single-URL deep audit with auto-flagged issues.
Try itH1 Tag Checker
A focused single-URL H1 verification.
Try itHeader Tag Generator
Generate optimized H1/H2/H3 outlines for new posts.
Try itMeta Tag Generator
Pair good outlines with strong title and description tags.
Try itSERP Snippet Preview
See how your title and description render in Google.
Try itOpen Graph Checker
Audit social meta tags alongside heading structure.
Try itAudit a batch of URLs right now
Paste your top 5 organic pages and 5 competitors. See the diff. Free, unlimited, no signup.
Try the Heading Structure Extractor