You know your homepage gets traffic. You know pricing gets clicks. What you probably do not know, unless you have stared at session replays for a week, is whether buyers read the blog first, bounce through docs, or land on pricing from a newsletter link and never see the hero.
Path analysis answers that question in plain language: which URLs appeared in the session before someone signed up or paid. For a bootstrapped SaaS on a single marketing domain, that is often more actionable than a twelve-step enterprise funnel built before you had customers.
This guide is the path funnel guides home base. It connects landing-page RPV, Stripe webhooks, and campaign UTMs into multi-page stories you can actually change with a copy edit or a new CTA, not a six-month BI project.
What path analysis is (and is not)
Path analysis here means: for sessions that ended in a conversion event you care about (signup, checkout_completed, or a custom goal), list the distinct page paths those visitors touched, in order, before the event fired.
It is not:
- Multi-touch attribution across devices (laptop research, phone purchase).
- A guaranteed causal map (“blog caused the sale”).
- Session replay with mouse heatmaps.
It is a ranked list of common sequences on your site: / → /pricing → /register, or /blog/slug → /pricing → Stripe success URL. At indie traffic levels, that ranking is enough to decide where to put the next “Start trial” button.
Pair path thinking with RPV by landing page for entry quality, and with Stripe checkout tied to traffic when money is the conversion event.
The default SaaS path you assume vs the path you have
Most founders sketch the same diagram:
- Home explains the product.
- Pricing frames the offer.
- Register or Checkout collects payment.
Reality on a live site is messier:
- Docs-first buyers hit
/docs/quickstartfrom search, build confidence, then hunt for pricing in the nav. - Content tourists read three blog posts and leave, they inflate path tables without converting.
- Pricing-first visitors from a tagged newsletter link skip home entirely; if home RPV looks weak, you may be blaming the wrong page.
- Return visitors start on
/loginor/appafter bookmarking; filter them when you study acquisition paths.
Path analysis separates templates that convert from templates that merely exist in your sitemap.
Conversion events: pick one primary story
Before you read paths, define the finish line:
| Event | Best for |
|---|---|
signup / register | Trial-led SaaS, waitlists, free tier |
checkout_completed (webhook) | Paid-first or instant purchase |
Custom trial_started | Long self-serve onboarding |
Mixing signup and paid in one funnel without labeling steps creates arguments. The dashboard journey view should use one conversion type per review. Paid revenue belongs in webhook rows; see one-time checkout vs subscription started for how renewals differ from acquisition.
For this topic, we assume one core product on one domain. Multiple products on one site need path prefixes first, two digital products, one domain.
Reading path tables with thin traffic
Under a few thousand monthly sessions, individual paths wobble. Use rules:
- Ignore paths with fewer than ~20 converting sessions in the window unless you are debugging a single launch week.
- Prefer 28-day windows for structure, 7-day pins when you shipped a new pricing page or major post (reading RPV after you move pricing).
- Compare share of conversions on a path, not raw session counts from all traffic.
Example narrative (illustrative, not a benchmark): “42% of signups touched /pricing; 18% touched /docs first.” That tells you docs are a buying surface, not only support, the guide documentation pages before checkout goes deeper.
Home → pricing: the hinge most teams under-instrument
The hop from / to /pricing is where positioning meets intent. Path analysis exposes:
- Direct pricing landers: newsletter or ads point at
/pricing; home is absent from the sequence. Home copy changes will not move that segment. - Home wanderers: multiple
/views or scroll-heavy single pageview then pricing. Test hero CTA copy and above-the-fold pricing teaser. - Blog intercepts:
/blog/...appears between home and pricing. Promote the post in the next campaign or add an inline pricing CTA on high-traffic posts (blog paths that end in signup).
If many converters never visit home, stop optimizing home for them. Build a pricing-first campaign template and measure it with UTMs.
Pricing → checkout: drop-off is often off-site
Stripe Checkout redirects break the visual funnel unless you instrument both sides:
- Pricing pageview in session.
- Checkout Session created (client event or server log).
- Webhook `checkout.session.completed` for dollars.
- Success URL pageview as a sanity check (pageview after webhook ordering).
Path analysis on your domain stops at the redirect boundary. Webhooks carry revenue; paths carry narrative. When success pageviews lag webhooks, buyers are paying and closing the tab, not failing to convert.
UTMs and paths: same session, different questions
UTM attribution answers which link started the session. Path analysis answers which pages they read before converting inside that session.
A thread with utm_source=twitter might produce two dominant paths:
twitter → /pricing → paid(short)twitter → /blog/hook → /pricing → paid(content-assisted)
Same source, different creative work. Tag utm_content per hook (thread and carousel UTMs) so you can split paths by campaign variant, not only by source.
Pins and pulses for path shifts
When you redesign pricing or publish a flagship post, path mix can change within days. Use marketing pulse guides pinned ranges around the ship date:
- Baseline pin: 7 days before.
- Launch pin: send day through +6.
Inside each pin, compare top paths before signup qualitatively: did /docs rise while / fell? Pins do not replace path tables, but they timestamp the before/after story for your changelog.
Docs, blog, and changelog: support or sales?
Indie SaaS sites often treat docs as post-sale. Crawler visibility may show heavy bot traffic on /docs (AI crawler hits on documentation). Path analysis filtered to human converting sessions tells you whether docs are part of pre-purchase research.
If converters frequently pass through /docs/api-reference before /pricing, you are selling to integrators. Surface pricing or “Request demo” in docs chrome. If converters never touch docs, stop spending launch week on doc SEO for acquisition, focus on landers and RPV.
Saved funnels for repeat launches
Once you identify a path that works for a channel, save it as a campaign artifact: named steps plus UTM query strings you will reuse on the next launch. Guessing UTMs from memory each Product Hunt cycle is how utm_campaign=launch becomes useless in analytics.
See saved funnel UTM combos for repeat launches covers naming, versioning, and not breaking redirect chains.
Common mistakes
Treating all sessions as buyers. Filter to converting sessions or you will optimize for readers.
One global funnel for every channel. Newsletter and SEO often deserve different expected paths.
Ignoring SPA navigation. Client-side route changes must fire pageviews or paths flatten to the first paint URL (RPV lander caveats).
Expecting path analysis to fix positioning. Paths show behavior; they do not write your headline.
Comparing pre- and post-pricing-move paths without a pin. Date boundaries matter.
Weekly ritual (20 minutes)
- Open 28-day path view for
signup(or paid). - Note top three entry paths and top three full sequences.
- Cross-check RPV by landing for the entry page of the winning sequence.
- One action: CTA on a page that appears in >25% of converters but lacks a clear next step.
- Log the decision in one line; pin the range if you shipped a change.
Where KiboData fits (no oversell)
KiboData tracks page paths and first-touch UTMs in session, shows a journey funnel on the main site dashboard for a chosen conversion type, and offers Funnel studio under Dashboard → Funnels.
Funnel studio is honest about what it does:
- It suggests multi-step funnels from your recent conversion paths (for example sessions that already signed up in the selected range). If there is not enough data yet, you get a sensible default template (
/,/pricing,/register) until real paths appear. - You can rename steps, tweak
utm_source/utm_medium/utm_campaign/utm_content, preview campaign URLs, and save named funnels per site for the next launch.
It does not replace session replay, heatmaps, or warehouse-grade pathing across subdomains you forgot to instrument. It does not auto-optimize your site, suggestions refresh from analytics; you still edit copy and CTAs. Saved funnels are campaign playbooks, not live experiments with statistical lift. Webhook revenue and path views share UTMs when metadata is wired; see Stripe checkout events tied to landing pages.
If you only need a traffic line, lighter tools exist. If you want paths + UTMs + saved launch links in one indie-sized dashboard, these guides are the operating manual.
More guides
| Article | Focus |
|---|---|
| Blog paths that end in signup | Content-led sequences and CTAs |
| Documentation before checkout | Docs as pre-sale research |
| Saved funnel UTM combos | Reusable campaign definitions |
More on this topic: path funnel guides
Checklist
- One primary conversion event selected per review
- 28-day path read plus pin when you ship pricing or a major post
- Stripe success URL and webhook both verified for paid paths
- UTMs on external links match saved funnel names where possible
- Docs and blog paths interpreted for converters, not all traffic
- Next launch reuses a saved funnel instead of inventing new UTMs
Paths are not destiny. They are a map of what already worked on your domain, use them to ship the next page, email, and tagged link with fewer guesses.