Heading Structure
heading_structureAudit a page's heading outline to detect multiple H1s, skipped levels, empty tags, and question-based headings, improving SEO and featured snippet visibility.
Instructions
Extract the full h1–h6 outline and evaluate it: how many h1s, whether levels are skipped (h2 followed by h4), empty heading tags, and how many headings are phrased as questions — the last being a strong signal for featured snippets and AI citations.
Args:
url (string): the page to check.
response_format ('markdown' | 'json'): output format (default 'markdown').
Returns: { headings[{level, text, skips_level}], h1_count, h1_text[], level_skips, empty_headings, question_headings[], outline, score, grade, findings[] }.
Example: "Show me the heading outline of https://example.com/guide" -> heading_structure(url="https://example.com/guide").
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page URL to analyse, e.g. 'https://example.com/blog/post'. The scheme defaults to https://. | |
| response_format | No | Output format: 'markdown' for a human-readable summary (default) or 'json' for the full structured payload. | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| grade | Yes | ||
| score | Yes | ||
| h1_text | Yes | ||
| outline | Yes | ||
| findings | Yes | ||
| h1_count | Yes | ||
| headings | Yes | ||
| final_url | Yes | ||
| level_skips | Yes | ||
| empty_headings | Yes | ||
| question_headings | Yes |