---
name: "landing_page_anatomy"
description: "Structure and write landing pages that convert: headline, subheadline, section order, CTA placement, and social proof. Includes a pre-launch conversion checklist and a scoring script. Triggers on: landing page, homepage copy, above the fold, CTA placement, social proof, conversion checklist, product page structure, launch page."
metadata: { "includeInPrompt": true }
---

# Landing Page Anatomy

## Purpose
Covers page structure and conversion copy: what goes where, how to write the headline and subhead, where CTAs go, what counts as real social proof, and a pre-launch checklist. Does NOT cover SEO or search traffic (see the catalog's `seo-basics`) and NOT memes or meme traffic (see the catalog's `meme-marketing`).

## Workflow
1. Clarify the page's one ask first. A landing page has exactly one job: get the visitor to do one thing. Write it down in a sentence: "The visitor should [sign up / buy / book] because [reason]."
2. Build the section stack in this order:
   - **Above the fold:** headline, subhead, one primary CTA, hero visual (product screenshot or result, not stock decoration).
   - **Social proof strip:** customer logos, short testimonials, or real numbers. Place immediately below the hero.
   - **Problem / solution:** name the visitor's problem in their words, then show the fix. Keep it to 2-3 short blocks.
   - **How it works:** 3 steps max. People bail at step 4.
   - **Objections / FAQ:** answer the top 3 things stopping someone from saying yes (price, effort, trust).
   - **Final CTA:** repeat the same single ask. Same button text as the hero CTA.
   - **Footer:** contact info, plain-language privacy note, nothing flashy.
3. Write the headline and subhead:
   - Headline: who it's for and the outcome, in words the buyer would use. One clear claim, no cleverness at the cost of clarity. A visitor should get it in 10 seconds.
   - Subhead: what the thing actually is and how it delivers the headline's promise. One to two sentences, concrete nouns.
4. Place the CTAs:
   - Hero CTA above the fold, visible without scrolling.
   - Repeat the same CTA after the problem/solution section and once more at the bottom. Same label everywhere ("Start free trial", "Book a call").
   - One ask per page. Secondary links (docs, pricing) go in the footer or nav, never as competing buttons next to the CTA.
5. Add real social proof only: named testimonials with a real person's name and role, customer logos you have permission to show, usage numbers you can back up. If you have no proof yet, ship without a proof strip instead of faking one. Never invent testimonials, never use stock photos with made-up quotes.
6. Cut friction: the shortest form that still works, no required phone number unless you will actually call, guest checkout if it's a store.
7. Run the conversion checklist (self-contained script below). Save it, run it, and fix every failed check worth 2+ points before launch.

```python
#!/usr/bin/env python3
# Save as audit.py and run: python3 audit.py
# Edit the ANSWERS dict: True = check passes for your page.
import json

CHECKS = [
    ("headline", "Headline states the value to a specific person in under 10 seconds", 3),
    ("subhead", "Subhead explains what it is and who it is for", 2),
    ("cta_above", "Primary CTA visible above the fold", 3),
    ("cta_single", "One clear ask per page, no competing CTAs", 2),
    ("proof", "Real social proof present (testimonial, logos, numbers)", 2),
    ("proof_real", "Proof is verifiable, no fake testimonials", 3),
    ("cta_repeat", "CTA repeated after the pitch sections", 2),
    ("objections", "Page answers the top 3 objections", 2),
    ("visuals", "Hero visual shows the product or result", 1),
    ("friction", "Signup is minimal (short form, no forced extras)", 2),
    ("mobile", "Page reads fine on a phone (tappable CTA)", 2),
    ("honesty", "No fake countdowns, fake scarcity, or fake reviews", 3),
]

ANSWERS = {key: False for key, _, _ in CHECKS}  # flip to True as you verify

score = sum(w for k, _, w in CHECKS if ANSWERS[k])
total = sum(w for _, _, w in CHECKS)
print(f"Score: {score}/{total} ({round(100 * score / total)}%)")
for key, label, weight in CHECKS:
    print(f"[{'PASS' if ANSWERS[key] else 'FAIL'}] ({weight} pts) {label}")
```

## Output Contract
Deliver: (1) a page outline following the section stack, with headline, subhead, CTA labels, and draft copy for each section; (2) the checklist score from the script plus a fix list for every failed check worth 2+ points; (3) one sentence stating the page's single ask.

## Operating Rules
1. One page, one ask. If the user wants two conversions, that is two pages.
2. Clarity beats cleverness in the headline. If a stranger cannot repeat what you sell after 10 seconds, rewrite it.
3. No deceptive patterns, ever: no fake countdowns, no invented scarcity, no fake testimonials, no misleading before/after claims.
4. Social proof must be real and verifiable, or it does not ship.
5. No conversion-rate benchmark percentages unless you verified them fresh; say "verify before quoting" instead.
6. Ship at 80%+ checklist score. Below that, fix the failures before asking anyone to look at the page.
