---
title: "AI Visibility: Get Cited by Answer Engines"
canonical: https://wavect.io/services/ai-visibility/
language: en
description: "AI visibility as an engineering job: agent access, llms.txt and Markdown mirrors, valid JSON-LD, entity identity, and MCP so agents can act. Any stack, no CMS migration."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

AI Visibility

# AI Visibility Is an Engineering Problem, Not a Content Problem

An answer engine cannot cite what it cannot fetch, parse, or attribute to you. That is a stack question: your robots rules, whether a clean machine-readable copy exists, whether your JSON-LD is valid, whether anything states who you are, and whether the HTML you serve contains the text at all. We fix it in the codebase you already have, and then go one step further, so an agent can act and not only read.

- 75+ products shipped
- 10+ years experience
- No-Bullshit Guarantee

DIRECT ANSWER

AI visibility engineering makes a site machine-legible and agent-usable by fixing crawler access, machine-readable mirrors, structured data, entity identity, and server-rendered content, then exposing the product through MCP and agent skills.

BEST FOR

- Teams that rank in classic search but never show up in AI answers.
- Products that want agents to complete a task, not just read a description.
- Anyone who wants the fixes made in their own stack instead of migrating to a vendor CMS.

NOT BEST FOR

- Rolling AI out to your own team internally. That is AI Enablement.
- Building a customer-facing AI product. That is AI development.
- Buyers who want ranking guarantees. Nobody can honestly sell those.

**Check it yourself first**

We publish the checker as a free, browser-local tool with the same rule catalog we work from. Paste your robots.txt and you will know within a minute whether the rest of this page is even relevant to you. No email, no upload, no account.

[Open the free checker →](/tools/agent-readability-checker/)

// 01

## What actually breaks

Almost nobody fails at this because their writing is bad. They fail on five mechanical things, and each one is invisible in a browser.

- ✓ - **The retrieval fetchers are blocked by accident.** A team blocks GPTBot to opt out of training, leaves a wildcard disallow underneath, and quietly removes itself from every assistant answer. Those are two different decisions and most robots.txt files treat them as one.
- ✓ - **The text arrives after the page does.** Several fetchers take the HTML as served and never run JavaScript. If your content is injected client-side, what they receive is an empty shell with your nav in it.
- ✓ - **The structured data is invalid, so it counts as absent.** A JSON-LD block that fails to parse is discarded silently. The page scores exactly as if you had never written it, and nothing in your logs tells you.
- ✓ - **Nothing on the page says who you are.** Page-level types describe what a page is. Without an Organization node and sameAs links, an engine cannot tell your company from a similarly named one, so it hedges instead of naming you.
- ✓ - **There is no clean copy to read.** Rendered HTML is expensive and noisy to parse. A Markdown mirror or llms.txt is the cheap, unambiguous version, and almost nobody serves one.

// 02

## What we check and fix

Agent access

We audit robots rules against the fetchers that actually serve answers, and separate them from the crawlers that only collect training data. Blocking training is a licensing decision you may well want. Blocking retrieval is how you disappear, and it is usually unintentional.

Machine-readable mirrors

We generate Markdown mirrors of your pages, advertise them with rel=alternate, and publish an llms.txt map. Then we put the generator behind a build gate, so a broken mirror fails the deploy instead of sitting there for a year.

Structured data that parses

Valid JSON-LD on every template, validated in CI rather than in a browser extension once. Types that match what the page actually is, and an entity graph that resolves across pages instead of inventing a new organisation on each one.

Entity identity

An Organization node with a stable @id and sameAs links to the registries and profiles that already describe you, including Wikidata where it is warranted. This is what turns a mention into an attributed citation.

Server-rendered content

If the text only exists after hydration, we move it into the served HTML. On a client-rendered app that is real work, and we scope it honestly rather than pretending a meta tag fixes it.

// 03

## How the engagement runs

Fixed price, agreed before we start, as a signed statement of work. The first step is deliberately small so you can stop after it.

01

### Baseline

We run the full rule catalog against your live site, not a staging copy, and record what a fetcher actually receives.

02

### Readout

Every finding with the evidence line, ordered by what costs you citations. Yours to keep, and to hand to any team you like.

03

### Fix

We implement in your repository, in your stack. No migration to a CMS we happen to prefer.

04

### Gate it

The checks move into your build, so the fixes cannot silently rot. This is the step that makes the work last.

05

### Extend

Optional: MCP server, agent skills, and the API surface an agent needs to actually transact.

// 04

## Past readable: agents that can act

Agent-usable surfaces

An MCP server, published agent skills, and a documented API surface, so an agent can complete a task against your product instead of only summarising your marketing. This is the part most AI visibility work stops short of.

// 05

## Surfaces and standards we work to

