We build a tool that scores how visible a web page is to search engines and AI: ChatGPT, Claude, Perplexity, and Google's AI overviews. So before we asked anyone else to run it, we pointed it at our own marketing site.
It scored 65 out of 100. "Needs work." Our generative-engine score was a 53, a flat "Poor." That stung a little. It was also the best possible thing that could have happened, because it gave us a real before-and-after to share. Here is the whole teardown.
The before picture
One scan grades four channels. Here is where pageclimber.co started on June 23, 2026:
| Channel | Score | Grade |
|---|---|---|
| SEO (classic search) | 82 | Good |
| AEO (AI answer engines) | 61 | Needs work |
| GEO (generative engines) | 53 | Poor |
| Overall | 65 | Needs work |
The scanner liked our fundamentals: a clean title, a real meta description, a single H1, HTTPS, fast load. But it flagged 13 issues. The pattern was unmistakable. Our traditional SEO was fine, and everything AI-facing was missing.
A quick vocabulary check
Two of those acronyms are newer than SEO, so here are working definitions:
- AEO: Answer Engine Optimization
- Making a page easy for AI answer engines (ChatGPT, Perplexity) to extract and cite: clear structure, schema markup, an
llms.txtfile, and obvious authorship. - GEO: Generative Engine Optimization
- Making a page worth quoting when a generative engine writes an answer: trustworthy entity signals (E-E-A-T), citable facts and statistics, and links to authoritative sources.
What it found
The 13 issues sorted into two buckets. The first was technical: missing machine-readable signals.
- No structured data. Zero Schema.org JSON-LD on the page. No Organization, no WebSite, nothing for an AI engine to anchor to.
- No
llms.txt. We literally sell anllms.txtgenerator and didn't have one ourselves. - No
robots.txtor sitemap. Both returned 404. - No canonical URL and a broken Open Graph image (a relative-path SVG, which most social platforms won't render).
- Four images missing alt text.
The second bucket was content credibility: no author attribution, no E-E-A-T signals, no outbound links to authoritative sources, and "low quotability," meaning the page lacked citable data or definitions. Hold that thought.
What we fixed
The technical bucket is mostly mechanical, and we did all of it in an afternoon. In order:
- Added Schema.org JSON-LD (
Organization,WebSite, andSoftwareApplicationentities), following the schema.org Organization spec. Our five free tool pages gotWebApplicationandBreadcrumbListmarkup too. - Shipped a real llms.txt at the site root, generated the same way our tool generates one for customers.
- Added a
robots.txtthat explicitly welcomes AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) and points to a new dynamic XML sitemap. - Added canonical URLs sitewide and rebuilt the Open Graph tags: absolute URLs, a proper 1200×630 image, and Twitter
summary_large_imagecards. - Wrote descriptive alt text for every image.
The after picture
We re-scanned the same URL the moment the changes went live. Same scanner, same page, a few hours apart:
| Channel | Before | After | Change |
|---|---|---|---|
| SEO | 82 | 100 | +18 |
| AEO | 61 | 86 | +25 |
| GEO | 53 | 68 | +15 |
| Overall | 65 | 84 | +19 |
The "what's working" list doubled from 8 green checks to 16. Open issues dropped from 13 to 7. SEO hit a perfect 100. Total hands-on time: about an afternoon, no new content written.
What's left, and why this blog exists
Here's the honest part. We did not get to 100 overall, and we won't with markup alone. Every one of the 7 remaining issues is about content credibility, not code:
- No E-E-A-T signals: no named, credentialed authors.
- No author or entity attribution, so nothing for an AI engine to attribute a claim to.
- No outbound links to authoritative sources.
- Low quotability: no original data or statistics worth citing.
- No freshness signal, no structured lists, no
sameAsprofile links.
You cannot fix those with a JSON-LD block. You fix them by publishing: real articles, by named people, with dates, citations, and numbers other people want to quote. Which is the entire reason this post exists.
This is post #1. It has a named author with a bio, a publish date, outbound links to primary sources, and a pile of original numbers (65 to 84, +25 on AEO). In other words, the article documenting how we fixed our AEO and GEO gaps is itself one of the fixes. We'll keep scanning, keep publishing, and report the climb as it happens.
Want to see how your own site reads to AI? Start with our free tools below. No account needed.