Checked against the product’s code on 7 November 2026.
Find the sitemap at /sitemap.xml on your site’s own address. This index links to the site’s XML sitemaps. The route table below also covers crawler rules and readable copies of published pages and posts for search engines and AI tools.
Check them on your site’s own address before connecting an integration.
Routes
Section titled “Routes”| Route | Purpose |
|---|---|
/robots.txt |
Crawler directives from the site’s bot policy, with EmDash’s SEO settings as a fallback when that policy supplies none. |
/sitemap.xml |
XML sitemap index. The host supports native sites and sites shaped by a WordPress migration. |
/sitemap-pages.xml, /sitemap-posts.xml |
Published, indexable content addresses. |
/sitemap-taxonomies.xml |
Taxonomy archives on sites shaped by a WordPress migration. |
/llms.txt |
A guide linking the readable content resources and entries. |
/sitemap.md |
A Markdown sitemap. |
/content/index.md |
A Markdown index of exported content. |
/content/pages/<slug>.md |
Markdown for one page. Replace <slug> with its actual slug. |
/content/posts/<slug>.md |
Markdown for one post. Replace <slug> with its actual slug. |
/content/jsonld.json |
Structured content with validation results. |
/content/openapi.json |
A description of this reading surface. |
/content/mcp.json |
Resource descriptions for tools that understand MCP metadata. It is not a running MCP server. |
/content/validate.json |
A report comparing exported facts with the public content used to produce them. |
/feed.xml |
The post feed. |
The OpenAPI descriptor lists GET operations. It does not define writes to site content. A Markdown copy is a content representation, not a copy of the page’s visual layout or interactive behavior.
Which content appears
Section titled “Which content appears”A draft does not appear in /llms.txt or the public content pack. The content pack selects published pages and posts. It excludes entries protected by a WordPress password brought in by a migration, and entries marked noindex in their content SEO settings. Restricted pages and posts pass through the anonymous content gate before Markdown is created, so the export contains the public portion.
If an entry’s access cannot be checked, that entry is left out of the public content pack rather than exported with a blank body. Its individual Markdown address can return 404 during that failure, even for a public entry. Retry before treating an omitted entry as a deletion.
The index has a fixed entry ceiling. Do not use it as a replacement for a full site export or as proof that every entry in a large site was included.
Sitemap entries also exclude content marked noindex. Search visibility and access control remain different settings. A crawler directive is not a substitute for the content access gate.
Which address the links use
Section titled “Which address the links use”Links in these resources use the origin of the request that served the file. On the platform address, they use that address. On an active custom domain, they use that domain.
Check the returned links after a domain change. If a file names an unexpected host, report the file and the address you requested to support.
Change crawler policy
Section titled “Change crawler policy”Site → Readiness shows the bot and agent policy. Ask the copilot to change it through an approval card. The policy distinguishes discovery, AI search and training access.
EmDash’s own Settings → SEO includes a robots text field. While a Praxis bot policy supplies robots text, that policy takes precedence.
The code can produce crawler directives. It does not prove that every remote crawler obeys them.
Check a site
Section titled “Check a site”- Set
SITE_ORIGINto the site’s real HTTPS origin. The example domain below is a placeholder. - Read
/llms.txtto find the content resources and entries. - Read
/sitemap.xmlto find the XML sitemaps. - Read
/content/validate.jsonfor the exported-fact comparison report.
The commands below make those public reads:
SITE_ORIGIN="https://your-site.example"curl -fsS "$SITE_ORIGIN/llms.txt"curl -fsS "$SITE_ORIGIN/sitemap.xml"curl -fsS "$SITE_ORIGIN/content/validate.json"- Review the returned hostnames, published entries and validation warnings.
- Check a restricted test page as an anonymous reader too.
Limits. These reads do not validate private admin access or an external agent’s ability to change the site.