Webflow AI-agent readiness: llms.txt, JSON-LD, and the 3 install methods that actually work
·8 min read

Webflow AI-agent readiness: llms.txt, JSON-LD, and the 3 install methods that actually work

Webflow blocks raw file uploads at the root, so /llms.txt is not one-click. Three methods (CF Worker, edge proxy, sub-domain) plus JSON-LD and robots.txt.

llms.txtWebflowAI SEOGEO

Webflow gives designers a beautiful CMS and a locked-down hosting layer. That second part is where AI-agent readiness gets awkward: you cannot just SFTP an llms.txt into the site root, and there is no functions.php to hook into. So a lot of Webflow sites in 2026 ship zero agent-facing signals, which means zero chance of being cited when ChatGPT, Claude, Perplexity, or Google AI Overviews answer a question in your niche.

This guide fixes that. Three methods, honest trade-offs, no plugin fantasy. You will end up with a working /llms.txt, valid JSON-LD, and the crawler settings that keep GPTBot and ClaudeBot happy.

What agents actually check on a Webflow site

When an AI agent lands on yoursite.webflow.io or your custom domain, it does not run your animations. It hits three URLs in a predictable order:

  • /robots.txt — is this crawler allowed? Webflow serves a default one that blocks nothing, which is fine.
  • /llms.txt — is there a curated map? Webflow returns 404 by default. This is the biggest miss.
  • Your homepage HTML — does it carry JSON-LD (Organization, WebSite) that agents can quote? Webflow lets you inject this in Site Settings.

Ship all three and you jump ahead of roughly 96 percent of Webflow sites that have never touched the agent layer.

The problem with /llms.txt on Webflow

Webflow hosts everything as HTML pages. You cannot upload a raw text file to the root. A Webflow CMS page called "llms" renders as HTML with your site chrome, which is not what an agent expects (they want Content-Type: text/plain). So you need a small layer in front of Webflow that intercepts /llms.txt and returns plain text. Two clean ways to do that in 2026.

Method 1: Cloudflare Worker in front of Webflow (recommended)

If your custom domain is on Cloudflare (most Webflow custom domains are), a tiny Worker on the domain intercepts /llms.txt and returns plain text. Everything else passes through to Webflow untouched.

  1. In Cloudflare dashboard, go to Workers & Pages, create a new Worker.
  2. Paste the code below, changing the placeholder text to your site's real map.
  3. Under Triggers, add a Route: yoursite.com/llms.txt* (Zone = your domain).
export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === "/llms.txt") {
      const body = `# YourBrand

> One-line pitch for your Webflow site: what it is, who it serves.

## Pages
- [Home](https://yoursite.com): what visitors do here.
- [About](https://yoursite.com/about): founder story and mission.
- [Pricing](https://yoursite.com/pricing): plan tiers with real prices.
- [Blog](https://yoursite.com/blog): editorial focus and update cadence.
- [Contact](https://yoursite.com/contact): sales and support routes.

## Case studies
- [Case one](https://yoursite.com/case-1): one-line takeaway.
- [Case two](https://yoursite.com/case-2): one-line takeaway.`;

      return new Response(body, {
        headers: { "content-type": "text/plain; charset=utf-8" }
      });
    }
    return fetch(request);
  }
};

Verify by hitting https://yoursite.com/llms.txt in a browser. You should see raw markdown text, not a Webflow page. If you see the Webflow HTML, the Worker Route did not match; make sure the route pattern ends with * and the Zone is your custom domain, not webflow.io.

Method 2: Netlify or Vercel edge in front of Webflow

If Cloudflare is off the table (some teams prefer to keep the DNS elsewhere), the same pattern works on Netlify Edge Functions or Vercel Edge Middleware. Point your apex domain at Netlify, set up a proxy rule to Webflow for all paths except /llms.txt, and serve the text file from Netlify's static folder. This is more setup but keeps everything in one dashboard.

Trade-off: you now have a proxy in the request path, so any Webflow analytics that rely on IP-level detection will see the edge instead of the visitor. If that matters, stick with Method 1.

Method 3: sub-domain shortcut (fastest, weakest signal)

Not every AI agent insists on /llms.txt living on the exact apex. If you host a small static file at llms.yoursite.com/llms.txt (Cloudflare Pages, GitHub Pages, Netlify), some crawlers will pick it up when linked from your root robots.txt. Add a line: Sitemap: https://llms.yoursite.com/llms.txt. Weaker than the direct root file, but works in one afternoon with zero Workers.

Add JSON-LD in Site Settings

Webflow lets you inject head code globally: Site Settings → Custom Code → Head Code. Drop the two blocks below, filled in with real values.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "YourBrand",
  "url": "https://yoursite.com",
  "logo": "https://yoursite.com/logo.png",
  "sameAs": [
    "https://x.com/yourbrand",
    "https://linkedin.com/company/yourbrand"
  ]
}
</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "YourBrand",
  "url": "https://yoursite.com"
}
</script>

These two blocks alone give ChatGPT and Perplexity a clean "who is this" answer without them having to guess from the HTML. See the full JSON-LD templates for FAQ, Product, and Article types if your Webflow site has those.

Robots.txt: leave it alone (mostly)

Webflow's default robots.txt allows every crawler, which is what you want in 2026 unless you have a specific reason to block a bot. If you want to explicitly welcome the AI agents, add these under Site Settings → SEO → Robots.txt:

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

More background on why each of these matters in our robots.txt for AI bots guide.

How to verify agents can actually read your site

  1. curl https://yoursite.com/llms.txt — expect plain text, not HTML.
  2. View source on your homepage, search for application/ld+json — expect the two blocks above.
  3. Ask ChatGPT: "What does yoursite.com do, and who runs it?" A citation-quality answer means signals landed. A hallucinated or generic answer means at least one of the three signals is missing.
  4. Run a full scan on agentfix.pro. The report shows the exact 33 signals agents check and which ones your Webflow site is missing.

When to ship this yourself vs pay us to do it

If you already run a Cloudflare Worker or you enjoy the setup, Method 1 is a 20-minute job and free forever. If you would rather spend those 20 minutes on client work, our Webflow-specific pack ($29) delivers a filled-in llms.txt, both JSON-LD blocks, robots.txt lines, and a small install README. Same output either way.

Related: the full 33-signal GEO checklist, the WordPress version of this guide, and the Shopify version.

Want this shipped for you?

AgentFix scans your site for all 33 AI-readiness signals and emails you a personalised ZIP with the missing files generated from your content. WordPress, Webflow, Tilda, Shopify, cPanel install guides for each. From $1 one-time.