Skip to content

Add per-page SEO tags, llms.txt, Markdown pages, robots.txt and analytics - #151

Merged
riglar merged 2 commits into
mainfrom
docs/seo-and-llms
Nov 2, 2026
Merged

riglar merged 2 commits into
mainfrom
docs/seo-and-llms

Conversation

@riglar

@riglar riglar commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #150. This fills the SEO and agent features we lost when we moved off GitBook.

What's added

  • A meta description for each page. Before this, all 66 pages had the same one. A page's description now comes from its description: front matter, or else from its first paragraph, shortened to about 160 characters. Five pages open with a weak line, such as one that just leads into a list, so they get a hand-written description: Quickstart, Devices & OS Versions, Flows & Workspaces, Runner Types and REST API Results.
  • Canonical URL plus og: and twitter: title, description and URL on every page, so shared links show the right title and summary.
  • /llms.txt, /llms-full.txt, and a .md copy of every page (e.g. /cli-reference/cloud.md), as GitBook had. VitePress syntax is turned into standard Markdown: callouts become blockquotes, tabs become bold labels, and links and images become absolute URLs. Each HTML page also links to its Markdown copy with <link rel="alternate" type="text/markdown">.
  • robots.txt allows all crawlers and points at the sitemap. Before this, the file had only Cloudflare's comment header.
  • Cloudflare Web Analytics. It's cookieless, so no consent banner is needed. I created the site in the Moropo account through the API. The token in config.mts is public by design. Dashboard: Analytics & Logs → Web Analytics.

Fixes a regression from #150

GitBook's "mention" links ([refund-policy.md](refund-policy.md "mention")) show the page title on GitBook. VitePress shows the raw file name, so the live site currently reads "Read about concurrency-and-parallel-runs.md". This fixes all 12 of them, across 4 files. npm run check now fails on any link whose text is a file name.

Testing

  • npm run build and npm run check pass. I confirmed the new check catches the old links.
  • I reviewed all 66 generated descriptions in llms.txt.
  • Under wrangler dev: .md is served as text/markdown, and llms.txt and robots.txt as text/plain.

🤖 Generated with Claude Code

…tics

Fills the gaps left by moving off GitBook:

- Each page gets its own meta description (front matter, or its first
  paragraph), a canonical URL, and og/twitter title, description and URL.
  Five pages with weak opening lines get a hand-written description.
- /llms.txt, /llms-full.txt, and a .md copy of every page, linked from each
  page's head as a text/markdown alternate.
- robots.txt allowing all crawlers and pointing at the sitemap.
- Cloudflare Web Analytics (cookieless).
- Fixes 12 links that showed a raw file name ("refund-policy.md") instead of
  the page title, which GitBook used to fill in. npm run check now fails on
  these.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@riglar riglar closed this Nov 2, 2026
@riglar riglar reopened this Nov 2, 2026
Comment thread scripts/check-links.mjs Resolved
The '^' in the anchor branch came after '<a ...>' in the pattern, so with no
m flag it could never match: a link like [#maestro-support-policy](...)
passed. Each branch now has to fill the whole link text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@claude

claude Bot commented Nov 2, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

@riglar
riglar merged commit 60eb865 into main Nov 2, 2026
2 checks passed
@riglar
riglar deleted the docs/seo-and-llms branch November 2, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant