SEO Rules
Rule
Scope: Marketing pages of any web project. App pages (authenticated/gated) get basics only.
Page Classification
- MUSTDistinguish marketing pages (public, indexable) from app pages (authenticated, gated).
- MUSTMarketing pages receive full SEO treatment.
- MUSTApp pages receive basics only —
<title>for browser tab, considernoindex. - SHOULDLet 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. - MUSTUnique
<title>per page (under 60 characters). - MUSTUnique
<meta name="description">per page (under 160 characters). - MUSTSingle
<h1>per page, logical heading hierarchy (no skipped levels). - MUSTCanonical URL set on every page (
<link rel="canonical">). - MUSTImages have meaningful
alttext (oralt=""if purely decorative). - MUSTNo
<meta name="robots" content="noindex">on production marketing pages. - SHOULDClean 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. - SHOULDStructured data / JSON-LD on key page types (Article, Product, Organization, FAQ).
- MUSTOpen Graph tags set on all marketing pages —
og:title,og:description,og:image(1200x630). - MUSTTwitter Card meta tags set —
twitter:card,twitter:title,twitter:description,twitter:image.
App Pages (basics only)
- MUST
<title>set for browser tab display. - SHOULDAdd
<meta name="robots" content="noindex">to keep out of search indexes. - NEVERSpend time optimizing heading hierarchy, structured data, or social previews for app pages.