Made with AEO Toolkit
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.
86/100, grade B
8 of 44 rules failing
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.
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.
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.
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.
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.
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
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
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>.
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.
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
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
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
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.
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