Leggi in italiano →

SEO & AI Search ·

I rebuilt my personal site with AI in mind: what I chose and why

TL;DR

I rebuilt simonebussoni.it around one question: what does a system — Google or an LLM — need in order to understand who I am and cite me? Answer: a coherent entity (one Person node in the JSON-LD, referenced everywhere via @id), citable content with a TL;DR up top, a curated /llms.txt and a clean Markdown version of every page. No CMS, no tracking before consent, 100 on Lighthouse. Entity-first, not keyword-first.

When I decided to rebuild my personal site, the starting question wasn’t “which keywords do I want to rank for?”. It was another one: what does a system — Google, ChatGPT, Perplexity, Claude — need in order to understand who I am and decide to cite me?

That’s a different question, and it leads to different choices. I’ll walk through them here, because this site is its own first case study.

Entity-first, not keyword-first

The SEO I learned in 2008 started from the page: one page, one keyword, one intent. It still works, but it’s half the job. The other half is the entity: who you are, what you can do, who you’re connected to, what you’ve verifiably done.

Generative engines don’t reason in pages, they reason in entities and relationships. If they don’t know who you are, it doesn’t matter how optimised a single page is: they have no reason to trust you enough to cite you.

One Person node, referenced via @id

Every page emits a JSON-LD graph, but the Person node that describes me is defined once, with a stable @id. Every other page — a post, a project page — doesn’t re-declare it: it references it via @id. A crawler aggregating my data finds one consistent “Simone Bussoni”, everywhere. Consistency is trust, and trust is what turns being indexed into being cited.

/llms.txt and the Markdown versions

Two cheap technical details that say a lot: a curated /llms.txt index that explains in three lines who I am and links the key pages, and a clean Markdown version of every page, declared in the head with rel="alternate" type="text/markdown". No navigation, no noise: just the text, the way a model likes it. In robots.txt I then explicitly allow GPTBot, ClaudeBot, PerplexityBot and Google-Extended. The goal isn’t to defend against AIs — it’s to be cited.

The “boring” choices that make it fast

No database CMS (content is files in the repo), no tracking before consent (Consent Mode v2, default denied), and 100 on Lighthouse as a constraint, not a goal. Speed is part of the message: a site that’s slow on performance isn’t credible when it talks about performance.

If the topic interests you, it’s the heart of my SEO & AI Search pillar.