← Back to Blog

Why Revenue-Per-URL Attribution Map Exists

Why Revenue-Per-URL Attribution Map Exists

TL;DR. Most sites have 300+ pages. Fewer than 50 of those pages generate 80% of the revenue. The rest are either hidden gems that convert well but get no traffic, vanity pages that rank but don't sell, or dead weight. You can't tell which is which from a traffic report alone.

The Revenue-Per-URL Attribution Map takes a GA4 Pages-and-screens CSV export (URL, sessions, revenue) and classifies every page into one of four buckets: Stars, Hidden Gems, Vanity Rankers, and Cut Candidates. No OAuth. No account connection. Nothing leaves your browser.

Paste a GA4 Pages-and-screens export with Sessions and Revenue columns. The tool ranks every URL by revenue-per-session, classifies each into Stars / Hidden Gems / Vanity Rankers / Cut Candidates, and tells you which 50 pages earn 80% of your revenue.

Why this dimension matters

Traffic and revenue aren't the same metric. A blog post with 40,000 sessions and zero conversions is a vanity page. A product comparison page with 200 sessions and $8,000 in attributed revenue is a star that deserves ten times the promotion budget. The problem is that most analytics dashboards sort by sessions, which buries the pages that actually make money.

Revenue-per-session per URL is the number that connects content decisions to business outcomes. Without it, you're optimizing for traffic volume and hoping revenue follows. Sometimes it does. Usually it doesn't, and you end up with a content calendar full of high-traffic, zero-conversion blog posts while your best converting pages sit on page two of your own site nav.

Common failure patterns

  • Blog posts dominate traffic but contribute nothing to revenue. They rank, they get shared, they look great in monthly reports. But if revenue-per-session is $0.00, they're a cost center. The fix isn't to delete them. It's to add internal links from those posts to the pages that actually convert.
  • Product pages with strong revenue-per-session but under 100 sessions/month. These are Hidden Gems. They convert when someone finds them. The problem is that nobody finds them. Promoting them via internal linking, paid ads, or email sequences is often the highest-ROI move available.
  • Landing pages from paid campaigns that cost more per session than they generate. Without revenue-per-URL data, you'll keep funding pages that lose money. The audit surfaces these as Cut Candidates so you can reallocate spend.
  • Category pages treated as navigation-only. Many e-commerce sites treat category pages as wayfinding rather than conversion surfaces. If they carry sessions but zero revenue attribution, the page template probably doesn't have a CTA or direct add-to-cart path.

How to fix it at the source

Export your GA4 Pages-and-screens report with at least 90 days of data (shorter windows are noisy). Include Sessions and Revenue columns. Paste into the tool. The output gives you four lists.

For Stars, protect them. Don't redesign what's working. For Hidden Gems, drive more traffic to them through internal links from your highest-traffic pages. For Vanity Rankers, add conversion elements (CTAs, product links, email captures) so the traffic they already get starts producing revenue. For Cut Candidates, either improve them or stop investing in them.

The single highest-leverage action for most sites is linking from the top five Vanity Rankers to the top five Hidden Gems. You're connecting traffic that exists to conversion that works.

Thresholds that matter

Signal Target
Revenue concentration Top 50 pages should account for at least 80% of total revenue. If it's 95%+, the long tail is dead weight.
Revenue-per-session for Stars Site-specific, but typically > $2.00 for SaaS, > $0.50 for content/affiliate
Hidden Gem sessions < 500/mo with revenue-per-session above site median. These need promotion, not redesign.
Vanity Ranker threshold > 1,000 sessions/mo with revenue-per-session below $0.05
Cut Candidate criteria < 100 sessions/mo AND revenue-per-session = $0.00 for 90+ days
Minimum data window 90 days. Shorter windows overfit to seasonal spikes.

Example fix

Adding an internal-link block from a high-traffic Vanity Ranker blog post to a Hidden Gem product page:

<!-- Add to the bottom of the Vanity Ranker blog post -->
<aside class="related-product" style="
  border: 1px solid #e5e7eb; border-radius: 8px;
  padding: 1.25rem; margin: 2rem 0; background: #fafafa;">
  <p style="font-size: .85rem; font-weight: 700; margin-bottom: .5rem;">
    Related: readers of this post also bought
  </p>
  <a href="/products/your-hidden-gem/"
     style="font-weight: 800; font-size: 1rem;">
    Product Name — $X/mo
  </a>
  <p style="font-size: .8rem; color: #6b7280; margin-top: .35rem;">
    Used by 2,400+ teams. 14-day free trial, no card required.
  </p>
</aside>

When to run the audit

  • Monthly, after the GA4 data for the previous period settles (GA4 can take 48-72 hours to finalize).
  • Before any content pruning decision. Don't delete pages without checking whether they earn revenue you didn't know about.
  • Before reallocating ad spend. If you're funding traffic to Cut Candidates, the audit shows you where to redirect.
  • After launching a new product or pricing change, to see which pages pick up (or lose) revenue attribution.

Reading the output

Every finding is severity-classified. The playbook is the same across tools:

  • Critical / red — same-week fixes. These block the primary signal and cascade into downstream dimensions.
  • Warning / amber — same-month fixes. Drag the score, usually don't block.
  • Info / blue — context only. Often what a PR reviewer would flag but that doesn't block merge.
  • Pass / green — confirmation. Keep the control in place.

Every audit also emits an "AI fix prompt" you can paste into ChatGPT / Claude / Gemini for exact copy-paste code patches tied to your specific stack.

Related tools in this family

  • GA4 / GTM Config Audit — verifies your GA4 and GTM setup is actually collecting the data this tool needs.
  • GA4 LLM Referral Tracker — shows which AI chatbots are sending traffic and whether that traffic converts.
  • Content Velocity — measures how quickly new pages gain traction, so you can spot future Stars early.
  • Funnel Keyword Audit — maps keywords to funnel stages so you can see whether your top-of-funnel content connects to bottom-of-funnel revenue.
  • Checkout Abandonment Autopsy — if Star pages have high revenue-per-session but your overall revenue is still low, the leak is probably in checkout.

Fact-check notes and sources

  • Perry Marshall (2013). 80/20 Sales and Marketing. The Pareto distribution applied to revenue-per-URL concentration.
  • Google Analytics Help: Pages and screens report
  • Google Analytics Help: Data processing latency — 48-72 hour finalization window for GA4 reports.
  • Avinash Kaushik (2006). Web Analytics: An Hour a Day. Revenue-per-visit as a core segmentation metric.

This post is informational and not a substitute for professional consulting. Mentions of third-party platforms in the tool itself are nominative fair use. No affiliation is implied.

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility StatementPrivacy Policy

Last updated: April 2026