AEO Toolkit

AEO audit, Nov 8, 2026 and Nov 8, 2026

Made with AEO Toolkit

Sample report · real audit · no sign-up

AEO audit report for advancelabs.dev

We ran our own free audit on advancelabs.dev, the studio site behind AEO Toolkit. It scored 86/100, grade B, with 8 rules failing. We fixed what it listed and ran it again: 100/100, grade A. Both runs are frozen below, so you can read the output, and the work it produced, before you run one on your site.

Before and after

86, then 92, then 99, then 100. Each score is a saved run of the same audit on the same site, in the order we ran them.

  1. First run / Nov 8, 2026

    86/100, grade B

    8 of 44 rules failing

  2. Run 2 / Nov 8, 2026

    92/100, grade A

    5 of 44 rules failing, 3 fixed since the last run

    Social images, dates and an author. Pages that set their own social tags had dropped the site-wide og:image, so every page now carries one. The home, careers and capabilities pages gained a modified date, and the case studies became dated articles with a named author, placed where a 25-page crawl reaches them.

  3. Run 3 / Nov 8, 2026

    99/100, grade A

    1 of 44 rules failing, 4 fixed since the last run

    Lengths, thin pages and heading order. Page titles now run 30 to 60 characters and descriptions 70 to 160 on every audited page. The work and careers pages gained real text, and the capability cards moved under the page heading so the outline reads in order.

  4. Run 4 / Nov 8, 2026

    100/100, grade A

    0 of 44 rules failing, 1 fixed since the last run

    A bug in the audit itself. The last failure was not on the site. The crawler fetched our home page twice. We fixed that in the crawler (0.2.4 to 0.2.6) and the site did not change for this step.

Your next three fixes

This is the work list the first run handed us, ranked by severity, then rule weight, then how many pages each rule touches. It is what your report opens with. Each one is marked with what we did.

  1. Fix 1

    Fixed

    Article and author schema are present

    Page
    Site-wide
    Rule
    aeo.article-author-schema
    Fix
    Add Article JSON-LD with an author of type Person.
    What we changed
    Case studies are now dated articles with a named author, and they sit where a 25-page crawl reaches them.
  2. Fix 2

    Fixed

    Content declares a modification date

    Page
    Site-wide
    Rule
    aeo.content-freshness
    Fix
    Add dateModified (or datePublished) in ISO 8601 to your Article/WebPage JSON-LD.
    What we changed
    The home, careers and capabilities pages now declare when they were last modified, and the case study dates are readable by the audit.
  3. Fix 3

    Fixed

    OpenGraph tags are complete

    Page
    /services/ai-visibility and 17 more
    Rule
    tech.open-graph-complete
    Fix
    Add og:title, og:description, og:image, and og:url.
    What we changed
    Every page that set its own social tags had lost the site-wide og:image. Each one now carries it, and a test fails if a page sets social tags without an image.

All findings, before

8 of 44 rules failed in the first run (Nov 8, 2026), grouped by area.8 of them pass in the latest run.

Indexing

  • Mediumtech.unique-titles

    Titles are unique across pages

    Page
    Site-wide
    Why it matters
    Duplicate titles dilute relevance and confuse engines. 1 duplicated title(s).
    Fix
    Give each page a distinct <title>.

Metadata

  • Mediumtech.meta-title-length

    Title length is 30–60 characters

    Page
    /services and 6 more
    Why it matters
    Titles outside this range get truncated or look thin in results.
    Fix
    Aim for 30–60 characters in each <title>.
  • Lowtech.meta-description-length

    Description length is 70–160 characters

    Page
    / (home page) and 14 more
    Why it matters
    Descriptions outside this range get truncated or look incomplete.
    Fix
    Aim for 70–160 characters per description.
  • Lowtech.heading-hierarchy

    Heading hierarchy is valid

    Page
    /capabilities
    Why it matters
    Headings should descend without skipping levels (h1→h2→h3).
    Fix
    Avoid jumping heading levels; keep a logical outline.

Content

  • Mediumtech.content-not-thin

    Pages are not thin on content

    Page
    /work and 1 more
    Why it matters
    Very low word counts read as thin content to engines. 2 thin page(s).
    Fix
    Expand pages under ~200 words with substantive content.

Social

  • Mediumtech.open-graph-complete

    OpenGraph tags are complete

    Page
    /services/ai-visibility and 17 more
    Why it matters
    Complete OG tags control how links render when shared.
    Fix
    Add og:title, og:description, og:image, and og:url.

Answer Engine Optimization

  • Mediumaeo.article-author-schema

    Article and author schema are present

    Page
    Site-wide
    Why it matters
    Article + Person markup attributes content for E-E-A-T and citation. Article: no, Author/Person: yes.
    Fix
    Add Article JSON-LD with an author of type Person.
  • Mediumaeo.content-freshness

    Content declares a modification date

    Page
    Site-wide
    Why it matters
    A parseable dateModified gives engines a reason to cite the page over undated competitors. No dateModified or datePublished found on Article/WebPage structured data.
    Fix
    Add dateModified (or datePublished) in ISO 8601 to your Article/WebPage JSON-LD.

The result, after

100/100, grade A, from 25 crawled pages on Nov 8, 2026. All 44 rules pass, so a fresh report has no fix list to queue. A clean score only means the rules we check are met, and it moves when the rules or the crawler change. The next audit of your own site starts from the list above, not from here.

What else we checked

36 rules passed in both runs. Nothing was ever wrong on these.

Crawlability

  • robots.txt is present
  • XML sitemap is present
  • Sitemap lists the pages we found
  • Sitemap lastmod dates are trustworthy
  • No redirect loops
  • llms.txt is present
  • No broken (4xx/5xx) pages
  • Redirect chains are short

Indexing

  • Pages are indexable (no accidental noindex)
  • Canonical URL is declared
  • Canonical URLs point somewhere real
  • hreflang annotations are valid

Metadata

  • Pages have a title tag
  • Pages have a meta description
  • Each page has exactly one H1
  • Page language is declared
  • Character encoding is declared

Content

  • Image alt-text coverage is above 80%
  • Pages link internally
  • Pages use headings to structure content

Structured Data

  • Structured data is present
  • Structured data has no invalid items

Social

  • Twitter Card is declared

Mobile

  • Pages declare a mobile viewport

Security

  • Site is served over HTTPS

Answer Engine Optimization

  • FAQ or QA schema is present
  • Content is in the HTML without running JavaScript
  • Content uses question-shaped headings
  • Content is answerable (sufficient depth + lists)
  • Organization schema is present
  • Organization identity is consistent across pages
  • AI crawlers are not blocked
  • llms.txt is present for answer engines
  • Content has structured, extractable answers
  • Breadcrumb structured data is present
  • Content is extractable (paragraphs + lists/tables)

How this report was made

Tier
Free web audit, the one at /tools/audit
Rules checked
44 (31 technical SEO, 13 answer engine). The separate E-E-A-T scan is not part of this count.
Run dates
Nov 8, 2026 (first run) and Nov 8, 2026 (latest), both UTC
Method
Crawled up to 25 pages from https://advancelabs.dev, following the sitemap and respecting robots.txt, then scored 25 pages against the published rules. Both runs are frozen: this page does not re-run the audit, and the first run is never refreshed.
Engine
Latest run: @advance-labs/scoring 0.4.1, crawler 0.2.7, html-parser 0.3.2, schema-validator 0.2.6. First run: scoring 0.3.1, crawler 0.2.4, html-parser 0.3.0, schema-validator 0.2.5