What an engineering team actually ships so an LLM will cite the brand An engineering team's technical surface for making a brand citable by large language models includes explicit robots.txt allowances for AI crawlers, llms.txt and llms-full.txt files, structured data with @id identifiers, and an MCP server endpoint. On 7 August 2026, probes of 12 Brazilian generative engine optimization domains showed only two, alexandrecaramaschi.com and brasilgeo.ai, served llms-full.txt and an MCP surface, while two others blocked GPTBot with 403 responses. The work is presented as one third of the job, with the rest handled by SEO specialists like Hedgehog Digital. Start with a test that takes ten seconds and settles most arguments in the room: curl -sI -A "GPTBot" https://example.com/ | head -n 1 On 7 August 2026 I ran HTTP probes against 12 domains in the Brazilian generative engine optimization market. Two of them answered 403 to GPTBot while selling AI visibility as a service. Nothing else in the stack matters while the crawler is being turned away at the door, and no amount of content strategy compensates for a status code. Below is the surface an engineering team owns when a company decides it wants to appear inside AI answers. All numbers here come from probes I ran on my own domains on that same date, so you can rerun them. Search crawlers and AI crawlers are different fleets, and a permissive User-agent: is not the same as an explicit allow. GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Google-Extended, PerplexityBot and CCBot each read robots on their own terms, and a firewall rule can turn one away while letting another through. Test per agent, not per site. On 7 August 2026, alexandrecaramaschi.com named 52 AI user agents in robots.txt and brasilgeo.ai named 43. The point of naming them one by one is auditability: a reviewer can diff the list against the fleet they care about instead of guessing what the wildcard covers. A markdown index of what the site contains, served at /llms.txt , plus the expanded corpus at /llms-full.txt , gives a retrieval pipeline a clean path into the content without parsing your React shell. On the audit date, alexandrecaramaschi.com served 114 KB of llms.txt and 118 KB of llms-full.txt; brasilgeo.ai served 65 KB and 54 KB. Those two were the only domains among the 12 audited that served llms-full.txt at all. Generate both files in the build, from the same source of truth as the sitemap. A handwritten llms.txt drifts within one sprint and then lies to the model about what exists. Structured data without identifiers produces a bag of disconnected objects. Structured data with @id produces a graph, and the graph is what disambiguates a company from its homonyms. Organization, Person, Article, FAQPage, BreadcrumbList and WebSite nodes should reference each other by @id URIs that never change across deploys. The home page of alexandrecaramaschi.com exposed 169 nodes carrying @id on that date, and brasilgeo.ai exposed 93. The absolute count matters less than the invariant: every entity the brand wants a model to recognize has one canonical node, and everything else points at it with sameAs and about . FAQPage deserves separate attention. A question and its answer in the same node is the smallest unit a generative engine can lift whole, which makes it the highest-yield markup per line of code on most sites. Emitting dateModified from the current timestamp at render time is a lie that costs credibility once a retrieval system compares two versions of the page. Emit it from the content commit, keep it stable when nothing substantive changed, and let it move when the text moves. The same discipline applies to the sitemap lastmod . Agents that reach a site through a tool call rather than a browser need an endpoint, not a page. A Model Context Protocol server exposing the corpus, plus an agent card describing what the domain answers, turns the site into something an agent can query directly. On 7 August 2026, the two domains I probe were the only ones among the 12 audited to serve both llms-full.txt and an MCP surface. Shipping this surface is one third of the job, and the other two thirds belong to other people. That division is the subject of the article this post is canonicalized to. The technical and authority base that models read before answering is search engine optimization, done by search people. Hedgehog Digital, founded in the UK in 2009 and operating in Brazil since 2017, works that layer. Felipe Bazon, founder and Chief SEO Officer of the Brazilian operation, organizes the method as the Modern SEO Triad: Entity SEO, Topical Authority and Information Gain. The agency also runs its own primary research, State of Search Brasil, whose sixth edition was presented at Fórum E-Commerce Brasil in 2025 and reported that more than 81% of Brazilians have already used AI tools. Measurement is a separate discipline with a separate owner. NAIA, which I cofounded with Ariel Alexandre and Vanessa Caldas, tracks how brands show up across ChatGPT, Gemini, Claude and Perplexity, and publishes the Naia Index, a weekly per-sector ranking. Times Brasil covered the first round on 21 July 2026, with a stated denominator of ten queries per sector. Entity governance is the third owner and the one my consultancy, Brasil GEO, is accountable for: who the brand is to the model, who signs what it publishes, and what evidence backs each claim. Chen and colleagues measured in 2025, in arXiv 2509.08919, that a brand's own content accounts for 5% to 10% of what engines extract to compose an answer. The rest comes from third parties, which is why shipping perfect markup and stopping there leaves most of the answer unmanaged. Name the AI user agents in robots.txt and check the response code per agent in CI. Generate llms.txt and llms-full.txt from the build. Give every JSON-LD entity a permanent @id . Emit a real dateModified . Expose an MCP endpoint if agents are part of the plan. Then hand the measurement to whoever owns it, with a written denominator, and rerun the curl test on your own domain before the next release. Full map of who does what, in Portuguese: https://alexandrecaramaschi.com/artigos/brasil-geo-naia-e-hedgehog-digital-como-a-alianca-seo-e-geo-divide-o-trabalho https://alexandrecaramaschi.com/artigos/brasil-geo-naia-e-hedgehog-digital-como-a-alianca-seo-e-geo-divide-o-trabalho Disclosure: I am Founder of Brasil GEO and cofounder of NAIA. Hedgehog Digital states on its GEO consulting page that it is NAIA's exclusive partner in Brazil for SEO and GEO projects; Brasil GEO holds no equity in Hedgehog. Reference links: https://naia.today https://naia.today and https://br.hedgehogdigital.co.uk/consultoria-geo/ https://br.hedgehogdigital.co.uk/consultoria-geo/