Skip to content

docs(landing): optimize docs page SEO metadata#265

Merged
lentil32 merged 2 commits into
mainfrom
ffffffff
May 31, 2026
Merged

docs(landing): optimize docs page SEO metadata#265
lentil32 merged 2 commits into
mainfrom
ffffffff

Conversation

@lentil32

Copy link
Copy Markdown
Contributor

One-Line Summary

Improve the OneQuery docs page metadata so search crawlers and social previews get a complete, docs-specific representation.

User-Facing Changes

  • /docs/ now has a dedicated SEO title and expanded meta description.
  • Social previews for the docs page now include Open Graph and Twitter image metadata using the public OneQuery share image.
  • Search and AI crawlers can read docs-specific JSON-LD for the site, software, docs page, and breadcrumb trail.

Why This Changed

The Starlight docs landing page only emitted default page metadata, which duplicated the browser title as OneQuery Docs | OneQuery Docs and omitted docs-specific share image and structured data. That made the docs page less explicit for search, AI citation, and social-preview consumers.

How It Changed

  • Added page-level Starlight head metadata to apps/landing/src/content/docs/docs/index.mdx.
  • Added Organization, WebSite, SoftwareApplication, WebPage, and BreadcrumbList JSON-LD for /docs/.
  • Changed Astro stylesheet inlining from always to auto so shared Starlight CSS can be externalized instead of duplicated into every docs HTML payload.

Bug Fixes

  • Under generated docs page rendering, the browser title previously repeated the docs site name; /docs/ now emits OneQuery Documentation | Governed Agent Data Access.

Performance Notes (Optional)

  • Starlight CSS can be shared across docs pages instead of being embedded in each HTML document.

Extra Context / Decisions (Optional)

  • The metadata uses the existing public https://onequery.dev/og.png image rather than introducing a new asset.

Verification

  • rtk bun run format
  • rtk bun run build
  • rtk node -e 'const fs=require("fs"); const html=fs.readFileSync("dist/client/docs/index.html","utf8"); const checks=[[/<title>/g,"title"],[/property=\"og:title\"/g,"og:title"],[/property=\"og:type\"/g,"og:type"],[/property=\"og:site_name\"/g,"og:site_name"],[/property=\"og:locale\"/g,"og:locale"],[/name=\"twitter:title\"/g,"twitter:title"],[/name=\"description\"/g,"description"],[/name=\"robots\"/g,"robots"],[/type=\"application\\/ld\\+json\"/g,"json-ld"]]; for (const [pattern,label] of checks) console.log(label+": "+((html.match(pattern)||[]).length));'
  • rtk git push -u origin ffffffff (pre-push lint-full passed with 0 warnings and 0 errors)

Video / Screenshot (Optional)

  • N/A

@lentil32 lentil32 enabled auto-merge (squash) May 31, 2026 18:14
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
onequery-landing 95ff212 Commit Preview URL

Branch Preview URL
May 31 2026, 06:15 PM

@lentil32 lentil32 merged commit 60ed017 into main May 31, 2026
9 checks passed
@lentil32 lentil32 deleted the ffffffff branch May 31, 2026 18:16
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