These are the concrete artefacts the work produces, not a list of technologies we have heard of.

robots.txt llms.txt Markdown mirrors rel=alternate JSON-LD schema.org sameAs Wikidata canonical hreflang sitemaps IndexNow Server-side rendering MCP Agent Skills OpenAPI

// 06

## How we work on this

- ✓ - **We run this stack ourselves.** This site serves Markdown mirrors of every page, a per-locale llms.txt, published agent skills with checksums, and an MCP endpoint. A verifier hard-fails our build when any of it breaks. You can check all of it from your terminal right now.
- ✓ - **Your stack, not ours.** Every fix lands in the codebase you already run. We have no CMS to sell you and no reason to tell you that a migration is the prerequisite.
- ✓ - **Gated, or it decays.** A one-time cleanup regresses within two quarters. We put the checks in your pipeline so the next deploy has to keep them true.
- ✓ - **Evidence, never a ranking promise.** We can prove an agent could not read your page and then prove it can. Nobody can promise a given assistant will cite you, and anyone who does is guessing.
- ✓ - **We will tell you when it is already fine.** If your robots rules are clean and your markup parses, the honest answer is that this service is not your bottleneck, and we would rather say so than sell you a report.

Can an AI agent complete a task against your product today?

Almost certainly not.

Being readable is the first half. Being usable is the half almost nobody has built yet.

// proof

## Proof, not promises

### [Twinsoft AI](/case-studies/twinsoft-ai/)
- **Status:** Live
- **Outcome:** 2 weeks - To Sellable MVP
- **Summary:** Took a vibe-coded prototype to enterprise pilot-ready, no shortcuts.
- **Stack:** Python / Flask, LLMs, Terraform

### [PromptID](/case-studies/promptid/)
- **Status:** Live
- **Outcome:** 6 weeks - 0 to Production
- **Summary:** AI-native assessment platform, 0→production in 6 weeks under compressed market pressure.
- **Stack:** NestJS, NextJS, LangChain

### [Hyperstate AI](/case-studies/hyperstate-ai/)
- **Status:** Wind Down
- **Outcome:** GPU Monolith - → Microservices
- **Summary:** Split a GPU-heavy monolith into orchestrated services and swapped self-hosted ML libs for scalable alternatives. Latency and cost …
- **Stack:** Python / Django, OpenAI API, Neo4j

These are selected projects, not our full portfolio. We have shipped 75+ products since 2018.

### What clients say

Google

**Built multiple venture-backed startups with Wavect over 4 years.** World class team. They're great thought partners while in discovery, reliable and predictable engineers while in dev, and just generally great guys to work with. Highly highly recommend you work with this team for your next project.

Read more →

Joseph Miller

Original

LinkedIn

**Getting to know Kevin was very exciting!** He is burning for his topics and is a guy who is walking the extra mile. His thoughts and passioned approach for the work is absolutely amazing. He has a holistic view and is not stuck in tech topics at all. His huge strength is that he knows the customer's requirements and understands them without needing to ask what they want. Also his will to constantly get to know the latest knowledge is felt in the daily work. Since the web3 area is a highly dynamic one this is a necessity and Kevin is coping with it like a charm.

Read more →

Erhard Dinhobl AI System Engineer

Original

Trustpilot

**Delivered all work on time, even under tight deadlines.** The perfect balance between professional standards and a collaborative working relationship.

Read more →

MyDevConnect Team

Original

