| name | website-launchpad-seo |
| version | v2 |
| description | SEO specification for website-launchpad. Trigger when building or modifying any page, adding metadata, configuring schema, setting up analytics, or working on anything that affects search engine visibility. Always read this alongside design-system/SKILL.md before generating any page code.
|
SEO Skill — v2
Based on PingCAP SEO Audit (February 2026).
Every rule in this skill derives from the audit findings.
File Index — Read Based on Your Task
| File | When to Read |
|---|
audit-rules.md | Required for every page — 10 cross-stack rules + compliance status |
audit-page-types.md | Required for every page — schema, metadata, GTM spec per page type |
seo.md | Detailed metadata, image SEO, Core Web Vitals, URL rules |
Quick Checklist (run before outputting any page)
Metadata
Schema
Analytics
Sitemap
HTML
URL
Schema Usage Reference
import {
buildPageSchema,
softwareApplicationSchema,
articleSchema,
faqSchema,
definedTermSchema,
glossaryIndexSchema,
} from '@/lib/schema'
const schema = buildPageSchema({
path: '/glossary/',
title: '...',
description: '...',
pageType: 'CollectionPage',
breadcrumbs: [
{ name: 'Home', path: '/' },
{ name: 'Glossary', path: '/glossary/' },
],
extraSchemas: [glossaryIndexSchema({ termCount: 42 })],
})
GTM Usage Reference
File: src/lib/gtm.tsx (note: .tsx extension, not .ts)
Available exports: trackCTAClick, trackFormSubmit, trackPageView, pushEvent, GTMScript, GTMNoScript, PageType
Runtime rule:
- GTM scripts load only when
process.env.VERCEL_ENV === 'production'.
- Vercel Preview deployments (
VERCEL_ENV=preview) should not load GTM containers.
import { trackCTAClick, trackFormSubmit } from '@/lib/gtm'
trackCTAClick({ cta_text: 'Start for Free', cta_location: 'hero', page_path: '/glossary/' })
trackFormSubmit({ form_id: 'hubspot-contact', page_path: '/contact/' })