SEO Rules
Rule
Scope: Marketing pages of any web project. App pages (authenticated/gated) get basics only.
Page Classification
- MUST: Distinguish marketing pages (public, indexable) from app pages (authenticated, gated).
- MUST: Marketing pages receive full SEO treatment.
- MUST: App pages receive basics only —
<title>for browser tab, considernoindex. - SHOULD: Let the user classify pages when ambiguous. Do not rely on auto-detection.
SEO Vitals (all marketing pages)
- MUST:
<html lang="...">attribute set on root element. - MUST:
<meta name="viewport" content="width=device-width, initial-scale=1">present. - MUST: Unique
<title>per page (under 60 characters). - MUST: Unique
<meta name="description">per page (under 160 characters). - MUST: Single
<h1>per page, logical heading hierarchy (no skipped levels). - MUST: Canonical URL set on every page (
<link rel="canonical">). - MUST: Images have meaningful
alttext (oralt=""if purely decorative). - MUST: No
<meta name="robots" content="noindex">on production marketing pages. - SHOULD: Clean URL structure — no UUIDs, no query parameters for content routes.
SEO Configuration
- MUST:
robots.txtpresent and not blocking marketing pages. - MUST:
sitemap.xmlgenerated, listing all marketing pages. - SHOULD: Structured data / JSON-LD on key page types (Article, Product, Organization, FAQ).
- MUST: Open Graph tags set on all marketing pages —
og:title,og:description,og:image(1200x630). - MUST: Twitter Card meta tags set —
twitter:card,twitter:title,twitter:description,twitter:image.
App Pages (basics only)
- MUST:
<title>set for browser tab display. - SHOULD: Add
<meta name="robots" content="noindex">to keep out of search indexes. - NEVER: Spend time optimizing heading hierarchy, structured data, or social previews for app pages.