Tell the models what you are.

Schema that declares your business as an entity, not a page of words. Written into your codebase and shipped, not handed over as a document.

The entity node

This site’s own markup

{  "@context": "https://schema.org",  "@type": "Organization",  "@id": "https://koldos.com/#organization",  "name": "KoldOS",  "url": "https://koldos.com",  "description": "KoldOS is a GEO and development agency…",  "sameAs": ["…"],  "logo": { "@type": "ImageObject", "url": "…/icon.svg" }}

The highlighted lines are the ones that make this an entity rather than a page description: a type, a stable @id every other node on the site points at, and the sameAs links that let an engine resolve you to one company instead of merging you with another that shares your name.

What we actually write

01 Why this exists

A model can't cite what it can't parse

This is our own entity node. View source on any page here and you’ll find it, the smallest thing that turns a website into a company an engine can name.

Most sites fail before the question of quality comes up. The content is assembled by JavaScript the crawler never runs. The JSON-LD has a syntax error and is silently discarded. robots.txt blocks OAI-SearchBot because someone pasted a snippet meant to stop training-data collection and caught the answer-time fetcher with it.

None of these are content problems, and none of them show up in a content audit. They're the preconditions, and unlike ranking factors, they aren't probabilistic. A model that cannot fetch and parse your page will not cite it, however good the writing is.

The other half is identity. Schema that describes a page is table stakes; schema that describes the organisation, what it is, what it sells, what it's called elsewhere on the web, is what lets an assistant treat you as an entity it knows rather than a URL it found.

02 Definition

What is Technical AEO?

Technical AEO
Technical AEO is the engineering layer of answer engine optimisation: the structured data, server-side rendering and crawler policy that let an AI assistant fetch a page, parse it, and identify the business behind it. It covers JSON-LD that validates, an Organization entity with a stable identifier, content present in the server response rather than assembled by JavaScript, and robots.txt rules that distinguish training crawlers from the answer-time agents that fetch pages while a model is composing a reply.
  • From indexing to parsing

    A crawler that indexes your page is not the same as a model that can parse it. Content assembled by JavaScript is indexed and unreadable at answer time.

  • From pages to entities

    Schema describing a page is table stakes. Schema describing the organisation, what it is, what it sells, what it is called elsewhere, is what makes you a thing an engine knows rather than a URL it found.

  • From one robots rule to several

    Training crawlers and answer-time fetchers are different decisions. Most sites made them with one pasted snippet, and blocked the second by accident.

03 What’s included

Four things land. All of them are built, not filed.

  • 01

    JSON-LD that validates

    Organization, Service, Article, FAQPage and Breadcrumb nodes, cross-referenced by @id so an assistant reads one graph rather than a pile of unrelated objects.

  • 02

    Entity signals

    The sameAs links, consistent naming and about-page facts that let an engine resolve you to a single entity instead of merging you with a company that shares your name.

  • 03

    Rendering that survives

    Content present in the server response. Where the framework fights that, we change the framework's configuration rather than writing a document asking someone else to.

  • 04

    Crawler policy

    robots.txt reviewed agent by agent, GPTBot, OAI-SearchBot, ChatGPT-User, Claude-User, PerplexityBot, bingbot, so the training-data decision and the answer-time decision are made separately and on purpose.

04 How it runs

In order, and in the open.

  1. Step 01

    Read the site as a crawler

    We fetch the homepage, robots.txt, sitemap and llms.txt the way the answer-time agents do, and score what came back, the same twenty-three checks our free tool runs, extended across your key templates.

  2. Step 02

    Fix in your codebase

    A branch against your repository with the schema, the rendering changes and the markup, reviewable by your engineers before it merges.

  3. Step 03

    Verify against the parsers

    Every node validated, every template re-fetched, and the crawler policy tested per agent rather than assumed from the file.

05 The difference

Typical audit vs This engagement

 Typical auditThis engagement
SchemaA list of recommended typesValidated JSON-LD in your codebase
RenderingFlagged as an issueMoved into the server response
Crawler policyOne line about robots.txtReviewed agent by agent
DeliverableA PDFA merged pull request

06 Who it’s for

Four markets, four different questions.

  • B2B software

    Buyers research through assistants long before a demo. The questions are comparative, alternatives, integrations, fit for team size, and the answer names two or three vendors.

  • DTC and ecommerce

    Category questions now start with an assistant. “Best X for Y” returns a shortlist, and being absent from it costs the consideration set, not just the click.

  • Healthcare

    Trust and provenance dominate. Assistants lean hard on sources they can attribute, which makes structured, citable content and clean entity signals disproportionately valuable.

  • NDIS and disability services

    Participants and coordinators ask assistants for local providers. The answers lean on directories, reviews and clearly structured service pages, which most providers have never marked up.

07 Questions

What buyers ask about this one.

Something not covered? Ask us directly and we’ll answer straight.

Does schema markup actually affect AI answers?
It affects whether an assistant can identify what your page is about and who published it, which is upstream of being quoted. It is not a ranking lever you can pull for a result. The honest framing: valid structured data removes an obstacle, it does not create demand.
What is an entity, in this context?
A thing an engine can identify and hold facts about, a company, a product, a person, as distinct from a page that mentions it. Declaring your organisation as an entity with a stable identifier and sameAs links is what stops an engine merging you with a similarly named business or treating each page as unrelated.
Which crawlers should we allow?
Separate the decision. Answer-time agents, OAI-SearchBot, ChatGPT-User, Claude-User, PerplexityBot, bingbot, fetch pages while a model is composing a reply, so blocking them removes you from answers immediately. Training crawlers like GPTBot and Google-Extended absorb content into future models, which is a slower and more debatable trade. Most sites blocked both with one snippet, having meant only the second.
How long does implementation take?
For a typical marketing site, days to a couple of weeks for schema and crawler policy, longer where rendering has to move server-side or templates need restructuring. We scope it against your stack before starting, so the estimate is against your codebase rather than an average.
Will this break anything?
It shouldn't, and the process is built so you can check: work lands as a branch in your repository, your engineers review it, and nothing merges without that review. Where a change is riskier, a rendering mode, a routing change, we say so in the ticket rather than in a footnote afterwards.
Can our own developers implement it instead?
Yes, and some teams prefer that. You get the specs and we review what lands. The reason we default to shipping it ourselves is that a schema backlog handed to a product team queues behind the roadmap, and the most common outcome of that is nothing.
Does schema still matter now Google shows fewer rich results?
For rich results, less than it did. For assistants, more. Google pulled back FAQ and HowTo snippets for most sites in 2023, but the models parsing pages to build answers still read the graph, and it's the cheapest way to state facts about your business in a form that doesn't depend on prose being interpreted correctly.
What if we're on a platform we can't change?
Most platforms allow more than teams assume. Injected JSON-LD, template overrides, edge rewrites. We'll tell you which of the work is possible on your stack before you commit, and if the platform genuinely blocks it, that's a rebuild conversation rather than a schema one.

Next step

Start with what your site already says.

The free checker fetches your site the way the assistants do and scores what comes back. It takes a minute, and it makes the first call a conversation about your findings rather than about our process.