LTLLMTXT.co
Ghost Guide

How to Add llms.txt to a Ghost Blog

Adding a llms.txt file to Ghost depends on how you run it. Self-hosted Ghost sits behind a web server you control, so serving the file is easy. Ghost(Pro), the managed option, gives you no server access — so you route around it. This guide covers both honestly.

https://

Generate the content first

Both setups serve the same file, so generate it up front. Our tool reads your published Ghost posts and pages and drafts a clean llms.txt. Enter your domain, review, and keep the file handy.

Generate your file:

https://

What the file looks like

A blog benefits from an llms.txt that highlights your best posts and key pages rather than dumping every URL. Markdown structure:

# Your Publication

> One sentence on what your Ghost blog covers
> and who should read it.

## Cornerstone Posts
- [Guide One](https://yourdomain.com/guide-one): What it covers.
- [Guide Two](https://yourdomain.com/guide-two): What it covers.

## Topics
- [Tag: Product](https://yourdomain.com/tag/product): Series.
- [Tag: Research](https://yourdomain.com/tag/research): Series.

## About
- [About](https://yourdomain.com/about): The publication.
- [Subscribe](https://yourdomain.com/#/portal): Join the list.

Save it as plain text named llms.txt.

Self-hosted Ghost: an Nginx location block

A self-hosted Ghost install runs behind a reverse proxy — almost always Nginx (or Caddy). Put your llms.txt somewhere on the server, such as /var/www/ghost-static/llms.txt, then add a location block to your Nginx server config so the file is served before the request proxies to Ghost:

location = /llms.txt {
    alias /var/www/ghost-static/llms.txt;
    default_type text/plain;
}

location / {
    proxy_pass http://127.0.0.1:2368;
    # ...existing Ghost proxy settings
}

Reload Nginx (sudo nginx -s reload). The exact location matching order matters, so place the specific = /llms.txt block above the catch-all. On Caddy, a matching handle directive achieves the same result.

Ghost(Pro): proxy or redirect

Ghost(Pro) is fully managed. You cannot reach the server, so there is no Nginx to edit and no root file to drop. Two honest options remain:

Reverse proxy (preferred)

Route your custom domain through Cloudflare and add a Worker or rule that returns your Markdown for /llms.txt while passing all other traffic to Ghost(Pro). This gives a clean 200 at the canonical path.

Redirect to a hosted copy

If you cannot add a proxy, host the file elsewhere and use a 301 from /llms.txt to it via your DNS/CDN layer. Crawlers that follow redirects will reach it, though a direct response is cleaner.

Verify it works

1

Open the URL

Visit https://yourdomain.com/llms.txt and confirm you see plain-text Markdown, not a themed Ghost page.

2

Check the response

curl -I to confirm a 200 as text/plain (proxy/Nginx) or a 301 that resolves to your file (redirect).

3

Validate the links

Every URL in the file must resolve on your live blog. Refresh the file whenever you publish new cornerstone posts.

4

Run a visibility check

Use our AI Visibility tool to confirm the file is reachable and parseable from outside your host.

Frequently Asked Questions

Can I upload llms.txt through the Ghost admin?

No. Ghost's admin handles posts, pages, and image uploads, but it has no facility to place a raw text file at your domain root. How you add llms.txt depends entirely on whether you self-host Ghost or run it on Ghost(Pro).

What is the cleanest option on self-hosted Ghost?

Add a location block to the Nginx (or Caddy) config that sits in front of Ghost, serving llms.txt from a file on disk before the request reaches the Node process. This yields a direct 200 at /llms.txt and never touches your theme or content.

I'm on Ghost(Pro) — what can I do?

Ghost(Pro) is managed hosting with no server or root file access, so you cannot place a raw file. The workable options are a reverse proxy in front of your domain (for example a Cloudflare Worker) that returns the file for /llms.txt, or a redirect to a copy hosted elsewhere. A direct proxy response is cleaner than a redirect.

Can I use routes.yaml to serve the file?

Ghost's routes.yaml can map a URL to a template, but templates render as text/html, so the response would not be a clean text/plain file. It is a workaround, not a recommended path. Prefer an Nginx location block (self-hosted) or a proxy (Ghost Pro).

Does llms.txt guarantee AI tools will cite my blog?

No. As of mid-2026 llms.txt is a proposed, advisory standard with no enforcement, and support varies across AI systems. There is no guarantee any model will fetch or use your file. It is a sensible signal to publish, not a guarantee of citations.

Generate Your llms.txt for Ghost

Enter your domain and get Markdown ready for an Nginx block or a proxy on Ghost(Pro).

https://