Skip to content

docs site: /robots.txt and /sitemap.xml do not exist — both answer 200 with the homepage HTML #12232

Description

@os-zhuang

One-liner

The site has no robots.txt and no sitemap. Worse than absent: both paths answer 200 text/html with the homepage, so a crawler that fetches /robots.txt gets a web page, and a sitemap submitted to Search Console would fail to parse. 403 doc pages have nothing telling a search engine they exist.

Measured (production, 2026-08-25)

$ curl -s -o /dev/null -w "%{http_code} %{content_type}\n" https://objectstack.ai/robots.txt
200 text/html; charset=utf-8
$ curl -s -o /dev/null -w "%{http_code} %{content_type}\n" https://objectstack.ai/sitemap.xml
200 text/html; charset=utf-8
$ curl -s https://objectstack.ai/robots.txt | head -c 60
<!DOCTYPE html><html data-dpl-id="dpl_3Yii…

apps/docs/app/ contains no robots.ts and no sitemap.ts; apps/docs/public/ holds only logo.svg and hero-cover-dark.png.

Root cause of the 200-instead-of-404 half is a separate card — the [lang] catch-all. Fixing this one does not fix that one, and vice versa.

Expected

  • apps/docs/app/robots.ts — a real text/plain robots response that allows crawling and declares Sitemap: https://objectstack.ai/sitemap.xml.
  • apps/docs/app/sitemap.ts — every indexable URL: /, /docs/** (403 pages, from source.getPages()), and the blog. lastModified should come from a real signal (git mtime of the source .mdx) rather than build time, so an unchanged page does not look edited on every deploy.
  • Both must use the canonical origin https://objectstack.ai, taken from one shared constant, not hardcoded twice.

Acceptance

  • curl -sI https://objectstack.ai/robots.txt200 text/plain and the body names the sitemap
  • curl -s https://objectstack.ai/sitemap.xml | head -1 → an XML declaration, not HTML
  • the sitemap's URL count matches find content/docs -name '*.mdx' | wc -l plus the non-docs routes
  • no absolute URL in either file names a host other than objectstack.ai

Source

Found in an SEO review of the docs site (apps/docs) run on 2026-08-25, measured against the local dev server and against production. The canonical origin is https://objectstack.ai — maintainer ruling recorded in #10659:

这个仓的文档站规范 URL 是 https://objectstack.ai

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions