We Built an SEO, GEO and AEO Skill for AI Agents, Then Audited Our Own Website With It Using Claude
MSIXV ยท 2026-10-26 12:00:00
An SEO, GEO and AEO audit checks three things: whether search engines can find and understand your pages, whether answer boxes can lift a clear answer from them, and whether AI assistants can read them well enough to cite you.
We wrote an AI agent skill that tells an agent how to run that audit in a fixed order, then had Claude run it on our own website, msixv.com. The audit found real problems, including six pages that looked fine in a browser but had no text in the HTML a crawler receives before it runs any JavaScript.
A page can look perfect to you and be empty to a crawler that skips JavaScript.
Six of ours were.
This is what the skill is, how we used it, what it found, and what we are still unable to tell you.
What are SEO, GEO and AEO?
They are three ways of being found, and they share one foundation.
- SEO (search engine optimization) is ranking in classic search results on Google and Bing.
- AEO (answer engine optimization) is winning the featured snippet, the "People also ask" box and the spoken answer, by answering a question directly.
- GEO (generative engine optimization) is being mentioned and cited inside answers from AI assistants such as ChatGPT, Claude, Perplexity and Gemini.
The foundation is the same for all three: pages a crawler can read, a clear statement of who you are, direct answers, and facts someone can check. Fix that first, and the rest builds on it.
What is an AI agent skill, and what is in ours?
A skill is a folder of written instructions that an AI coding agent such as Claude Code loads when a task matches it. Ours is one main file of about 15 KB plus a small library of ready-to-use prompts. It does two jobs.
The skill is plain written instructions in ordinary text files, so any AI agent that can read instructions and run commands such as curl can follow the same steps. We used it with Claude, and as of now, have not tested it with other tools.
First, it sets the order of work. Crawlability and indexing come first: can a crawler get real content, is anything blocked by accident, do the redirects, canonical addresses and sitemap agree. Only then does it move on to speed, on-page basics, search intent, structured data, answer formatting, AI visibility and measurement. There is no point polishing a title on a page nobody can read.
Second, it sets rules for honesty. These matter more than the checklist:
- Say what you observed and what you inferred. Every finding has to name the file, page or command behind it.
- Never invent numbers. No made-up rankings, traffic, search volumes or speed scores. If the data is not there, the skill names the tool that would produce it.
- No guarantees. Nobody can promise a ranking or an AI citation, so the work is framed as making a site easier to find and understand.
- Label unproven tactics. Some popular advice has no confirmed effect, and the skill has to say so.
- No spam. No keyword stuffing, hidden text, fake reviews or mass-produced filler.
How did we audit msixv.com?
We started with what a crawler actually receives, not what a browser shows. Our site is built with React, which can look complete on screen while sending crawlers an empty shell, so we fetched the raw HTML with curl as a search crawler would.
- We checked the status and redirects for the home page, the
wwwaddress and the plainhttpaddress. - We read
robots.txtand the sitemap. - We requested a page that should not exist, to see whether the site returns a proper "not found".
- We fetched every one of the 46 addresses in the sitemap and recorded each page's status, title and description length, canonical address, number of H1 headings, word count and structured-data types.
- We read the home page's structured data and a blog post's.
Let us first mention what was good. Every page returned 200, every page had a canonical address that pointed at itself, www and http redirected to the right place, and the home page carried structured data describing the company.
What did the audit find?
- Six pages had no text in their raw HTML. Our terms, privacy, cookie, support and two games legal pages sent back no text at all: no H1, and between 6 and 10 words each. They looked normal in a browser because the browser ran our JavaScript. A crawler that does not run JavaScript saw nothing, and as far as we know that includes many AI crawlers.
- Several descriptions were wrong. One portfolio page had no description. Others were under 80 characters, or over 170, which search results tend to cut off.
- Many pages were thin. Project pages held about 30 words, and a few listing pages held fewer than 100.
- The home title was too long. At 77 characters, it would be cut off in results.
- The sitemap had no dates, and listed a page it should not. None of the 46 entries carried a last-modified date, and it listed our browser-playable 3D Sudoku build, which is a separate app with no canonical address and the home page's title.
- Unknown addresses returned 200. A made-up URL came back as a normal page instead of a 404.
- There was no About page. Nowhere on the site stated plainly what M6V is, who it works with and who is behind it. The skill treats a plain "what we are, who we serve, where" statement as the foundation for being described accurately.
We then checked what Google did with them, using Search Console's URL Inspection, which describes the site before our fixes. Google does run JavaScript, so the damage there was smaller than the raw HTML suggests. Four of the six pages (terms, privacy and the two games legal pages) were indexed, and Google's stored copy of the terms page contained its full text. The other two were not: the cookie page had been discovered but never crawled, and the support page had been crawled but Google treated it as a duplicate of our games page. We cannot say for certain why, though a page with little text in its HTML is a plausible reason. So the empty HTML was a real problem for crawlers that do not run JavaScript, and a possible one for the two pages Google skipped, but it did not keep Google away from the rest.
What did we fix?
- Baked the six pages. Rather than copy the legal text somewhere else, our build now renders the real page components and saves their text into the HTML. If we edit a page, the baked copy follows the next time we build. The six pages now carry between about 260 and 740 words each, with a single H1.
- Wrote an About page that says who we are, what we do and where to read more, using only facts already published on the site.
- Shortened the home title to 56 characters.
- Took the 3D Sudoku web build out of the sitemap, so the sitemap lists only pages that are meant to be found.
- Cleaned up the structured data and our
llms.txtfile, which is a plain-text summary of the site for AI tools. It is an unproven convention, so we treat it as harmless rather than as a lever.
Checking in a real browser also caught something the crawler checks could not: our blog articles were showing "Article Not Found" after the page loaded, because one response from our server came back empty. We changed the page to say "Couldn't load this article" with a Try again button, so a failed request no longer looks like a missing page.
What did we not measure?
This is the part most write-ups skip. We did not measure Core Web Vitals (Search Console has no data for our site), and we did not study backlinks or off-site profiles.
What we do have is a baseline from Search Console for the 90 days up to 24 October, before our fixes went live: very few clicks, 96 impressions and an average position of 13.2. Of the 69 pages Google knew about, 27 were indexed. The biggest query it listed was "m6v" with 36 impressions, and the others it listed were searches for one client's name.
We cannot yet say whether any of these changes will lift our rankings or get us cited by AI assistants. Treat this as a method, not as proof.
The skill's own plan for measuring AI visibility is simple: ask the same 15 to 30 buyer-style questions in each assistant every month and record whether you are mentioned, linked and described correctly. There is no official dashboard for it.
What did we learn?
Your browser does not show what crawlers see
One of our biggest gaps was invisible on screen. Fetching the raw HTML takes one command and shows what a crawler that does not run JavaScript gets. Do that before you touch a title tag, then check Search Console to see what Google actually made of the page.
Build the crawler's copy from the same source as the page
Copying text into a second place means the two will drift apart. Generating the crawler's copy from the page itself keeps them in step.
Make the AI show its evidence
The most useful part of the skill is not any single check. It is the rule that every finding must name what was checked, and that numbers nobody measured must not appear. That is what makes an AI-written audit something you can act on.
Where can I get the skill?
An SEO audit shouldn't depend on guesswork.
The skill is free and open source on GitHub, released under the MIT License. It works from evidence, such as what a crawler actually receives, and the README has install steps for Claude Code, claude.ai, OpenAI Codex, Gemini CLI and Cursor.
Get the skill on GitHub →The README also lists example requests to start with, and the limits we know about: the skill cannot promise rankings or AI citations, and the AI crawler names it lists should be checked against each vendor's documentation before you edit robots.txt. The install paths and commands come from each vendor's documentation and may change, so the README says to check your tool's current docs if the skill does not load.
Contributions are welcome
If you find something wrong, or a check the audit should include and does not, open an issue. If you have a fix or an improvement, send a pull request. Both are welcome. Please read the README first: it covers how the files are laid out and the one rule for contributions, which is to keep the main instructions file short and put long reference material in a separate file.
Frequently asked questions
What is the difference between SEO and GEO?
SEO aims to rank your page in a list of search results. GEO aims to have your brand named, described correctly and linked inside an AI assistant's written answer. They overlap heavily, because both start with pages that can be read and facts that can be checked.
Does llms.txt help?
As far as we know, the major AI providers have not confirmed that they use it. It costs almost nothing to publish, so we have one, but we would not rely on it.
Does the skill only work with Claude?
No, but Claude is the only tool we have used it with. It is published in the Agent Skills format, and the README has install steps for Claude Code, claude.ai, OpenAI Codex, Gemini CLI and Cursor. It also says that Codex, Gemini CLI and Cursor all read the same shared folder, .agents/skills/. Compatibility differs between tools, and we have not tested those others, so test it in yours.
Can an AI audit my website?
It can do the checking quickly, as long as it can fetch the pages and is held to rules about evidence. It cannot see your Search Console data or your rankings unless you give them to it, and it should say so.
Will this get me to the top of Google?
No honest audit can promise that. What it can do is remove the things that stop search engines and AI assistants from reading and trusting your site.
Questions about the audit?
If you have a question about the skill or about anything in this post, email info@msixv.com. You can read more about us on our About page.