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

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

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

llms.txtTildaAI SEOGEO

Tilda powers a lot of small business sites in Europe and CIS, and the platform is famously locked-down: you get a beautiful block editor and pixel-perfect design, but zero shell access, no functions.php, no FTP to the root. Which means that in 2026, when an AI agent like ChatGPT or Perplexity hits your Tilda site looking for /llms.txt, it gets a 404 and moves on. Your site becomes invisible to the citation layer.

This guide fixes that with three honest methods. No made-up plugin, no fake "Tilda AI mode" toggle. You end up with a working /llms.txt, valid JSON-LD in the head, and robots.txt lines that welcome the AI crawlers.

What agents check when they land on a Tilda site

AI agents do not render your Zero Block animations. They fetch three things in order:

  • /robots.txt — Tilda serves a default one that allows everything. Fine as-is on paid plans; the free plan does not let you edit it.
  • /llms.txt — Tilda returns 404 by default and there is no built-in way to publish this file. This is the biggest miss.
  • Your homepage HTML — does it include JSON-LD (Organization, WebSite) in the head? Tilda lets you inject this on the paid plan under Site Settings → More → HTML code for HEAD.

Get all three right and your Tilda site jumps ahead of roughly 96 percent of Tilda sites that have never touched the agent layer. Full breakdown of the 33 signals is in the GEO checklist.

Why /llms.txt is hard on Tilda

Tilda hosts every page as HTML with the site chrome around it. You cannot upload a raw text file to the root, and a page called "llms" made in the editor comes out as Content-Type: text/html wrapped in your header and footer, which is not what an AI agent expects. Crawlers look for plain text with no wrapping. So you need a layer in front of Tilda that intercepts /llms.txt and returns raw text. Two clean ways to do that, plus a shortcut if you cannot touch DNS.

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

If your custom domain sits on Cloudflare (very common with Tilda), a tiny Worker on the domain intercepts /llms.txt and returns plain text. Everything else passes through to Tilda untouched.

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

> One-line pitch: what your Tilda site is and who it serves.

## Pages
- [Home](https://yoursite.com): what visitors do here.
- [About](https://yoursite.com/about): who runs this and why.
- [Services](https://yoursite.com/services): what you sell, tiers and pricing.
- [Portfolio](https://yoursite.com/portfolio): recent work.
- [Contact](https://yoursite.com/contact): how to reach you.

## 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 opening https://yoursite.com/llms.txt in a browser. Raw markdown text = win. Tilda-wrapped HTML = the Worker Route did not match; make sure it ends with * and the Zone is your custom domain, not the tilda.ws subdomain.

Method 2: sub-domain shortcut (fastest, works today)

Cannot or will not run a Worker? Host /llms.txt as a static file on a small sub-domain and point AI crawlers at it from your main robots.txt.

  1. Create a static site on Cloudflare Pages, Netlify, or GitHub Pages. Just one file: llms.txt with your site map.
  2. Point llms.yoursite.com at it (CNAME in DNS).
  3. In Tilda Site Settings → SEO → robots.txt (paid plan), add: Sitemap: https://llms.yoursite.com/llms.txt

Weaker signal than the root file since some strict crawlers only look at /llms.txt on the exact origin, but it takes 15 minutes and requires zero code. Ship this today, upgrade to Method 1 later.

Method 3: edge proxy through Netlify or Vercel

If Cloudflare is off the table, the same pattern works on Netlify Edge Functions or Vercel Edge Middleware: proxy every path to Tilda except /llms.txt, which you serve as a static file. More setup than Method 1, but keeps DNS and hosting in one dashboard. Trade-off: any Tilda analytics that depend on IP will now see the edge instead of the visitor.

Add JSON-LD in the head (paid plan required)

Tilda lets you inject head code globally under Site Settings → More → HTML code for HEAD (Business plan and up). Paste the two blocks below with your 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 give ChatGPT and Perplexity a clean "who is this" answer without them having to guess from the visual chrome. If your Tilda site has FAQ blocks, product pages, or long-form articles, add the matching schema types from the full JSON-LD templates.

On the free Tilda plan there is no head-code injection. Two options: upgrade to Personal or Business (starts around $10/mo), or accept that AI agents will only see what is in your HTML body. The llms.txt route still works via CF Worker on any plan since Tilda does not need to know about it.

Robots.txt: welcome the AI crawlers explicitly

Tilda paid plans expose robots.txt editing under Site Settings → SEO → robots.txt. Add these lines to make sure GPTBot, ClaudeBot, and PerplexityBot are welcome:

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

Background on each of these crawlers and why Google-Extended matters even when GoogleBot is already allowed is in the robots.txt for AI bots guide.

Verify agents can actually read your Tilda site

  1. curl -I https://yoursite.com/llms.txt — expect 200 OK and content-type: text/plain. If you see text/html, the Worker or proxy is not matching the route.
  2. View source on your homepage, search for application/ld+json — expect the two script blocks. If empty, the head injection did not save (check plan tier).
  3. Open ChatGPT and ask: "What does yoursite.com do and who runs it?" A citation-quality answer means the signals landed. A generic or hallucinated answer means one of the three is missing.
  4. Run a full scan on agentfix.pro. The report lists every one of the 33 signals agents check on your specific domain.

When to ship this yourself vs pay us

If you already run a Cloudflare Worker for your Tilda domain, Method 1 is a 20-minute job and free forever. If Cloudflare is new to you and 20 minutes on infra is not the best use of your afternoon, our Tilda-specific pack ($29) delivers a filled-in llms.txt, both JSON-LD blocks, robots.txt lines, and a 4-step install README written for the Tilda UI. Same output either way, your call.

Related: the full 33-signal GEO checklist, WordPress version, Webflow version, 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.