This is a building-in-public log of how we made yameveo.ai citable by ChatGPT, Perplexity, Google AI Mode and Claude. I’m Enrico Aillaud, founder of Yameveo, an AI and cybersecurity engineering firm in Bulgaria. Over one work batch in July 2026 we went through the site and fixed the things that stop an AI engine from understanding who we are and quoting what we say. Below is exactly what we changed, in the order we changed it, and — just as importantly — what we chose not to touch. If you are doing the same thing for your own site, you can copy the approach directly.
What is GEO, and why did we bother?
GEO — generative engine optimization — is making your pages easy for AI answer engines to understand and quote, rather than just rank in a list of blue links. The mechanics differ from classic SEO in two ways that drove every decision here. First, these engines ingest your static HTML, not the page a user sees after JavaScript runs — so anything painted in by JS is often invisible to them. Second, they cite passages: a self-contained sentence that directly answers a question is far more quotable than the same fact buried three paragraphs down.
We bothered for a specific reason. yameveo.ai is a young domain — the company is a 2024 Bulgarian entity — and it does not inherit decades of authority from anywhere. When a new domain has little link authority, being the clearest, best-structured answer to a narrow question is one of the few levers that actually moves. So we treated citability as the goal and structured the whole site around it.
What did we change?
We made five categories of change: structured data, the founder entity, blog packaging, service-page structure, and one embarrassing homepage bug. Here is each one.
1. We added JSON-LD schema across the site
Before this batch, no schema markup was detected on the site at all — which means an AI engine had to infer that Yameveo is an organisation, that Enrico is its founder, and that a blog post is an article by that person. We stopped making it guess. We added JSON-LD for:
- Organization — name, legal name, founding info, founder, address, and a description that states plainly what we do. Crucially it also carries a
memberOf: "Yameveo Group"relation, because there is a separate, affiliated Spanish company also called Yameveo. Two firms with the same name and overlapping history is exactly the situation where an LLM merges them and attributes one’s past to the other. The distinct Organization block — different legal name, different address, different description — is there to keep the two machine-readably separate. - Person on the founder profile page (more on that below) — job title, the firm it works for, education, and a
knowsAboutlist covering AI security, CIAM, SAP Customer Data Cloud, verifiable credentials and blockchain. - Article / BlogPosting on every post — headline, published date, modified date, author pointing at the Person, publisher pointing at the Organization.
- WebPage / WebSite site-wide.
- FAQPage on our seven service pages, as inline microdata attached to their FAQ sections.
The point of schema is not a ranking trick. It is telling the machine, unambiguously, what each thing on the page is, so it can attribute a quote to the right entity.
2. We split the founder into two pages, doing two jobs
We run /enrico as a deliberately minimal digital business card — the target of a QR code and an email signature. It is intentionally thin and carries noindex, and we wanted to keep it that way. But a business card is useless as an entity anchor: an AI engine needs an indexed, substantial page to attach the “Enrico Aillaud” identity to, and every blog byline needs somewhere real to point.
So we made two pages with two jobs. /enrico stays as-is (we only added a “Full profile →” link on it), and a new indexed page at /team/enrico-aillaud/ became the entity anchor. That page carries the Person schema, a full bio — computer engineering background, seven years across SAP Customer Data Cloud, VANTAGE WP5 lead — and it is where every author byline, the Organization’s founder field, and every Article author field now point. One canonical URL for the person, indexed, linked from the About page. Without this, the site’s whole E-E-A-T story was broken because there was no indexable person for the content to hang off.
3. We repackaged blog posts for the “first two paragraphs” rule
The content of our existing posts was fine; the packaging was not. Because answer engines quote passages near the top, we added three things to each post without touching the narrative below:
- A TL;DR callout box — plain styled HTML, not an image, so crawlers read it — that states the whole answer in a few sentences right under the headline. The box you are reading at the top of this post is the same pattern.
- A visible byline linked to
/team/enrico-aillaud/, so the human-readable author matches the schema author. - Published and last-updated dates rendered in the HTML, not just in metadata.
4. We rewrote the service pages around buyer questions
Our service pages used to be a single H1 and one short paragraph — nothing for an engine to quote against a real query. We restructured each of the seven around the same citability pattern: a one-paragraph direct answer (“Yameveo provides X for Y through Z”), then H2s phrased as actual buyer questions, each one answered in its first sentence, then a short FAQ carrying FAQPage schema. A question phrased the way a person would type it into ChatGPT, answered immediately below it, is the single most quotable unit on the page.
5. We fixed the homepage counters — which were literally telling crawlers we had zero projects
This was the one that stung. The homepage stats counters rendered as “0” in the static HTML; the real numbers only appeared through a JavaScript count-up animation. So an AI crawler, reading the HTML before any JS runs, literally learned that Yameveo had zero projects and zero years active. We changed it to render the real final values server-side in the HTML — 14 partners, 6 countries, a 36-month project, €7.8M, 2 years active — and left the animation to count up from zero to the value already present rather than inject it. While there we also removed two stat values (50 and 13) that had been inherited from the Spanish company’s site and were never true for this entity. If you take one lesson from this whole log: read your own page with JavaScript disabled and see what the machine sees.
What did we deliberately not do?
We deliberately skipped several things that get recommended for “AI optimization” because we judged them unnecessary or counterproductive. Being explicit about the non-changes matters as much as the changes.
- No llms.txt file. We considered it and decided it was out of scope — there is no evidence the major engines consume it, and our real content is already in clean, crawlable HTML where they can reach it. Adding a parallel file to maintain buys us nothing today.
- No AI-crawler blocks. We left robots.txt exactly as it was — no
Disallowfor GPTBot, ClaudeBot, PerplexityBot or the others. Blocking the very crawlers you want to be cited by is self-defeating. Our sitemap stays valid and referenced from robots.txt. - No hreflang between our two domains, and no shared schema. yameveo.ai and the Spanish yameveo.com are different companies, not language variants of one site, so hreflang would be wrong and would invite exactly the entity-merging we are trying to prevent. Every page on yameveo.ai carries a self-referencing canonical to its own URL — nothing on .ai ever canonicalizes to .com.
- No rewriting of the narrative content itself. We changed packaging — TL;DR boxes, headings, schema — not the substance of posts that were already good. GEO is mostly structure, not a content rewrite.
Did it work?
We do not know yet — and I’d rather say that plainly than dress up activity as results. Everything above is live, but we have no measured citation outcomes to report. We have not yet run a systematic check of whether ChatGPT, Perplexity, Claude or Google AI Mode now quote us for the queries we care about, and even if we had, one week of data would be noise. Schema validates and the pages render the way we intended; whether that translates into actual citations is an empirical question we haven’t answered.
So this is a working log, not a case study. We’ll come back in about three months with the honest follow-up: which queries we now surface for, what got quoted verbatim, what didn’t move at all, and anything we’d do differently. If you want that follow-up — or you’re doing GEO on your own site and want to compare notes — email me at hello@yameveo.ai.
Written by Enrico Aillaud, Founder & Lead Engineer at Yameveo and WP5 lead on the VANTAGE project.