{"slug": "why-i-added-llms-txt-to-my-saas-and-what-happened-when-claude-actually-read-it", "title": "Why I added llms.txt to my SaaS — and what happened when Claude actually read it", "summary": "A developer added an llms.txt file to the root of QRflows, a dynamic QR code platform, to help AI systems understand the site's content and hierarchy. The developer found that while the MCP server for Claude integration received more attention, the llms.txt file was more interesting because it corrects AI models' mental models of the product before tool calls, improving interactions.", "body_md": "I build [QRflows](https://qrflows.app) — a dynamic QR code platform. A few months ago I did two things back to back: added an MCP server so Claude can create QR codes from chat, and added an `llms.txt`\n\nfile to the root of the site.\n\nThe MCP server got all the attention. The llms.txt file got none. But in some ways it was the more interesting decision — and the reasoning behind it taught me something about how AI systems actually navigate websites.\n\n`llms.txt`\n\nis a plain Markdown file at the root of your domain. It tells AI systems what your site is, which pages matter, and where to find more information.\n\nThink of it as the difference between a stranger walking into your office and reading random papers off a desk versus you handing them a one-page brief first.\n\nHere's what ours looks like (simplified):\n\n```\n# QRflows\n\n> Dynamic QR code platform with Smart Rules, real-time analytics, and Claude MCP integration.\n\nQRflows lets you create QR codes that can be edited after printing, tracked in real time,\nand routed conditionally by country, device language, or time of day.\n\n## Core features\n\n- [Dynamic QR codes](https://qrflows.app/dynamic-qr-codes): Edit destination URL after printing\n- [Smart Rules](https://qrflows.app/qr-code-for-smart-rules): Route by country, device, language, time\n- [Analytics](https://qrflows.app/qr-code-analytics): Real-time scan tracking\n- [Landing pages](https://qrflows.app/qr-code-landing-pages): Branded pages without a website\n- [Product QR](https://qrflows.app/product-qr): Micro-sites for physical packaging\n\n## QR code types\n\n- URL, WiFi, vCard, PDF, Menu, Email, WhatsApp, Telegram, Google Review, and more\n\n## Plans\n\n- Starter €9/mo — 2 QR codes, 20,000 scans\n- Growth €19/mo — 50 QR codes, unlimited scans, landing pages, bulk creation\n- Pro €39/mo — 250 QR codes, A/B testing, Smart Rules, API, Product QR\n\n## MCP integration\n\nClaude can create, update, and track QR codes directly from chat.\nServer: https://mcp.qrflows.app/mcp\nDocs: https://qrflows.app/mcp\n\n## Optional\n\n- [Blog](https://qrflows.app/blog): Guides and use cases\n- [Developer API](https://qrflows.app/developer-api): REST API docs\n- [Free QR generator](https://qrflows.app/qr-code-generator): No signup required\n```\n\nNote:This is our actual file — feel free to use it as a template.\n\nThe standard explanation of llms.txt goes like this: AI models scrape your website, but HTML is full of noise — navigation, ads, scripts, footers. llms.txt gives them clean content.\n\nThat's true. But it's not the most interesting part.\n\nThe more interesting part is **intent and priority**.\n\nWhen an AI model lands on your website without a guide, it has no idea which pages are canonical. Is your `/features`\n\npage the source of truth, or `/pricing`\n\n? Is your blog authoritative, or is it marketing content? Is that `/docs/v1`\n\npage still current, or has it been superseded?\n\nWithout guidance, the model guesses. It often guesses wrong. It might pull your pricing from a blog post that mentions old numbers, or describe your features based on a landing page written for a different audience.\n\n`llms.txt`\n\nsolves this by explicitly saying: here is what this product is, here are the pages that matter, here is the hierarchy of information.\n\nHere's where it gets relevant for anyone building AI-facing tools.\n\nWe have an MCP server. When someone uses Claude to create a QR code, Claude calls our tools. But before it does, Claude forms a mental model of what QRflows is — from whatever it learned during training, or from whatever it can fetch in context.\n\nIf that mental model is wrong, the interaction goes sideways. Claude might not know that Smart Rules exist. It might not know that Product QR is Pro-only. It might describe our free generator as if it's our main product.\n\n`llms.txt`\n\nis the fastest way to correct that model before any tool call happens. It's context front-loading.\n\nThe sequence we want:\n\n`llms.txt`\n\n→ accurate understanding of the productWithout step 2, step 4 is unreliable.\n\nHonest answer: it's uneven.\n\nAs of mid-2026, Perplexity has confirmed support. Some versions of Claude and ChatGPT will fetch it when explicitly pointed at a domain. Cursor fetches it for library documentation. AI agents built on top of these models increasingly look for it.\n\nBut most crawlers don't proactively fetch it yet. If you publish a perfect `llms.txt`\n\ntoday, plenty of AI systems will still walk past it.\n\nSo why bother?\n\nTwo reasons.\n\n**First, adoption is accelerating.** The file costs you almost nothing to publish — maybe an hour to write well. The upside is asymmetric: as more AI systems adopt the standard, every one of them gets an accurate picture of your product without you doing anything extra.\n\n**Second, it disciplines your own thinking.** Writing `llms.txt`\n\nforced me to answer: what is QRflows, in one sentence? Which features are core versus secondary? What's the pricing in plain language? What pages actually matter?\n\nI've written landing pages, blog posts, and product docs for QRflows. None of them forced me to answer those questions as concisely as writing 40 lines of Markdown did.\n\n**Write llms.txt before your landing page, not after.**\n\nThe exercise of writing it — what is this, who is it for, what are the key pages, what's the pricing — is the same exercise as product positioning. Doing it first makes everything else easier to write.\n\n**Keep it honest about limitations.**\n\nI included the plan limits (Starter: 2 QR codes, Growth: 50) because if an AI recommends QRflows to someone who needs 100 QR codes on a €9 budget, that's a bad outcome for everyone. Accurate information beats optimistic information.\n\n**Add an llms-full.txt if you have documentation.**\n\n`llms-full.txt`\n\nis an optional companion — a single file that dumps all your documentation in one place. For a SaaS with deep docs, it's worth doing. For a simple product site, `llms.txt`\n\nalone is enough.\n\nOurs is live at [qrflows.app/llms.txt](https://qrflows.app/llms.txt).\n\nIf you're building a SaaS and want to add one, the format is:\n\n```\n# Product Name\n\n> One sentence description.\n\nBrief paragraph: what it is, who it's for.\n\n## Section heading\n\n- [Page title](url): One-line description\n- [Page title](url): One-line description\n\n## Optional (lower priority content)\n\n- [Blog](url): ...\n```\n\nThe `> blockquote`\n\nat the top is the canonical one-sentence description that AI systems extract first. Keep it sharp.\n\n*If you've added llms.txt to your product — drop a comment with what format you ended up using. Curious what others include in Optional.*", "url": "https://wpnews.pro/news/why-i-added-llms-txt-to-my-saas-and-what-happened-when-claude-actually-read-it", "canonical_source": "https://dev.to/qrflows/why-i-added-llmstxt-to-my-saas-and-what-happened-when-claude-actually-read-it-51k4", "published_at": "2026-08-18 08:22:17+00:00", "updated_at": "2026-08-18 08:42:26.179236+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence"], "entities": ["QRflows", "Claude", "MCP"], "alternates": {"html": "https://wpnews.pro/news/why-i-added-llms-txt-to-my-saas-and-what-happened-when-claude-actually-read-it", "markdown": "https://wpnews.pro/news/why-i-added-llms-txt-to-my-saas-and-what-happened-when-claude-actually-read-it.md", "text": "https://wpnews.pro/news/why-i-added-llms-txt-to-my-saas-and-what-happened-when-claude-actually-read-it.txt", "jsonld": "https://wpnews.pro/news/why-i-added-llms-txt-to-my-saas-and-what-happened-when-claude-actually-read-it.jsonld"}}