technical-seo

Installation
SKILL.md

Technical SEO

This skill makes a SaaS findable by Google and shareable on social — and fixes the specific trap of a Vite SPA serving near-empty HTML that crawlers can't read.

Analogy: an SPA is a book with a blank cover and blank first page until you open it and read aloud. Search crawlers and social bots only glance at the cover — if it's blank, they walk away. SEO here is printing a real cover (server-rendered head tags) so they see what the book is about.

The SPA problem (state it upfront)

A Vite SPA serves near-empty HTML; content and meta tags appear only after JS runs. Social crawlers (WhatsApp, Twitter, LinkedIn) don't run JS at all, so share previews need tags that are injected server-side or prerendered — client-only react-helmet alone won't show a preview on WhatsApp.

Be precise about Google, though. Googlebot does render JavaScript: for one production SPA, Search Console's URL inspection showed the fully rendered page indexed. So do not migrate frameworks for Google alone — check your own site in Search Console first. What remains true: rendering is deferred, social bots never run JS, and you should not assume AI crawlers do. Prerender the public routes for those reasons.

Discovery (max 3 questions, only if unknown)

  1. Which pages need SEO — public marketing/landing/pricing, or also app routes?
  2. Is the broken thing indexing (Google) or social previews (no image on share)?
  3. Can you prerender marketing routes to static HTML, or must it stay a pure SPA?

Step 1 — Per-page head tags

Installs
3
GitHub Stars
4
First Seen
Aug 3, 2026