Skip to content

SEO preview branch consolidation and fixes#7864

Merged
mhessdev merged 64 commits intomainfrom
codex/seo-preview-seo-fixes
May 5, 2026
Merged

SEO preview branch consolidation and fixes#7864
mhessdev merged 64 commits intomainfrom
codex/seo-preview-seo-fixes

Conversation

@mhessdev
Copy link
Copy Markdown
Contributor

@mhessdev mhessdev commented May 4, 2026

Summary

  • consolidate the SEO work into a single preview branch and PR
  • merge the docs SEO redirect remediation stack and follow-up fixes
  • merge PR feat(docs): only version the orm content #7795 into the preview branch and recover the docs redirect map around the new ORM v6 structure
  • merge the latest main changes into the preview branch and resolve the resulting docs/LLM/MCP conflicts
  • complete the high-value web metadata, blog metadata, internal linking, conversion-path, schema, selective content refresh, and focused perf work needed for preview QA
  • fix the docs link-checker failures reported during QA

Included work

  • docs redirect remediation and semantic retargeting
  • high-intent page title and meta description improvements on key commercial pages
  • full blog meta description coverage
  • blog-to-product/docs internal linking improvements
  • conversion-path improvements on blog/docs pages
  • schema/structured-data improvements across site and blog
  • selected refreshes of older evergreen content
  • focused image/perf improvements on key templates
  • merge reconciliation for the current docs AI/LLM routing changes from main
  • docs link-checker fixes for stale blog links and localhost example URLs

Validation

  • pnpm --filter docs run audit:redirects
  • current result: no missing redirect destinations, 244 broad redirects still to review
  • docs link-checker follow-up patch applied for the 11 reported QA failures

Notes

  • this PR is intended to be the single QA and merge surface for the SEO preview branch
  • the remaining docs broad redirects are documented follow-up items and are not currently dead-target blockers
  • full repo lint/typecheck was not completed in the isolated preview worktree because local TypeScript/runtime tooling was unavailable there

mhessdev and others added 30 commits April 27, 2026 14:04
- Fix FontAwesome strategy from beforeInteractive to afterInteractive on
  site
  (was blocking the HTML parser on every page load)
- Add CookieYes CMP to blog app, which had no consent layer
- Fix docs layout so CookieYes loads first; convert Tolt and PromptWatch
  to
  type="text/plain" to eliminate the race condition where they could
  execute
  before CookieYes set up its interception hooks
- Gate PostHog behind CookieYes consent on all three apps (blog, docs,
  site):
  opt_out_capturing_by_default + cookie check for returning visitors +
  live
  cookieyes-consent-update listener for first-time visitors
- Set strategy="lazyOnload" on Tally embed scripts in enterprise and
  partners
  forms (both are below the fold and were competing with hydration)
Replace bare <img> with an absolutely-positioned img inside the
existing `relative aspect-video` wrapper. The aspect-ratio box
reserves space before the image loads, eliminating layout shift
without adding a next/image dependency to the UI package.
Testimonials carousel was rendering three full independent DOM trees
(mobile / tablet / desktop) simultaneously — 144 TestimonialItem renders
for a page that can only display one layout at a time.  Replaced with a
single 3-column grid using `hidden md:contents` / `hidden lg:contents`
wrappers so CSS controls visibility without duplicating DOM nodes.
Added
a MAX_PER_COL = 8 cap per column to prevent re-bloat as the list grows.
144 renders → 48 (67% reduction).

Skip SSR for the Antigravity hero animation (`next/dynamic ssr:false`).
It is a purely decorative rAF loop that rebuilds from scratch on every
page load anyway — server-rendering its 300 <g> SVG elements contributed
~36 KB to the HTML for zero user-visible benefit.

Externalize the four footer compliance badge SVGs (GDPR, HIPAA, ISO
27001,
SOC 2) from inline JSX blobs to static files in public/badges/.  Each
~3 KB of path data is now a browser-cached <img loading="lazy"> fetch
instead of re-embedded in every page response (~12 KB saved).

Addresses DR-7975.
…branch

# Conflicts:
#	apps/site/src/app/query-insights/page.tsx
…branch

# Conflicts:
#	apps/site/src/app/(index)/page.tsx
#	packages/ui/src/components/footer-badges.tsx
@mhessdev mhessdev merged commit 309fe27 into main May 5, 2026
16 of 17 checks passed
@mhessdev mhessdev deleted the codex/seo-preview-seo-fixes branch May 5, 2026 19:33
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.

4 participants