SEO, AEO and GEO: Making a Site Readable to Search Engines and AI Answer Engines
Search used to mean ten blue links. Today a question can be answered by a search engine, by a summary above the results, or by an AI assistant that never shows a list at all. A site that wants to be found has to be readable to all three. The three abbreviations people use for this are simple once you strip the jargon.
- SEO (search engine optimisation): help search engines find, understand and rank your pages.
- AEO (answer engine optimisation): make your content easy to quote as a direct answer.
- GEO (generative engine optimisation): make your content easy for AI systems to read, trust and attribute.
I rebuilt my own portfolio with all three in mind. Here is what actually went in, and what I would tell a friend doing the same.
Start with content a person can understand
No technical setting rescues a page that says nothing clear. Each page should answer one question in plain words: who this is, what the project does, what the article covers. Short headings that read like the questions people ask help both humans and machines. Everything below only makes good content easier to find; it does not replace it.
Tell machines what the page is
Structured data (JSON-LD) is a small block of text that says, in a format every engine understands, "this page is a person", "this is an article", "this is a list of questions and answers". On this site the home page describes me as a person with a role and links to my profiles. Articles are marked as articles, project pages as creative works, and the About page carries a short FAQ. It costs a few lines per page and removes guesswork for the crawler.
Make the basics boring and correct
- One address per page. A canonical link says which URL is the real one, so the same page is never counted twice.
- Two languages, declared. With an Indonesian and an English version,
hreflangtells search engines which version belongs to which reader, so people see their own language. - A real sitemap. It lists every page and every language version, and updates itself when I publish something new.
- A clean robots.txt. It says what may be crawled and points to the sitemap. Admin pages stay out.
- Speed and mobile. A slow or broken phone layout hurts people first and rankings second. Image sizes, self-hosted fonts and lazy loading did more for this than any clever trick.
Speak to AI systems directly
Two plain text files are becoming common for this. llms.txt is a short, readable summary of the site for language models, with links to the most useful pages. ai.txt states how AI crawlers may use the content, for example with attribution. I added both, plus a longer version of the summary, and listed the major AI crawlers in robots.txt so the rules are explicit.
An honest note: these files are conventions, not guarantees. No major platform has promised to rank or quote a site because of them. I treat them as cheap, harmless and clear, not as a switch.
What no setup can promise
None of this guarantees a position in search or a mention in an AI answer. Indexing can take days or weeks, rankings depend on competition and on whether other sites link to you, and AI systems decide for themselves what to quote. What you can control is that nothing technical stands in the way: pages load fast, say what they are, exist in the right language and can be crawled. After that it is about being worth quoting.
A small checklist
- Every page answers one clear question.
- Structured data on the home, article and project pages.
- Canonical links and
hreflangif you have more than one language. - Sitemap and robots.txt that are correct and current.
- Fast on a phone, with sensible image sizes.
- Verified in Search Console, sitemap submitted, key pages requested for indexing.
- Optionally
llms.txtandai.txt, without expecting miracles.
If you do only the first and the last two, you are already ahead of most sites.