Structural & Semantic Integrity
Structural checks evaluate your HTML hierarchy, Schema.org implementation, semantic markup, and content organization. Well-structured content helps AI systems understand relationships and extract information accurately.
Describe the page accurately: Schema.org markup helps search engines understand your business and your pages, and it has to match what visitors can see (the Markup Matches Page check). A citation benefit from any one schema type is unproven. Checks marked Unproven are shown in your report but not scored.
HTML Structure Checks
Proper HTML structure helps AI parse and understand content hierarchy
Heading Hierarchy
High
What It Checks
Verifies proper H1-H6 structure including: single H1 per page, no skipped heading levels, and logical hierarchy from H1 through H6.
Why It's Important
Clear heading hierarchy helps AI understand content structure and importance. It enables better content chunking, topic identification, and section extraction for answers.
Scoring Method
100 points for perfect hierarchy. -30 for H1 issues (missing, multiple, wrong level). -10 per hierarchy problem (skipped levels).
Pass: Single H1 + proper hierarchy
Warning: Minor issues
Fail: Multiple H1 or major issues
How To Fix
Use exactly one H1 for the main title. Use H2 for major sections, H3 for subsections, and so on. Never skip levels (e.g., H1 to H3).
Correct Structure Example
<h1>Complete Guide to AI Engine Optimization</h1>
<h2>What is AEO?</h2>
<h3>Definition</h3>
<h3>History</h3>
<h2>How to Implement AEO</h2>
<h3>Step 1: Technical Foundation</h3>
<h3>Step 2: Content Optimization</h3>
<h4>Writing for AI</h4>
<h4>Structured Data</h4>
<h2>Conclusion</h2>
Semantic HTML5
Medium
What It Checks
Analyzes usage of semantic HTML5 tags: <article>, <section>, <nav>, <main>, <aside>, <header>, <footer>, <figure>, <figcaption>, <time>, <address>.
Why It's Important
Semantic HTML provides meaning beyond presentation, helping AI understand content roles and relationships. It distinguishes main content from navigation, sidebars, and supplementary information.
Scoring Method
Based on semantic ratio (semantic tags vs div/span) and variety of tags used. 30%+ ratio = excellent, 15%+ = good, 5%+ = needs improvement.
Excellent: 6+ semantic tags
Good: 4-5 tags
Pass: 2-3 tags
Fail: <2 tags
How To Fix
Replace generic divs with semantic tags. Use <main> for primary content, <article> for self-contained content, <section> for thematic groupings.
Implementation Example
<body>
<header>
<nav>...navigation...</nav>
</header>
<main>
<article>
<header>
<h1>Article Title</h1>
<time datetime="2024-01-15">January 15, 2024</time>
</header>
<section>
<h2>Section Title</h2>
<p>Content...</p>
</section>
<figure>
<img src="image.jpg" alt="Description">
<figcaption>Image caption</figcaption>
</figure>
</article>
<aside>
<h2>Related Articles</h2>
...
</aside>
</main>
<footer>
<address>Contact information</address>
</footer>
</body>
Text-to-Tag Ratio
Unproven · not scored
What It Checks
Calculates the ratio of visible text content to HTML markup code. Optimal ratio indicates content-focused pages.
Why It's Important
Compares the amount of readable text with the amount of code. No ideal ratio has been shown to matter for search or AI answers, so this is shown for information and does not count in your score.
Scoring Method
100 points for 25-70% ratio, 75 for acceptable (20-25% or 70-80%), 50 for poor (<20% or >80%).
Optimal: 25-70%
Acceptable: 20-75%
Poor: <20% or >80%
How To Fix
If ratio is low: add more content, reduce excessive markup. If too high: add proper HTML structure, break up text walls with formatting.
Lists and Tables
Low
What It Checks
Detects presence of <ul>, <ol>, <dl> lists and properly structured <table> elements with <thead>, <tbody>, and <th> headers.
Why It's Important
Structured data formats are easier for AI to parse and present in responses. Lists and tables are ideal for step-by-step instructions, comparisons, and data presentation.
Scoring Method
Base 50 + 25 for lists + 15 for tables + 10 for proper table structure (thead/tbody/th).
Good: Lists + tables
Pass: Either lists or tables
Fail: Neither
How To Fix
Use <ul> for unordered items, <ol> for sequential steps, <dl> for definitions. Tables should have <thead>, <tbody>, and <th> for headers.
Schema.org Structured Data
Machine-readable markup that explicitly defines content meaning
Structured Data (Schema.org)
High
What It Checks
Validates presence and correctness of JSON-LD structured data, including proper @context, @type, and support for @graph structures.
Why It's Important
Structured data gives search engines explicit labels for your business and page, so they do not have to guess. It aids understanding; an AI citation boost is unproven. Keep it in step with the visible page (see Markup Matches Page below).
Scoring Method
0 if none, 50 for any schema, 70 for valid schemas, 85-100 for priority schemas (FAQPage, HowTo, Article).
Excellent: Priority schemas
Good: Valid schemas
Pass: Any schema
Fail: None
How To Fix
Add JSON-LD structured data to your pages. Start with WebSite and Organization schemas, then add content-specific schemas.
Markup Matches Page
High
What It Checks
Compares the names, prices, headlines, authors and dates in your JSON-LD with the visible text of the page. It reads the top-level entities only: the name of an Organization or LocalBusiness (a logo's alt text counts), the name and price of a Product (any offer price shown passes), and the headline, every author and the publication date of an Article, NewsArticle or BlogPosting. Prices match in any common format and dates by day in the usual written forms or a time element.
Why It's Important
Google requires structured data to describe what visitors can see. When a CMS fills the markup and the page from different fields, the markup can name one price or author and the page another, and search engines may ignore the markup or treat it as misleading.
Scoring Method
100 when every value found in the markup also appears on the page. Otherwise the score is the share of values that do, and the check fails (High when a price differs, otherwise Medium).
Pass: every compared value is on the page
Fail: a name, price, headline, author or date is not on the page
N/A: no Organization, Product or Article markup to compare
How To Fix
Generate the JSON-LD from the same CMS fields as the visible text. Correct each value the report lists, and remove markup for anything the page does not show.
FAQ Schema
Unproven · not scored
What It Checks
Validates FAQPage JSON-LD structured data with Question and acceptedAnswer pairs in the mainEntity array.
Why It's Important
Google no longer shows FAQ rich results, and no AI citation benefit is proven. Shown for information on pages with a visible FAQ; it does not count in your score.
Scoring Method
N/A when the page has no FAQ: with neither FAQPage markup nor visible FAQ content the check is shown as N/A and left out of the score. Otherwise, FAQPage markup with Question/Answer pairs starts at 60, +20 for 3+ pairs, +10 for 5+ pairs, +10 with no issues, and -5 per issue (missing question, missing or very short answer). Visible FAQ content without markup scores 30. FAQPage markup with no valid Question items scores 0. Passes at 40 or more.
Excellent: 5+ complete Q&A pairs
Pass: 40+
Fail: FAQ content without valid markup
N/A: no FAQ on the page
How To Fix
Add FAQPage JSON-LD with mainEntity array containing Question/acceptedAnswer pairs for each FAQ item.
Implementation Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is AI Engine Optimization?",
"acceptedAnswer": {
"@type": "Answer",
"text": "AI Engine Optimization (AEO) is the practice of optimizing web content to be better understood, indexed, and cited by AI systems like ChatGPT, Claude, and Perplexity."
}
},
{
"@type": "Question",
"name": "How does AEO differ from SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "While SEO focuses on ranking in search results, AEO focuses on being accurately understood and cited by AI systems that generate answers."
}
}
]
}
</script>
HowTo Schema
Unproven · not scored
What It Checks
Validates HowTo JSON-LD structured data with step array containing HowToStep objects, optional supplies and tools.
Why It's Important
Google no longer shows HowTo results, and no AI benefit is proven. Shown for information on pages with step-by-step instructions; it does not count in your score.
Scoring Method
N/A when the page has no step-by-step content: with neither HowTo markup nor visible steps the check is shown as N/A and left out of the score. Otherwise, HowTo markup with HowToStep items starts at 60, +20 for 3+ steps, +10 for 5+ steps, +10 with no issues, and -5 per issue (missing or very short step text). Visible steps without markup score 30. HowTo markup without HowToStep items (an empty or text-only step list) scores 0. Passes at 40 or more.
Excellent: 5+ complete steps
Pass: 40+
Fail: steps without valid markup
N/A: no step-by-step content
How To Fix
Add HowTo JSON-LD with step array containing HowToStep objects. Include name, text, and optionally image for each step.
Implementation Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Implement Schema.org Markup",
"description": "A step-by-step guide to adding structured data to your website.",
"totalTime": "PT30M",
"step": [
{
"@type": "HowToStep",
"name": "Choose Schema Type",
"text": "Identify the most appropriate schema type for your content.",
"position": 1
},
{
"@type": "HowToStep",
"name": "Create JSON-LD",
"text": "Write the JSON-LD markup following schema.org specifications.",
"position": 2
},
{
"@type": "HowToStep",
"name": "Test and Validate",
"text": "Use Google's Rich Results Test to validate your markup.",
"position": 3
}
]
}
</script>
Article Schema Completeness
Medium
What It Checks
Validates Article/NewsArticle/BlogPosting schema with author, datePublished, dateModified, and publisher properties.
Why It's Important
Complete article metadata helps AI systems assess content freshness, authority (via author), and source credibility (via publisher).
Scoring Method
N/A on pages that are not articles: with no Article markup and no article content the check is shown as N/A and left out of the score. Article markup (Article, NewsArticle, BlogPosting, TechArticle, ScholarlyArticle) starts at 40, +15 each for headline, author and datePublished, +5 each for image, publisher and dateModified. An article page without markup scores 20 and fails.
Excellent: all six properties
Partial: markup missing required properties
Fail: article without markup
N/A: not an article
How To Fix
Add Article schema with author (Person), datePublished, dateModified, and publisher (Organization) properties.
BreadcrumbList Schema
Low
What It Checks
Validates BreadcrumbList JSON-LD for navigation hierarchy with itemListElement array of ListItem objects.
Why It's Important
Breadcrumb schema helps AI understand site structure and page hierarchy, improving context for content understanding.
Scoring Method
100 for valid BreadcrumbList, 0 if missing.
Pass: Valid BreadcrumbList
Fail: Missing
How To Fix
Add BreadcrumbList JSON-LD with itemListElement array containing ListItem objects with position, name, and item (URL).
LocalBusiness Schema
High (for local)
What It Checks
Validates LocalBusiness schema with NAP (Name, Address, Phone), opening hours, and geo coordinates.
Why It's Important
LocalBusiness schema is critical for local SEO and location-based AI queries. AI assistants use this data to provide accurate business information.
Scoring Method
100 for complete NAP + hours + geo, 70 for NAP only, 0 if missing (for local businesses).
Excellent: NAP + hours + geo
Good: NAP only
Fail: Missing
How To Fix
Add LocalBusiness JSON-LD with name, address (PostalAddress), telephone, openingHours, and geo (GeoCoordinates).
Product Schema
High (for e-commerce)
What It Checks
Validates Product schema with name, description, offers (price), reviews, and brand information.
Why It's Important
Product schema enables rich snippets and helps AI systems understand e-commerce content for product-related queries.
Scoring Method
100 for Product + Offer + AggregateRating, 70 for Product + Offer, 50 for Product only.
Excellent: Complete product data
Good: Product + price
Pass: Basic product
How To Fix
Add Product JSON-LD with name, description, offers (Offer), aggregateRating, and brand properties.
Content Structure Checks
How content is organized for AI extraction
Question-Based Headings
Unproven · not scored
What It Checks
Identifies headings formatted as questions (what, how, why, when, where, who) in English, Italian, French, and Spanish.
Why It's Important
Question headings help when they match what your customers really ask; a higher share of them is not proven to help. Shown for information; it does not count in your score.
Scoring Method
Based on percentage of question headings. 50% questions = 100 points.
Excellent: >40%
Good: 20-40%
Pass: 10-20%
Fail: <10%
How To Fix
Convert statement headings to questions: "Benefits of AEO" becomes "What are the benefits of AEO?"
Content Chunkability
Medium
What It Checks
Evaluates clear content sections with headings and appropriate paragraph lengths (50-500 chars ideal, 50-300 for paragraphs).
Why It's Important
Well-chunked content allows AI to extract specific information segments accurately. RAG systems work best with clearly delineated content chunks.
Scoring Method
Based on percentage of well-structured sections and optimal paragraph lengths. Penalties for very long or very short paragraphs.
Excellent: >80% good chunks
Good: 60-80%
Pass: 40-60%
Fail: <40%
How To Fix
Break content into sections with clear headings. Keep paragraphs to 2-4 sentences (50-200 characters ideal). One idea per paragraph.
Accessibility Checks
Accessibility features that also benefit AI comprehension
ARIA Landmarks
Medium
What It Checks
Detects ARIA landmark roles: main, navigation, banner, contentinfo, complementary, search, form.
Why It's Important
ARIA landmarks improve accessibility and help AI understand page structure semantically, distinguishing content areas.
Scoring Method
20 points per landmark type (max 100 for 5+ landmarks).
Excellent: 5+ landmarks
Good: 3-4 landmarks
Pass: 1-2 landmarks
Fail: None
How To Fix
Add role attributes: role="main", role="navigation", role="banner", role="contentinfo" to appropriate elements.
Table Accessibility
Medium
What It Checks
Validates table elements with proper headers (<th>), <caption>, and scope attributes for header cells.
Why It's Important
Accessible tables help AI extract and understand tabular data correctly, associating headers with data cells.
Scoring Method
100 for th + caption + scope, 70 for th only, 50 for basic table.
Excellent: Full accessibility
Good: Headers present
Pass: Basic table
How To Fix
Use <th> for header cells with scope="col" or scope="row". Add <caption> to describe the table.
Skip Links
Low
What It Checks
Detects skip navigation links that allow users to jump directly to main content.
Why It's Important
Skip links improve navigation for screen readers and indicate well-structured content with clear main content identification.
Scoring Method
100 for skip link present, 0 if missing.
Pass: Skip link present
Fail: Missing
How To Fix
Add a skip link at the beginning of the page: <a href="#main-content" class="skip-link">Skip to main content</a>
Microdata/RDFa Detection
Low
What It Checks
Detects alternative structured data formats: Microdata (itemscope, itemprop) and RDFa (typeof, property) attributes.
Why It's Important
Microdata and RDFa provide additional semantic markup that AI can extract. They complement JSON-LD by marking up content inline.
Scoring Method
100 for valid microdata/RDFa, bonus if combined with JSON-LD.
Excellent: JSON-LD + microdata
Good: Either format
Fail: None
How To Fix
Add itemscope, itemtype, and itemprop attributes to HTML elements, or RDFa typeof and property attributes.