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, consider noindex.
  • 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 alt text (or alt="" 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

  • MUSTrobots.txt present and not blocking marketing pages.
  • MUSTsitemap.xml generated, 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.