From 0868a92e62cdc02b70b5760ae30e5e7683e3d535 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Tue, 28 Jul 2026 07:31:35 +0200 Subject: [PATCH] docs: design SEO and AEO performance improvements --- .../2026-07-28-seo-aeo-performance-design.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 docs/superpowers/specs/2026-07-28-seo-aeo-performance-design.md diff --git a/docs/superpowers/specs/2026-07-28-seo-aeo-performance-design.md b/docs/superpowers/specs/2026-07-28-seo-aeo-performance-design.md new file mode 100644 index 000000000..333e99dbc --- /dev/null +++ b/docs/superpowers/specs/2026-07-28-seo-aeo-performance-design.md @@ -0,0 +1,110 @@ +# SEO/AEO Performance Improvements Design + +## Goal + +Improve the homepage's initial rendering, LCP path, canonical metadata, and documentation crawl hygiene using the existing web, server, and Mintlify seams. + +## Scope + +This change will: + +- Exclude the application bootstrap module from Cloudflare Rocket Loader rewriting. +- Replace the homepage's initial autoplay video load with a high-priority poster and interaction-triggered video load. +- Serve versioned homepage media with long-lived immutable caching. +- Put complete root-page canonical, social, and JSON-LD metadata in the initial HTML response. +- Move the documentation introduction to `/getting-started` and redirect confirmed historical paths. + +This change will not: + +- Add SSR, prerendering, a shared SEO package, special AEO schema, or `llms.txt` work. +- Change noindex behavior for auth, dashboard, builder, settings, templates, or public resume routes. +- Add redirects for unconfirmed LinkedIn, AI-provider, v4, or placeholder URLs. +- Change homepage animation or overlay code without an interaction-performance profile. +- Change the Cloudflare zone-wide Rocket Loader setting from repository code. +- Claim field LCP or GSC validation before post-deployment field data is available. + +## Approach + +Use the existing ownership seams: + +- `apps/web/index.html` owns the bootstrap script attribute. +- `apps/web/src/routes/_home/-sections/hero.tsx` owns homepage media behavior. +- `apps/server/src/static/web.ts` owns root HTML transformation and static response headers. +- `docs/docs.json` and the documentation source files own canonical documentation paths. + +The server will keep serving the same client application shell. Only requests whose pathname is `/` will receive root SEO markup, so tracking parameters such as `/?utm_source=...` consolidate to the root canonical without leaking root metadata into noindex application shells. + +## Homepage boot and media + +The module script in `apps/web/index.html` will place `data-cfasync="false"` before `src`, which is the Cloudflare-supported per-script Rocket Loader exclusion. + +The current media will become: + +- `/videos/timelapse-v1.webp`: a representative poster extracted from the existing video. +- `/videos/timelapse-v1.mp4`: the existing video under a versioned filename. + +The homepage route will preload the poster as an image with `fetchpriority="high"`. The hero will render a native `