Skip to content

epic(docs-site): the site is technically un-indexable — fix robots/sitemap/canonical/OG first, then the keyword shape #12243

Description

@os-zhuang

Why this epic exists

The docs site at https://objectstack.ai is, as of 2026-08-25, technically un-indexable in the ways that matter: there is no sitemap and no robots.txt (both paths answer 200 with the homepage HTML), no canonical link on any page, and no metadataBase. 403 doc pages exist with nothing pointing a crawler at them. On top of that the on-page keyword signal is thin — half the pages ship two <h1>s, page titles have a median length of 14 characters, and half the meta descriptions are too short to be used as snippets.

The order matters: the P0 lane is the precondition. Rewriting 403 titles while /sitemap.xml returns HTML buys nothing.

Lane / territory (epic PM declaration)

  • Epic PM session: f9f0958b-ab68-46cc-801c-216aa7ee2107
  • Declared file territory:
    • apps/docs/** — app routes, proxy.ts, lib/, components/, public/
    • content/docs/** — frontmatter title / description, body headings
    • scripts/check-*.mjs + the Lint & Repo Gates step list — only for the new doc-shape gates two sub-issues ask for
  • Not in territory: packages/**, anything under docs/adr/**, .claude/**.

Sub-issues

P0 — indexability (do these first; #12234 unblocks #12235)

P1 — keyword shape (maintainer-voice; PRs stay open for review)

P2 — structured data, crawl hygiene, weight

Shared facts every sub-issue inherits

Definition of done for the epic

  • curl -sI https://objectstack.ai/robots.txt200 text/plain, naming the sitemap
  • /sitemap.xml is XML and lists every doc page
  • a random dotted path 404s
  • every page type emits one absolute canonical and a working OG card
  • no page renders more than one <h1>
  • title/description length gates run in Lint & Repo Gates

Source

Filed from an SEO review of apps/docs on 2026-08-25 — every claim above was measured against the local dev server and against production, with the commands recorded in the individual sub-issues.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions