AI Discoverability
llms.txt deployment guide
SEOGrove generates a markdown-formatted llms.txt file for your site
following the llmstxt.org spec.
When hosted at /llms.txt on your domain, AI assistants can read it directly
to understand who you are, what you do, and which content to cite.
What is llms.txt?
llms.txt is an emerging open standard (similar to robots.txt)
that tells large language models about your site. When placed at https://yourdomain.com/llms.txt,
AI assistants that support the spec — including Perplexity, some Anthropic tooling, and third-party
crawlers that feed LLM training and RAG pipelines — can parse it to understand:
- Your brand name, category, and one-liner description
- Who you are (founder, founding date, key profiles)
- Your most important content pieces with titles and URLs
- What you do not want cited (optional exclusions)
The spec is new and adoption is growing. Hosting it now is low-cost and compounds over time as more AI crawlers begin supporting it. It also makes SEOGrove's citation monitoring data more actionable — when AI assistants can find structured context about your site, citations improve.
Generating your file
SEOGrove generates a llms.txt file for each site automatically:
- After every keyword research run (when new clusters and content are added)
- On demand via the Regenerate button in the llms.txt section of your site dashboard
To regenerate manually: go to your site dashboard → scroll to the llms.txt panel → click Regenerate. Generation takes about 30 seconds. The result is saved automatically and available for download immediately.
Deploying the file
The file must be accessible at exactly https://yourdomain.com/llms.txt
(root path, no subdirectory). Steps by platform:
WordPress
- Download the file from your site dashboard.
- In your WordPress admin, go to Appearance → File Editor or use an FTP/SFTP client.
- Upload
llms.txtto the root of your WordPress installation (same level aswp-config.php). - Verify it loads at
https://yoursite.com/llms.txt.
Alternatively, use a plugin like WP File Manager or upload via cPanel File Manager. Make sure the file is not blocked by your .htaccess or security plugin.
Next.js / static sites
- Download the file from your site dashboard.
- Place it in your
/publicdirectory aspublic/llms.txt. - Redeploy your site — Next.js serves everything in
/publicat the root path.
Custom backend / CDN
- Download the file or copy its content from the dashboard.
- Create a route that serves the content with
Content-Type: text/plain; charset=utf-8atGET /llms.txt. - Alternatively, upload the file to your CDN bucket and add a redirect/rewrite rule from
/llms.txtto the CDN object URL.
Webhook automation
If you use the SEOGrove webhook to auto-publish articles, you can extend your receiver to also
fetch and update llms.txt on a schedule. The file is available at:
GET /sites/:site_id/llms-txt Authorization: (standard session — authenticated users only)
A public unauthenticated endpoint for programmatic download is on the roadmap. For now, download manually from the dashboard or trigger regeneration via the API.
File format reference
SEOGrove generates a llms.txt file following the
llmstxt.org spec.
The file is plain markdown with a defined structure:
# [Brand Name] > [One-liner description] [Optional longer context paragraph] ## Content - [Article Title](https://yourdomain.com/slug): Brief description of what it covers - [Article Title 2](https://yourdomain.com/slug2): Description ... ## About [Company/founder information, founding date, category, key profiles] ## Optional: Exclusions - [What NOT to cite or attribute to this site]
SEOGrove populates this automatically from your site's entity data (brand name, one-liner, category, founder — configured in Settings → Entity data), your most recent published articles, and your site's niche analysis context. The more complete your entity data, the better the generated file.
Keeping the file fresh
SEOGrove automatically regenerates your llms.txt after each keyword
research run — at most once per 7 days to avoid unnecessary AI calls. This means the file stays
up to date as your content library grows without manual effort.
However, SEOGrove cannot automatically push the updated file to your site. After a regeneration, you'll see the updated content in your dashboard. Re-download and re-deploy when you want to push changes live.
Verifying the deployment
After deploying, verify the file is accessible by visiting
https://yourdomain.com/llms.txt in your browser.
You should see the plain-text markdown content with Content-Type: text/plain.
Common issues:
- 404: File not at root level. Check your upload path and retry.
- HTML returned instead of plain text: Serving as the wrong MIME type. Check your web server / CDN configuration to serve
.txtfiles astext/plain. - WordPress security plugin blocking it: Some security plugins block access to unknown root files. Add
llms.txtto the allowed list. - Cached old version: If you've updated the file, clear your CDN cache so crawlers fetch the latest version.