AI crawlers allowed in robots.txt
Ghost serves robots.txt from your active theme — add or edit robots.txt in the theme's root and re-upload it. There is no setting for it in Ghost admin.
Site platforms
Ghost starts further along than most: it emits Organization and Article JSON-LD without being asked, server-renders everything, and sets canonicals and meta descriptions properly. A Ghost site with nothing configured usually passes six of the eight checks.
The one that surprises people is robots.txt, because there is no setting for it in Ghost admin — it comes from the active theme. Change theme and your robots.txt changes with it, which is a coupling nobody expects until a redesign silently drops the file.
How we recognise it: a Ghost generator tag, or an X-Ghost-Cache-Status response header. Run the free readiness check and the fixes it gives you are the Ghost ones below.
robots.txt goes in the theme root; llms.txt goes in the theme's /public directory, which Ghost serves from the site root. Keeping both in the theme means they travel with it — and it is why a theme swap can take them away without warning.
Theme layout
your-theme/
robots.txt
public/
llms.txtGhost generates one from Publication settings, with sameAs carrying only the Facebook and Twitter fields it collects. If your LinkedIn or Crunchbase page is what the engines would recognise, add a fuller block in Settings → Code injection → Site header and accept that there will be two — engines merge them by @type more gracefully than a missing sameAs costs you.
Assistants asked "who runs this newsletter" go looking for it, and answer from whatever they find. A Ghost site whose about page is a single line has handed that answer to whoever wrote about you elsewhere.
CueScout runs eight checks on whether an answer engine can read a site at all. These are the ones whose answer is different on Ghost — the rest are the same everywhere.
Ghost serves robots.txt from your active theme — add or edit robots.txt in the theme's root and re-upload it. There is no setting for it in Ghost admin.
Put llms.txt in your theme's /public directory. Ghost serves everything in there from the site root, so it lands at /llms.txt.
Ghost already emits Organization JSON-LD from your Publication settings, but sameAs only carries the Facebook and Twitter fields it has. Settings → Code injection → Site header is where to add a fuller block.
These describe Ghost’s own settings, which move without warning us. Last checked against the product on 2026-08-14.
Yes — Organization on the site and Article on posts, generated from Publication settings. The gap is sameAs, which only carries the two social fields Ghost asks for.
Same place: the theme's /public directory. You could also serve it from nginx in front of Ghost, which survives theme changes and is the better option if you have the access.
Public archives do, when they answer a question somebody asked. Members-only posts do not — a crawler sees the paywall, and the content behind it may as well not exist for citation purposes.
Substack
Almost nothing here is yours to fix — and that changes what is worth doing instead.
Site platformsWordPress
The virtual robots.txt, the Yoast and Rank Math settings that produce sameAs, and where llms.txt goes.
Site platformsDocusaurus
static/ handles the files, headTags handles the schema, and pre-rendering handles the rest.
The readiness check is free, needs no signup, and takes about half a minute. It works out what your site is built on and gives you the fixes written for it.