Independently rated 5.0/5 on Google [Read the reviews](https://www.google.com/search?q=wavect+gmbh)

[![Clutch Top Artificial Intelligence Company in Austria 2026 award for Wavect](/img/awards/clutch-top-artificial-intelligence-company-austria-2026_hu_836f96666ce05e7b.webp) Verified on Clutch · 2026 Top Artificial Intelligence Company in Austria View our Clutch profile](https://clutch.co/profile/wavect-gmbh) [![Clutch Top Chatbot Company in Austria 2026 award for Wavect](/img/awards/clutch-top-chatbot-company-austria-2026_hu_df88f695b2ef6838.webp) Verified on Clutch · 2026 Top Chatbot Company in Austria View our Clutch profile](https://clutch.co/profile/wavect-gmbh)

## FAQs

Honest answers about getting read, and cited, by machines

### How does the weekly cancellation actually work?

End any week, with one message. No notice period, no exit interview, no fine print. We invoice weekly, so the most you’re ever committed to is the current week.

### What if I'm not blown away by the work?

It’s in your contract: tell us, and we refund that week. No questions, no invoices to dispute, no calls to escalate. The only rule: refunds apply to the most recent week.

### Why don't you track hours?

Because hours are the wrong metric. If we optimize for hours billed, we do not optimize for your outcome. The deal is simpler: every week has a defined result, and we earn the next week by delivering it. You pay for progress against that result, not for a timesheet.

### What does 'expectations detached from reality' mean?

We work with operators, not lottery winners. If a request would require breaking physics, the law, or a third party’s systems, we say so, and if we can’t align, we walk. The guarantee is mutual: you can fire us any week; we can also fire ourselves.

### Is this SEO?

No, and the difference matters. SEO asks whether you rank against competitors, which depends on things nobody controls. This asks a narrower, mechanical question: can an agent fetch this URL, parse it, and attribute it to you. Those are deterministic checks with right answers, which is why we can hand you evidence rather than a theory. We do not sell rankings.

### How is this different from your AI Enablement service?

Opposite direction. [AI Enablement](/services/ai-enablement/) is about your team using AI: workshops, internal workflows, tooling on your infrastructure. AI Visibility is about AI using you: whether external answer engines and agents can read, cite, and operate your product. Different buyer, different work. Some clients do both, in either order.

### How is it different from AI development?

[AI development](/services/artificial-intelligence/) builds an AI product for your customers, such as an agent or an LLM application. This service does not build you an AI product. It makes the product you already have legible and usable to somebody else’s AI.

### Do we have to migrate to a headless CMS first?

No. Every fix here is possible on WordPress, on a bespoke Rails or Django app, on Next.js, or on a static site generator. Some stacks make server-rendering the content harder, and we will say so plainly and scope it, but a platform migration is a separate project with its own justification and we will not attach it to this one.

### Can we just use the free tool and do it ourselves?

Yes, genuinely. The [checker](/tools/agent-readability-checker/) runs the same rules, exports the full report, and costs nothing. Most teams can fix their robots.txt and their JSON-LD from that report alone. What people hire us for is the harder half: moving client-rendered content into the served HTML, building the entity graph, gating it all in CI, and the MCP work.

### Should we block GPTBot?

That is a licensing question, not a visibility one, and the two get conflated constantly. Blocking GPTBot or CCBot opts you out of training data and does not remove you from ChatGPT or Perplexity answers, because those are served by separate retrieval fetchers. If you want to be cited while staying out of training corpora, that is a coherent position and it is configurable.

### Is llms.txt a real standard?

No. It is a convention, no engine is obliged to read it, and we will not pretend otherwise. It is also cheap to generate and it gives an agent a clean map instead of your rendered navigation, so we run one here and we usually recommend one. If someone sells it to you as a standard with guaranteed pickup, that is a reason to doubt the rest of their pitch.

### What does it cost and how long does it take?

The baseline and readout are a fixed price agreed before we start, under a signed statement of work, and they are deliberately small enough to stop after. Implementation is quoted separately once the findings are known, because the cost of the content-rendering work depends entirely on your stack. We do not bill this hourly.

### How do you prove it worked?

Before and after, on the same rule catalog, plus the build gate that keeps it true. We will also show you what a fetcher receives, which is usually the moment the problem becomes obvious. What we will not do is attribute a later citation to our work, because that is not attributable.

### Can you make our product usable by agents, not just readable?

That is the part we are most interested in. It means an MCP server with real authorization boundaries, published agent skills, and an API surface an agent can complete a task against. We run all three on this site. Our [enterprise MCP authorization architecture](/blog/enterprise-mcp-authorization-architecture/) covers the multi-tenant design, and [MCP security boundaries](/blog/mcp-security-boundary-data-level-access-control/) covers what an agent must never be allowed to reach.

// More in

## More in Artificial Intelligence

### [AI Agents & Products](/services/artificial-intelligence/)

We build AI agents, agentic SaaS, and LLM apps that survive production, and tell you when AI is the wrong tool.

### [AI Enablement](/services/ai-enablement/)

Adopt AI inside your own team: workshops plus done-for-you setup on your infrastructure. No shelfware.

### [Vibe Coding Rescue](/services/vibe-coding-rescue/)

Fix vibe-coded and AI-generated apps before they break in production. Audit first, then harden.

### [Internet of Things](/services/internet-of-things/)

LoRaWAN infrastructure, multi-vendor device integration, decoders and data pipelines. Software side, not firmware.

// Get to know us

## Get to know us

Long-term relationships over quick wins.

[![Blogs](/img/services/gtku_blogs_hu_d7e3f659443e93f9.webp) Read our Blog](/blog/overview/) [![No BS Around Tech Podcast](/img/services/gtku_podcast_hu_aac94ba51d8a6f9f.webp) No BS Around Tech Podcast](/#trust-podcast) [![Image Gallery](/img/services/gtknu_gallery_hu_451025d2d15b7558.webp) Get some Impressions](/#image-gallery)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/services/ai-visibility/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "Artificial Intelligence",
      "description": "AI visibility as an engineering job: agent access, llms.txt and Markdown mirrors, valid JSON-LD, entity identity, and MCP so agents can act. Any stack, no CMS migration.",
      "name": "AI Visibility Is an Engineering Problem, Not a Content Problem",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "AI Visibility Engineering",
      "url": "https://wavect.io/services/ai-visibility/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/",
          "name": "Services",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/#ai",
          "name": "Artificial Intelligence",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/ai-visibility/",
          "name": "AI Visibility",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/services/ai-visibility/#webpage",
      "@type": "WebPage",
      "description": "AI visibility as an engineering job: agent access, llms.txt and Markdown mirrors, valid JSON-LD, entity identity, and MCP so agents can act. Any stack, no CMS migration.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/services/ai-visibility/#service"
      },
      "name": "AI Visibility Is an Engineering Problem, Not a Content Problem",
      "url": "https://wavect.io/services/ai-visibility/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "End any week, with one message. No notice period, no exit interview, no fine print. We invoice weekly, so the most you're ever committed to is the current week."
      },
      "name": "How does the weekly cancellation actually work?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It's in your contract: tell us, and we refund that week. No questions, no invoices to dispute, no calls to escalate. The only rule: refunds apply to the most recent week."
      },
      "name": "What if I'm not blown away by the work?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Because hours are the wrong metric. If we optimize for hours billed, we do not optimize for your outcome. The deal is simpler: every week has a defined result, and we earn the next week by delivering it. You pay for progress against that result, not for a timesheet."
      },
      "name": "Why don't you track hours?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We work with operators, not lottery winners. If a request would require breaking physics, the law, or a third party's systems, we say so, and if we can't align, we walk. The guarantee is mutual: you can fire us any week; we can also fire ourselves."
      },
      "name": "What does 'expectations detached from reality' mean?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No, and the difference matters. SEO asks whether you rank against competitors, which depends on things nobody controls. This asks a narrower, mechanical question: can an agent fetch this URL, parse it, and attribute it to you. Those are deterministic checks with right answers, which is why we can hand you evidence rather than a theory. We do not sell rankings."
      },
      "name": "Is this SEO?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Opposite direction. AI Enablement is about your team using AI: workshops, internal workflows, tooling on your infrastructure. AI Visibility is about AI using you: whether external answer engines and agents can read, cite, and operate your product. Different buyer, different work. Some clients do both, in either order."
      },
      "name": "How is this different from your AI Enablement service?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "AI development builds an AI product for your customers, such as an agent or an LLM application. This service does not build you an AI product. It makes the product you already have legible and usable to somebody else's AI."
      },
      "name": "How is it different from AI development?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Every fix here is possible on WordPress, on a bespoke Rails or Django app, on Next.js, or on a static site generator. Some stacks make server-rendering the content harder, and we will say so plainly and scope it, but a platform migration is a separate project with its own justification and we will not attach it to this one."
      },
      "name": "Do we have to migrate to a headless CMS first?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, genuinely. The checker runs the same rules, exports the full report, and costs nothing. Most teams can fix their robots.txt and their JSON-LD from that report alone. What people hire us for is the harder half: moving client-rendered content into the served HTML, building the entity graph, gating it all in CI, and the MCP work."
      },
      "name": "Can we just use the free tool and do it ourselves?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "That is a licensing question, not a visibility one, and the two get conflated constantly. Blocking GPTBot or CCBot opts you out of training data and does not remove you from ChatGPT or Perplexity answers, because those are served by separate retrieval fetchers. If you want to be cited while staying out of training corpora, that is a coherent position and it is configurable."
      },
      "name": "Should we block GPTBot?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. It is a convention, no engine is obliged to read it, and we will not pretend otherwise. It is also cheap to generate and it gives an agent a clean map instead of your rendered navigation, so we run one here and we usually recommend one. If someone sells it to you as a standard with guaranteed pickup, that is a reason to doubt the rest of their pitch."
      },
      "name": "Is llms.txt a real standard?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The baseline and readout are a fixed price agreed before we start, under a signed statement of work, and they are deliberately small enough to stop after. Implementation is quoted separately once the findings are known, because the cost of the content-rendering work depends entirely on your stack. We do not bill this hourly."
      },
      "name": "What does it cost and how long does it take?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Before and after, on the same rule catalog, plus the build gate that keeps it true. We will also show you what a fetcher receives, which is usually the moment the problem becomes obvious. What we will not do is attribute a later citation to our work, because that is not attributable."
      },
      "name": "How do you prove it worked?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "That is the part we are most interested in. It means an MCP server with real authorization boundaries, published agent skills, and an API surface an agent can complete a task against. We run all three on this site. Our enterprise MCP authorization architecture covers the multi-tenant design, and MCP security boundaries covers what an agent must never be allowed to reach."
      },
      "name": "Can you make our product usable by agents, not just readable?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
