Overview
SEO review synthesis
Date: 2026-07-01
This summary synthesizes the per-app SEO reviews in this directory. It does not replace the app-specific reports; use those files for evidence, file paths, and implementation details.
Cross-app themes#
- Canonical URL and base-path drift is the dominant issue. Several apps run under subpaths (
/blog,/docs,/academy,/design-system,/ui) but build metadata, internal URLs, Open Graph URLs, robots files, or sitemap references from different sources. This affectsapps/www,apps/blog,apps/docs,apps/academy,apps/design-system, andapps/ui-library. - Sitemap and robots coverage is inconsistent. Public content apps often have missing, stale, postbuild-only, or wrong-host sitemap references. This is high impact for
apps/www,apps/design-system, andapps/ui-library, and medium impact forapps/docsandapps/academy. - Admin surfaces need explicit noindex controls.
apps/studioandapps/adminshould be blocked from public indexing.apps/manageris mostly correct, but deployment parity should be verified for non-Pages/Nginx hosting. - Social and structured-data assets are frequently incomplete. Missing OG/logo assets or absent JSON-LD appear in
apps/www,apps/blog,apps/design-system, andapps/ui-library. - Content publication semantics need enforcement. ContentLayer apps define
publishedfields but route generation/rendering does not consistently filter drafts inapps/academy,apps/design-system, andapps/ui-library. - Document semantics are generally good. Most reviewed apps render meaningful page headings.
Highest-priority fixes#
P0 — Prevent unwanted indexing of private/admin apps#
- Add global
noindex, nofollow, noarchiveforapps/studiothrough anX-Robots-Tagheader or global robots meta. - Add
noindex, nofollowtoapps/admin/index.htmland mirror it with deployment headers. - Add
X-Robots-Tag: noindex, nofollowto theapps/managerNginx deployment path if that surface is used.
P1 — Repair public crawl discovery and canonical signals#
apps/www: publish the advertised/sitemap.xmland fix the missing organization logo asset or constant.apps/design-systemandapps/ui-library: addapp/robots.ts,app/sitemap.ts, and canonical alternates for the landing and docs routes.apps/docs: move sitemap generation into the app/deploy contract and include generated reference/API routes.apps/academy: make robots disallow paths include the/academybase path and expand the sitemap or noindex omitted lesson/content routes.
P2 — Centralize URL helpers per app#
For each public app, define one canonical origin/base-path helper and use it for metadata, canonicals, OG/Twitter URLs, JSON-LD, robots, sitemap, RSS/feeds, and generated indexes. This should replace hard-coded mixed origins such as apex vs www, missing base paths, and optional env concatenation that can produce undefined/... URLs.
P3 — Improve public content semantics and rich-result signals#
apps/blog: fix the missing default OG image and repair blog-local cross-app CTA/service URLs.apps/design-systemandapps/ui-library: add minimalTechArticleandBreadcrumbListJSON-LD for docs pages.apps/academy: add lesson/learning structured data and enforcepublished: falsein dynamic content routes.
App-by-app status#
Recommended implementation plan#
Phase 1 — Indexing safety first#
- Block
apps/studiofrom indexing globally. - Add HTML and HTTP noindex controls to
apps/admin. - Confirm
apps/managerdeployment path and add NginxX-Robots-Tagif needed.
Phase 2 — Public URL/crawl contract#
- Create or normalize per-app canonical URL helpers for
www,blog,docs,academy,design-system, andui-library. - Fix sitemap/robots mismatches for
www,design-system, andui-libraryfirst. - Extend
docsandacademysitemap coverage and align robots/base-path behavior. - Add canonical alternates to public landing, docs, taxonomy, and generated reference/content routes.
Phase 3 — Asset and structured-data completion#
- Restore missing OG/logo assets for
www,blog, anddesign-systemor update metadata to existing assets. - Add minimal docs/article/breadcrumb JSON-LD for
design-system,ui-library, and academy lessons/learnings.
Phase 4 — Content governance#
- Enforce
published: falsefiltering inacademy,design-system, andui-libraryroute generation, lookups, navigation/search indexes,llms.txt, and future sitemaps. - Decide whether omitted lesson/detail routes are intended search landing pages; if not, add explicit noindex rather than leaving them crawlable but unsitemapped.
- Add narrow SEO regression tests where patterns are stable: asset existence checks, sitemap/robots route tests, noindex checks for admin apps, and canonical URL snapshots for representative pages.