Single-product SaaS sites usually have three honest entry points: home, pricing, and whatever page your campaigns actually send (/start, /demo, a blog post with a CTA). Everything else is navigation noise.
RPV by landing page answers: when someone *starts* on this URL, how much money shows up before they leave the site (or before your attribution window ends)? It is the cleanest segmentation in the revenue per visitor guides because you control landers even when you do not control algorithms.
Define “landing page” the same way every week
First pageview path in a session, stripped of query string for grouping, unless you run separate landers per UTM. Examples:
/, brand traffic, confused Google, returning users./pricing, people who skipped marketing fluff./blog/your-post, content-led intent; often lower immediate RPV, higher later direct.
Do not lump /blog/* into one bucket until you have volume. Under 10k monthly, top two posts matter; the long tail is one combined “blog other.”
Why home page RPV disappoints founders
Home attracts:
- Competitors.
- Job seekers.
- Existing customers checking status.
- Readers who clicked logo from docs.
That is not failure; it is role mix. Compare home RPV to campaign landers, not to pricing.
Pricing page RPV looks saintly because self-selection already happened. The job is not “send everyone to pricing”, it is match intent: cold traffic to education + soft CTA, warm traffic to pricing.
Building a simple lander scorecard
For each path with > 200 sessions in 28 days, track:
| Field | Notes |
|---|---|
| Sessions | Landing count |
| Revenue attributed | Same window, same rules as site RPV |
| RPV | Revenue ÷ sessions |
| Top UTM source | Who you sent here |
| Median scroll / time | Optional qualitative hint |
Sort by revenue, not RPV, when choosing where to send the next 1,000 clicks you can actually buy or earn.
Campaign landers vs organic landers
Paid or boosted posts should use a dedicated path with a single promise. Organic search will land on whatever ranks.
If Twitter UTMs point to / but your thread promised a template, RPV by landing page shows / underperforming while a /template lander might not exist yet. Fix the URL, not the copy on home.
Content pages and delayed revenue
Blog landers often show low same-session RPV while newsletter and direct rise days later. That is normal for educational content.
Mitigations that do not require enterprise attribution:
- Strong in-post CTA to
/pricingwith consistent UTM. - Email capture with its own UTM on the thank-you redirect.
- Compare 28-day site RPV when blog traffic rises, lagging indicator.
Do not fire a writer because the post’s landing RPV was $0.02 on day three.
One offer, multiple prices
Annual vs monthly on the same pricing page still counts as one lander. Segment RPV by checkout metadata (plan id) when refunds or upgrades dominate the story.
If you run separate /teams and /solo landers, treat them as separate rows even if checkout is shared.
Worked example
28 days, single currency:
| Landing path | Sessions | Revenue | RPV |
|---|---|---|---|
/ | 2,100 | $420 | $0.20 |
/pricing | 900 | $810 | $0.90 |
/start | 650 | $520 | $0.80 |
/blog/guide-x | 400 | $40 | $0.10 |
Actions:
- Point next newsletter to
/start, not/. - Add
/start-style clarity to home hero for cold traffic. - Keep
/blog/guide-xas nurture; add CTA block mid-article.
Sample sizes are modest, rerun after the next send.
Technical gotchas
- Redirects:
wwwvs apex, trailing slashes, normalize paths or split falsely. - Client-side routing: SPA transitions may not fire pageviews; first paint path must count.
- Preview deployments: exclude staging hostnames from production RPV.
- Localized paths (
/fr/pricing): group per locale or separate scorecards.
Pair landing RPV with source
A lander can look great overall but terrible for Twitter. Cross-tab landing path × utm_source only when each cell has > 100 sessions; otherwise you are reading tea leaves.
When cells are small, change one variable: lander *or* source, not both in the same week.
What not to optimize
Legal, changelog, and status pages are not growth landers. Exclude them from scorecards or accept near-zero RPV.
Docs pages are support, not acquisition, unless you deliberately run docs-led growth. Then measure docs landers separately and accept lower instant RPV.
When to retire a lander
Retire when:
- RPV is low and volume is high and the message is not strategically nurture.
- Checkout errors cluster on one path (technical, not copy).
Do not retire when volume is low, you lack evidence.
Connection to pricing moves
Pricing changes hit /pricing RPV first. Read RPV after moving pricing with pinned date ranges so you do not blend old and new price eras in one average.
Practical next step
List your top five entry paths from last month. Compute RPV for each using the same revenue rules as under-10k RPV calc. Change one send target this week. Re-score in 28 days.
Landing page RPV is unglamorous. It is also how small teams stop debating hero videos and start routing traffic like grownups.
QA pass before you trust lander rankings
Run five minutes of manual QA monthly:
- Open each top lander on mobile with ad blockers off.
- Confirm the tracker fires once (network tab → your ingest endpoint).
- Click the primary CTA; ensure the next pageview path is what you expect in reports.
- Complete a test purchase; verify revenue appears in the same pinned week.
A missing pageview on /pricing alone can make that lander look like free money while site RPV collapses. Fix instrumentation before copy.
Sharing lander scorecards with contractors
If an agency runs ads, give them RPV by lander for their UTMs only, not your whole business. They cannot optimize what they cannot see; you should not expose refund rates on unrelated channels. Scoped dashboard access or a weekly screenshot is enough at indie scale.
Tie-in to path funnels later
When you graduate from lander tables to multi-step paths, the path funnel guides picks up where lander RPV leaves off: same sessions, longer stories. Until then, lander RPV plus thin-traffic RPV rules beat a premature funnel workshop.
One-line takeaway
Route paid-intent clicks to the lander with the highest revenue (not the highest RPV on 40 sessions). Re-score every 28 days. Change one send target at a time so you know which lever moved.
When two landers tie on RPV, prefer the one with lower bounce to checkout: fewer steps between promise and pay button. That is qualitative but visible in session replays on a slow afternoon; you do not need enterprise session tools to watch five recordings and see where people stall.
Branded search landing on /
People who search your product name land on home with high intent but messy UTM (direct / google). Home RPV may beat blog landers for that reason alone. Segment organic branded if your stack supports query terms; otherwise compare campaign landers only to each other, not to /.
Paid landers and quality score
Ads pointing to /start with message match often beat / on RPV even at higher CPC, because RPV times sessions is revenue. Teach media buyers to optimize for lander revenue, not click volume. Cross-check UTM attribution so each ad set maps to one lander path per week.