Key Takeaway
To add llms.txt to WordPress, upload a plain-text Markdown file to your root directory via FTP or a file manager plugin. On Shopify, host it through a page route or a theme asset workaround. On Webflow, upload it as an asset and publish — each method puts the file at yourdomain.com/llms.txt where AI agents expect it.
This guide is for marketers and developers who manage sites on WordPress, Shopify, or Webflow and want to add an llms.txt file without guesswork. Each platform has different file-hosting constraints, and the method that works on one will fail on another. Below you will find the exact steps for each CMS, what the file must contain to be valid, and how to verify it is live and reachable.
What is llms.txt and why does it matter for your CMS?
llms.txt is a plain Markdown file placed at the root of a website that gives AI agents a curated index of your most important pages — cutting through the navigation bars, scripts, and boilerplate that waste a model's limited context window. Adding one is a low-effort signal that costs little to maintain and may help AI systems that choose to read it.
The proposal was published by Jeremy Howard — co-founder of Answer.AI and fast.ai — on 3 September 2024. As of the v2 update, thousands of sites publish an llms.txt file, documentation platforms generate one automatically, and Chrome's Lighthouse audits sites for one as part of its agentic browsing checks. Even Anthropic and OpenAI publish llms.txt files for their own developer documentation.
For CMS users the challenge is practical: none of WordPress, Shopify, or Webflow expose a simple "upload a file to root" button. Each platform routes requests differently, so the implementation path is different on each. The reward for getting it right is that AI answer engines like ChatGPT, Perplexity, Claude, and Google AI Overviews have a clean, machine-readable map of your content instead of having to scrape cluttered HTML pages.
llms.txt is not a ranking factor and controls nothing — it is a hint, not a directive. No major AI vendor has confirmed that publishing one improves citation frequency. Treat it as content hygiene.
What must a valid llms.txt file contain before you upload it?
A valid llms.txt file requires exactly one element: an H1 heading with your site or project name. Every other element — the blockquote summary, H2 sections, and link lists — is optional but strongly recommended so agents have enough context to act on the file.
The August 2026 spec defines the structure as: an H1 heading first, then optionally a blockquote summary, then optional free-form Markdown paragraphs, then H2-delimited sections each containing an unordered list of links. Each link follows the syntax - [Title](URL): short description using absolute URLs including the scheme. Here is a minimal working example:
# Your Brand Name> One sentence describing what your site does and who it is for.## Documentation- [Getting Started](https://yourdomain.com/docs/start): Install and first steps.- [API Reference](https://yourdomain.com/api): Full endpoint catalog.## Optional- [Changelog](https://yourdomain.com/changelog): Release history.
Save the file as plain text encoded in UTF-8 with the MIME type text/plain. Keep descriptions factual and specific — under roughly 120 characters each. Avoid keyword stuffing; this file is written for a model, not a ranking algorithm. Once written, the file should remain small enough to fit in a model's context window on its own; the detail lives behind the links, not in the file itself.
| Element | Required? | Purpose |
|---|---|---|
| H1 heading | Yes | Site or project name — the only mandatory element |
| Blockquote | Recommended | One-sentence summary of what the site does |
| H2 sections | Recommended | Groups of related links by topic or content type |
| Link list items | Recommended | Absolute URLs with short descriptions for each page |
| ## Optional section | Optional | Secondary links an agent can skip if context is limited |
How do I add llms.txt to WordPress?
The most reliable method for WordPress is to upload the file directly to your server's root directory — the same folder that contains wp-config.php — using FTP, SFTP, or your hosting control panel's file manager. Once placed there, it is immediately accessible at yourdomain.com/llms.txt without any plugin or theme changes.
Method 1: FTP or hosting file manager (recommended)
Connect to your server with an FTP client (FileZilla is common) or open the file manager in cPanel or Plesk. Navigate to public_html (or www, depending on your host). Upload your llms.txt file directly into that root folder. No additional configuration is needed.
Method 2: WordPress plugin
Several robots.txt and virtual file plugins allow you to serve arbitrary text files from the root path without server access. Look for plugins that let you define custom file routes. This approach suits users on managed WordPress hosts like WP Engine or Kinsta where direct FTP access may be restricted. After installing, point the plugin to serve your Markdown content at the /llms.txt path.
Method 3: Redirect via .htaccess (Apache hosts only)
If you host the file content on a page (e.g., yourdomain.com/llms-txt-page/), you can add a redirect rule in .htaccess to serve it at the correct path. This is the least clean approach and can break if the redirect target changes — prefer direct upload where possible.
After uploading, verify the file is live by visiting https://yourdomain.com/llms.txt in a browser. The server must return an HTTP 200 OK status code — a 404 will prevent any agent from processing the file. You can also check the MIME type using your browser's developer tools Network tab; it should read text/plain.
How do I add llms.txt to Shopify?
Shopify does not allow arbitrary file uploads to the root directory, which means you cannot place llms.txt at yourdomain.com/llms.txt through the normal admin interface. The two practical workarounds are: serving the file via a Shopify page with a custom URL handle, or hosting the content as a theme asset and using a route redirect.
Method 1: Custom page with URL handle (simplest)
In your Shopify admin, go to Online Store → Pages → Add page. Set the page title to something descriptive internally. In the Search engine listing section, set the URL handle to llms (making it yourdomain.com/pages/llms). Paste your Markdown content into the page body. This does not give you the canonical /llms.txt path — it lands at /pages/llms — but it is publicly accessible and machine-readable. For many merchants this is an acceptable trade-off.
Method 2: Theme asset + app proxy (canonical path)
To serve the file at the true /llms.txt path, add the file content to your theme as a Liquid template, then use a Shopify app or custom route to return it as plain text. This requires theme editing access and developer comfort with Liquid. Create a new template (e.g., page.llms.liquid), set the content-type header to text/plain in the template, and assign the page to that template. Then set the page URL handle to llms.txt — Shopify will serve it at the correct path. Test by visiting https://yourdomain.com/llms.txt and confirming a 200 status response.
What to include for an ecommerce site: Your llms.txt links should point to your most important category pages, key product lines, return and shipping policy pages, and any structured Markdown or JSON feeds you expose. Ecommerce AEO benefits most when agents can find your policies and taxonomy without scraping cluttered product listing pages. Keep the file lean — it is a map, not a catalogue.
Shopify's /pages/ route is not the same as the root /llms.txt path. If canonical path matters to you, use the Liquid template method or accept that your file will live at /pages/llms.
How do I add llms.txt to Webflow?
Webflow supports llms.txt through its asset upload system or by creating a dedicated CMS page with a custom slug. The simplest approach, as documented by Webflow University, is to create a plain text file and host it at yourdomain.com/llms.txt by uploading it as an asset or creating a page with the appropriate path.
Method 1: Asset upload (quickest)
In the Webflow Designer, open the Assets panel and upload your llms.txt file. Webflow will host it on its CDN and give it a URL — but note that asset URLs on Webflow are typically served from a subdirectory path rather than the domain root (yourdomain.com/llms.txt). This means the asset URL may look like assets.website-files.com/…/llms.txt, which is not the canonical location agents expect. Use this method only if the canonical path is not a hard requirement.
Method 2: Static page with custom slug (recommended for canonical path)
In the Webflow Designer, create a new static page. In the page settings, set the slug to llms.txt. Add an Embed element to the page body and paste your raw Markdown content inside a <pre> block, or use a Rich Text element. Publish the site. Webflow will now serve the page at yourdomain.com/llms.txt. The content-type header will be text/html rather than text/plain, which is a minor deviation from the spec — the spec recommends text/plain MIME type for correct interpretation — but most agents that fetch the file will still be able to parse Markdown content embedded in HTML.
Method 3: Webflow Hosting redirects
If you maintain your actual llms.txt on an external service (a GitHub Gist, an S3 bucket, or a static file host), you can configure a 301 redirect in Webflow's Hosting settings: redirect /llms.txt to your externally hosted raw file URL. This gives you the canonical path and the correct MIME type, at the cost of an external dependency.
After publishing, verify the file by navigating to https://yourdomain.com/llms.txt. Webflow University notes that llms.txt is not a guarantee that AI systems will follow its guidance — it is a signal, not a control mechanism. Once you have confirmed the file is live, consider whether you also need to measure how AI systems are engaging with your content — the AEO Grader tool can help you understand how answer engines currently describe your brand.
How do I verify my llms.txt is correctly served after publishing?
Visit https://yourdomain.com/llms.txt in your browser and confirm three things: the page returns a 200 status (not 404 or 301 to an unexpected location), the content renders as readable Markdown text, and the file begins with an H1 heading. Those three checks cover the most common implementation failures.
For a deeper check, open your browser's developer tools, go to the Network tab, reload the page, and click the llms.txt request. Inspect the Response Headers. Look for Content-Type: text/plain — this is what the spec recommends. If you see text/html, agents can usually still parse the content, but serving text/plain is cleaner. The file must be accessible via HTTPS, and it is recommended to ensure the HTTPS version is canonical with any HTTP requests redirected to HTTPS.
You can also paste your file content into the validator at llmtxt.info, which checks for a missing or repeated H1, list items that are not valid links, relative URLs, and empty sections. Fix any errors the validator flags before considering the implementation complete.
Finally, link to your llms.txt in your site's HTML <head> using a rel="describedby" link element: <link rel="describedby" href="/llms.txt">. The spec recommends using standard link relations — rel="describedby" points to the llms.txt file that covers a page — to help clients find these files. This declaration costs nothing and makes the file discoverable to agents that scan HTML headers rather than guessing at root paths.
How does llms.txt fit into a broader AEO strategy?
llms.txt is one technical signal inside a wider answer engine optimization strategy — it points agents at your best content, but it does not make weak pages authoritative or guarantee citation. Think of it as the AI-era equivalent of a sitemap: a courtesy index that helps systems that choose to read it, while leaving everything else unchanged.
As CDP.com puts it: llms.txt is not a ranking factor, and no major AI vendor has confirmed that publishing one improves how often you are cited. The file should be paired with genuinely well-structured, citable content — an AEO content strategy that ensures your pages answer specific questions cleanly, use structured data, and are written at a level of specificity that an AI can lift and quote without rewriting.
For brands tracking whether AI engines are actually citing them, llms.txt is the beginning of the audit, not the end. Use the AEO Grader to measure your current AI visibility before and after implementation, and pair that with the guidance in our AEO audit checklist to identify the content gaps that matter most. You can also explore how tracking AI visibility differs from traditional rank tracking — the metrics are fundamentally different, and confusing them will lead you to optimise for the wrong signals.
llms.txt and robots.txt coexist without conflict. robots.txt governs crawl permissions; llms.txt governs convenience. Publishing llms.txt does not override any robots.txt rules.
Platform implementation comparison
The three platforms differ mainly in whether you have direct root-level file access. WordPress gives you full server access if you control hosting; Shopify restricts root access entirely; Webflow offers a page-slug workaround that achieves the canonical path at the cost of a non-ideal MIME type.
| Platform | Canonical /llms.txt path achievable? | Best method | MIME type outcome | Developer skill needed |
|---|---|---|---|---|
| WordPress (self-hosted) | Yes | FTP/file manager upload to root | text/plain (correct) | Low |
| WordPress (managed host) | Yes | File manager in hosting control panel or plugin | text/plain (correct) | Low–Medium |
| Shopify | Partial (Liquid template method) | page.llms.liquid template + /llms.txt slug | text/plain if set in template | Medium |
| Webflow | Yes (page slug method) | Static page with slug set to llms.txt | text/html (minor deviation) | Low |
| Webflow (external host) | Yes | 301 redirect to raw external file | text/plain (correct) | Low–Medium |
Frequently Asked Questions
Does adding llms.txt guarantee AI engines will cite my content more often?
No. llms.txt is a hint, not a directive — it controls nothing and blocks nothing. No major AI provider has publicly confirmed that reading llms.txt files improves citation frequency for third-party sites. It is best treated as content hygiene: a low-cost signal that helps agents that choose to read it, with no downside to publishing one.
Can I put llms.txt in a subfolder instead of the root?
Yes. The spec allows the file to live at a subpath such as /docs/llms.txt, in which case it covers only the pages under that path. The most specific applicable file takes precedence. For most CMS sites, placing it at the root is simpler and covers the entire domain, which is the more common approach.
Do I need a separate llms-full.txt file as well?
Not necessarily. llms-full.txt is an optional companion file that contains the full concatenated text of your site's pages in Markdown, rather than just a link index. Small or slow-changing sites can skip it. Larger content sites benefit from offering both: llms.txt as a lightweight table of contents, and llms-full.txt as the full payload for agents that want everything in one pass.
How often should I update my llms.txt file?
Update it whenever your site's most important pages change — new product lines, new documentation sections, changed policy pages. There is no crawl frequency to optimise for, since no major crawler has confirmed it reads the file on a schedule. The priority is accuracy: a stale llms.txt pointing to deleted pages is worse than no file at all.
Will llms.txt interfere with my robots.txt or sitemap.xml?
No. The three files serve completely different purposes and coexist without conflict. robots.txt governs crawl permissions, sitemap.xml lists URLs for search engine indexing, and llms.txt is a curated content guide for AI agents. Publishing llms.txt does not override or modify any robots.txt rules.
What is the difference between llms.txt and AGENTS.md?
llms.txt follows a strict Markdown structure defined by the llmstxt.org spec — an H1, optional blockquote, and H2 link sections — and is designed for public websites. AGENTS.md is a freeform prose file used inside code repositories to give coding agents instructions about how to work within that specific project. They serve different contexts and are not interchangeable.