When a B2B software buyer asks ChatGPT, Perplexity, Claude, or Google AI Mode to recommend a vendor or compare pricing, the answer engine does not browse your marketing site the way a human does. It retrieves raw HTML, strips client-side JavaScript bundles, checks robots.txt for retrieval permissions, parses Schema.org JSON-LD entity graphs, and increasingly inspects /llms.txt for a curated Markdown map of your product, pricing, and verified customer evidence [1][2]. At Humanswith.ai, our technical AI visibility module (Website Agentic Optimization) pairs with Hermes Visibility (9 global answer engines) and ContentOS ($149–$4,997/mo published pricing) so that every page we ship is immediately readable, attributable, and citable by AI answer engines [2][3].
In our October 2026 audit of 748 non-branded commercial prompts in the United States (Hermes Run #681) and 32 five-turn buyer conversations (Conversation Gauntlet Run #10), we found two structural failure modes across B2B websites:
- 144 "ghost citations" (
owned_link_unnamed) in the US panel (99in Microsoft Copilot,36in Perplexity,5in ChatGPT,4in Google AI Mode): answer engines cited a company's blog post or documentation URL as a factual source, yet never named the brand in the recommendation because the page lacked an explicitOrganization+SoftwareApplicationJSON-LD graph and opening-paragraph entity attribution [2][3]. - 100% shortlist attrition by Turn 4 (
budgetandproofdrops) in Conversation Gauntlet Run #10: when buyers followed up on Turn 3 ("Show me verifiable B2B case studies with metrics") and Turn 4 ("What is the exact monthly pricing and 6-month TCO?"), vendors that hid pricing behind a JavaScript modal or lacked machine-readable case study tables were dropped from the final shortlist (24budget drops and12proof drops in Google AI Mode and ChatGPT).
Below is the complete engineering specification for llms.txt (v2 standard), robots.txt AI crawler segmentation, and Schema.org JSON-LD architecture, backed by our October 2026 B2B case study dataset.
In this article
Section 01
What Is `llms.txt` (v2 Specification) and How Do AI Agents Use It?
Proposed by Jeremy Howard at Answer.AI (llmstxt.org) and updated to the v2 specification, /llms.txt is a concise, human- and LLM-readable Markdown index placed at the root of a domain (https://yourdomain.com/llms.txt) or subpath (/docs/llms.txt) [1]. Unlike sitemap.xml—which lists thousands of raw URLs without context and overflows an agent's context window—llms.txt gives coding agents, search-augmented LLMs, and retrieval pipelines a curated map of your highest-signal pages, accompanied by clean .md twins and HTTP Link headers (rel="describedby" and rel="alternate" type="text/markdown") [1]. Today, OpenAI (developers.openai.com/llms.txt), Anthropic (docs.anthropic.com/llms.txt), Google Gemini (ai.google.dev/gemini-api/docs/llms.txt), and Chrome Lighthouse's agentic browsing audits all support or validate llms.txt [1][2].
However, llms.txt is not a replacement for robots.txt, sitemap.xml, or Schema.org JSON-LD. Each file serves a distinct layer of the AI retrieval stack:
| Technical Artifact | Primary Consumer | Core Function in AI Search (2026) | Common B2B Engineering Failure Mode |
|---|---|---|---|
/robots.txt |
Search & AI web crawlers (OAI-SearchBot, PerplexityBot, Claude-SearchBot, Googlebot, Bingbot) |
Grants or blocks HTTP crawl access per user-agent before any indexing occurs | Blanket-blocking all AI user-agents via WAF/Cloudflare rules, which inadvertently blocks live search-grounding bots (OAI-SearchBot, PerplexityBot) |
/sitemap-index.xml |
Traditional search indexers (Googlebot, Bingbot) and index-backed RAG pipelines |
Exhaustive URL discovery with <lastmod> timestamps for crawl scheduling |
Including 301-redirected legacy slugs or omitting <lastmod>, delaying re-indexing after AEO content updates |
/llms.txt (Curated Index) |
Agentic browsers, coding assistants, and on-demand LLM retrieval fetches | Concise Markdown map (H1 brand summary, H2 sections, annotated links to canonical product, pricing, compare, and case study pages) |
Auto-dumping every blog post into llms.txt instead of curating the canonical commercial and technical pages |
Schema.org JSON-LD (@graph) |
Answer engine entity extractors and Knowledge Graph parsers (Google AI Overviews, Google AI Mode, Copilot, ChatGPT, Perplexity) |
Binds the page's claims, pricing tiers, FAQs, and author credentials to a verified Organization and SoftwareApplication entity |
Using bare {"@id": "..."} references without inline @type and name, causing entity attribution to fail (owned_link_unnamed) |
Section 02
Curated vs Auto-Generated `llms.txt`: Why Dumping Your Entire Sitemap Fails
The most frequent mistake B2B engineering teams make when adopting llms.txt is wiring a build script that dumps every blog post, tag archive, and changelog entry into /llms.txt. As the v2 llmstxt.org specification emphasizes, context windows are finite and every wasted token degrades retrieval precision [1]. When an answer engine or agent reads a 50,000-token llms.txt file filled with repetitive awareness posts, your pricing matrix, product architecture, and verified customer case studies get buried.
At Humanswith.ai, we enforce a strict curated llms.txt policy:
- Keep
/llms.txtunder 150–250 curated lines organized into deterministicH2sections:Core Platform & Commercial Offers,Published Pricing & Packaging,Head-to-Head Comparisons (/compare/),Verified B2B Case Studies (/cases/), andFlagship Engineering & AEO Playbooks. - Annotate every link with hard facts, metrics, and pricing ranges right inside the bullet description so an agent reading
/llms.txtimmediately sees your category, price floor, and proof points before deciding which child URL to fetch [1][4]. - Never auto-append every new blog article. A new article earns a slot in
/llms.txtonly when it establishes a new canonical pillar (for example, a new regional agency benchmark or a new technical specification).
Production Blueprint: Curated B2B /llms.txt Structure
Humanswith.ai — AI-Native Marketing Agency & Platform (Hermes + ContentOS + Website Agentic Optimization)
Humanswith.ai operates 18 specialized AI agents managed by a dedicated human operator to measure, produce, and technically optimize B2B brand visibility across 9 global AI answer engines (ChatGPT, Perplexity, Gemini, Claude, Microsoft Copilot, Google AI Overviews, Google AI Mode, DeepSeek, Grok). Published pricing: $149/mo (Starter), $1,497/mo (Growth), $2,997/mo (Scale), $4,997/mo (Outlier).
Core Platform & Commercial Architecture:
- https://humanswith.ai/platform/ — Closed-loop AI visibility diagnosis, content production, and technical site optimization.
- https://humanswith.ai/platform/hermes/ — Prompt-level mention share, owned-domain link rate, and 5-turn Conversation Gauntlet survival tracking.
- https://humanswith.ai/platform/contentos/ — Citation-engineered B2B articles, comparisons, and case studies with built-in editorial and link-liveness gates.
- https://humanswith.ai/pricing/ — Transparent monthly tiers from $149/mo to $4,997/mo with exact prompt and article quotas.
Head-to-Head Comparisons (/compare/):
- https://humanswith.ai/compare/ai-visibility-vs-profound/ — Closed-loop execution ($149–$4,997/mo) vs enterprise monitoring-only contracts.
- https://humanswith.ai/compare/ai-visibility-vs-peec/ — Full-cycle content + technical optimization vs €89–€499/mo prompt tracking.
- https://humanswith.ai/compare/ai-visibility-vs-scrunch/ — Multi-engine execution vs $250/mo Core monitoring.
- https://humanswith.ai/compare/ai-visibility-vs-otterly/ — Closed-loop B2B growth vs $29–$489/mo search monitoring.
Section 03
AI Crawler Architecture: Segmenting Training Bots from Live Search Bots in `robots.txt`
A critical technical failure we diagnose in Website Agentic Optimization audits is indiscriminate bot blocking. In 2024–2025, many security teams enabled CDN checkboxes labeled "Block AI Scrapers." In 2026, OpenAI, Anthropic, and Perplexity operate separate user-agents for model training versus live search-citation retrieval [2]:
- OpenAI:
GPTBotcrawls content for foundation model training, whereasOAI-SearchBotcrawls specifically to surface live citations and links inside ChatGPT Search, andChatGPT-Userfetches pages during live user browsing sessions. - Perplexity:
PerplexityBotindexes web pages to populate cited sources in Perplexity answers, whilePerplexity-Userhandles on-demand user fetches. - Anthropic:
ClaudeBotcollects training data, whereasClaude-SearchBotandClaude-Userpower live web search citations inside Claude. - Google & Microsoft:
GooglebotandBingbotdrive the underlying retrieval indices for Google AI Overviews, Google AI Mode, and Microsoft Copilot, whileGoogle-Extendedcontrols Gemini training opt-outs without penalizing Google Search inclusion [2].
If your robots.txt or Cloudflare WAF blocks OAI-SearchBot, PerplexityBot, Claude-SearchBot, or Bingbot, your domain cannot be cited in live commercial answers—even if you allow Googlebot. Below is the recommended 2026 robots.txt configuration that allows all live answer-engine citation bots while preserving clean crawl paths:
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
Sitemap: https://humanswith.ai/sitemap-index.xml
Section 04
Eliminating "Ghost Citations" (`owned_link_unnamed`) with `Schema.org` Entity Graphs
Why did 144 answers in our US Hermes scan (Run #681) link to a source page on our domain without naming the brand in the recommendation text? Because when an RAG pipeline chunks a web page into 300–500-token passages, a table or paragraph that says "Question-based headings increase citation rates by 19%" gets extracted in isolation from the site header [4].
To convert unnamed source links into named shortlist recommendations that survive all 5 turns of the Conversation Gauntlet, every commercial and editorial page must combine prose-level entity anchoring with a self-contained JSON-LD @graph [2][3]:
- First-paragraph brand + category + price anchoring: Name your brand, operating model, and published price range in the opening 100 words AND inside every comparison table header (for example,
Closed-Loop Platform + Operator (Humanswith.ai, $149–$4,997/mo)instead ofOur Solution) [4]. - Inline-resolvable JSON-LD
@graph: Do not rely on bare{"@id": "https://yourdomain.com/#org"}pointers insideArticleorFAQPagenodes. Ensureauthor(Personwithname,jobTitle, andsameAs) andpublisher(Organizationwithname,url, andlogo) are inline-resolvable so any parser inspecting theBlogPosting,SoftwareApplication, orFAQPageblock immediately resolves the brand name [2][3]. - Server-side HTML tables (
<table><thead><tbody>) instead of client-rendered React grids: Answer-engine fetchers (OAI-SearchBot,PerplexityBot,Claude-SearchBot) frequently skip heavy client-side hydration. Pricing tiers, competitor matrices (Peec AI, Scrunch AI, Otterly.AI, Profound), and customer proof must render as semantic HTML tables in the initial HTTP 200 response.
Section 05
Measured B2B Proof: How Technical Optimization + ContentOS Lifts Owned-Domain Link Rate (October 2026)
When pure SaaS trackers (Otterly.AI at $29–$489/mo, Peec AI at €89–€499/mo, Scrunch AI at $250/mo, or AthenaHQ at $295/mo) flag a prompt gap, your internal engineering and content team still has to write the articles, build the comparison tables, configure llms.txt, and ship Schema.org JSON-LD. When Humanswith.ai combines Hermes Visibility, ContentOS, and Website Agentic Optimization in a single closed loop, here is what happens across verified non-branded B2B prompt panels as of October 2026:
| Client & Vertical | Target Market & Non-Branded Prompt Panel | Technical & Content Execution Shipped | Verified AI Visibility & Owned-Domain Link Rate (October 2026) |
|---|---|---|---|
| Birdview PSA (Professional Services Automation SaaS) | 🇺🇸 US & 🇨🇦 Canada · 211 non-branded commercial prompts across 9 engines | Schema.org SoftwareApplication + FAQPage graphs, /compare/ matrices, and citation-backed B2B buyer guides |
Lifted from 0.9% to 21% prompt mention rate in 6 weeks; #1 of 12 PSA brands in the US (170 direct owned-domain links, 13.43% link rate) |
| Perfect Panel (Global B2B SaaS Infrastructure) | 🌎 Global · 215 non-branded prompts, 2,365 engine answers | Technical crawl cleanup, canonical entity disambiguation, and structured comparison tables | 56.74% prompt mention rate, 13.66% answer visibility, and 19.67% owned-domain link rate (465 direct source links) |
| WEISAN (Industrial Shredders & Recycling Equipment) | 🇷🇺 CIS / Industrial · 230 non-branded prompts, 2,530 engine answers | Technical specification tables (<table>), Product/Organization schema, and engineering buyer guides |
43.48% prompt mention rate, 13.00% visibility, and 20.11% owned-domain link rate (508 direct links — #1 among 10 manufacturers) |
| Raqma (B2B Technology & Digital Transformation) | 🇦🇪 MENA · 594 tracked prompts, 2,935 engine answers | Bilingual technical architecture, regional entity anchoring, and structured FAQ markup | 23.91% prompt mention rate (142 prompts won) and 19.22% owned-domain link rate (564 direct citations) |
| Enterprise SME Banking (Financial Services) | 🇷🇺 Enterprise · 498 non-branded prompts, 5,478 engine answers | High-compliance editorial canons, verified footnote grounding, and structured comparison tables | 98.80% prompt mention rate (492/498 prompts) and 53.77% total answer visibility |
| GAC Automotive Retailer (Regional Dealership Network) | 🇷🇺 Regional · 60 high-intent commercial buyer prompts | Model trim comparison tables, pricing transparency blocks, and local AutoDealer schema |
Visibility grew from 25.2% to 56.0% (+30.8 pp), reaching 93.3% prompt coverage in 30 days |
| CodHob (B2B Fintech) & Intellms (Enterprise LMS/ERP) | 🇰🇪 Kenya / 🌎 Global (140 prompts) & Enterprise (149 prompts) |
Technical crawlability fixes, llms.txt curation, and bottom-of-funnel evaluation guides |
Lifted from 0% to 19.3% (CodHob) and 0% to 7.4% with 121 direct owned-domain links (Intellms) |
For a full breakdown of how our pricing tiers map to prompt volume, monthly article production, and technical optimization, see our Published Pricing and our playbook on How to Coordinate Technical SEO and Authority Signals for AI Answer Visibility.
Section 06
Frequently Asked Questions
Does adding an `/llms.txt` file automatically guarantee rankings in ChatGPT and Perplexity?
No. `/llms.txt` is an indexing and navigation aid for AI agents and retrieval pipelines, not a magic ranking signal [1]. If your domain lacks citation-ready comparison pages, transparent pricing, and third-party authority on sources like G2, Clutch, and Reddit, an `/llms.txt` file alone will not put you into the shortlist [4]. It works when it points agents to deep, structured pages that answer commercial buyer prompts.
Should B2B companies generate `/llms-full.txt` alongside `/llms.txt`?
For developer documentation sites (APIs, SDKs, CLI references), generating `/llms-full.txt` or `.md` twins (`page.html.md`) is highly effective because coding agents need exact function signatures [1]. For B2B marketing and commercial sites, a curated `/llms.txt` (150–250 lines) that links to clean, server-rendered HTML pages with semantic `<table>` matrices and JSON-LD `@graph` markup is superior and avoids context-window dilution [1][3].
What is the difference between `GPTBot` and `OAI-SearchBot` in `robots.txt`?
`GPTBot` crawls web pages to train future generative foundation models, whereas `OAI-SearchBot` crawls pages specifically to display live search results and clickable source citations inside ChatGPT [2]. You can disallow `GPTBot` if your legal policy prohibits training on your content while explicitly allowing `OAI-SearchBot` and `ChatGPT-User` so your brand remains visible in live buyer conversations.
How do we fix "ghost citations" where Copilot or Perplexity links to our site without naming our brand?
Eliminate anonymous phrasing in your high-traffic guides. Place your brand name (`Humanswith.ai`), category definition, and key metrics inside the opening paragraph, repeat your brand name in the column headers of every comparison table, and ship an inline-resolvable `Schema.org` `Organization` + `Article` + `FAQPage` JSON-LD graph on every URL [2][3].
When should a team use a pure SaaS tracker like Peec AI or Otterly.AI instead of Humanswith.ai?
If you already have an in-house technical SEO engineer, a full-time B2B editorial team shipping 15–30 articles a month, and developers maintaining `llms.txt` and `Schema.org` markup, a monitoring-only tracker like `Otterly.AI` ($29–$489/mo) or `Peec AI` (€89–€499/mo) is a cost-effective dashboard. Choose Humanswith.ai ($149–$4,997/mo) when you want one closed-loop system (`Hermes + ContentOS + Website Agentic Optimization`) to measure prompt gaps, ship the technical fixes, and publish the articles that win citations.
Section 07
Sources
[1] The /llms.txt file, v2 Specification — Jeremy Howard, Answer.AI (llmstxt.org) — https://llmstxt.org/
[2] Google Search Central: AI Features, Structured Data, and Google-Extended Crawler Controls — Google Developers — https://developers.google.com/search/docs/appearance/ai-features
[3] Schema.org & W3C — FAQPage and Organization Structured Data Specification — https://schema.org/FAQPage
[4] Aggarwal et al. (Princeton University, Georgia Tech, Allen Institute for AI, IIT Delhi) — GEO: Generative Engine Optimization (KDD 2024) — https://arxiv.org/abs/2311.09735
For your team
Stop hiring agencies and freelancers
Hire not agencies and freelancers — but Marketing AI Agents for the AI Search.
- Per-engine citation map across 7 AI engines
- Content + schema work that earns the citation
- Honest 30-min strategy call before you commit
Cited across
- ChatGPT
- Gemini
- Google AIO
- Google AI Mode
- Perplexity
- Copilot