← All insights
User behavior/eCommerce/8 min read

How I Use Behavior and Journey Data to Fix Website Navigation

A native plant nursery had 14,200 organic visits a month and flat online revenue. The owner blamed checkout. The data said the site was losing the sale on the first click. Here is how I read user behavior and journey data, in what order, and what I refuse to conclude from it.

Edward Humphries
Edward Humphries

Every generic playbook says the same thing: install a heatmap tool, turn on GA4, run some A/B tests. I use all of those. None of them is where the analysis starts.

It starts with a question about the visitor, not the site: what did this person type into Google, and did the page they landed on keep the promise that query made?

That is the whole framework. Navigation is a promise the site makes to search. When someone searches “cold hardy privacy trees” and lands on your site, they expect a path to cold hardy privacy trees. If the path they get is a 40-item catalog sorted the way you organize your greenhouses, the promise is broken before they scroll.

The owner blamed checkout. The data blamed the menu.

The nursery sits in Oregon’s high desert and runs on Shopify. It sells to two very different buyers. Retail gardeners with $42 carts, and commercial contractors and landscapers buying windbreaks, screening hedges and drought-tolerant ground cover by the pallet. Contractor orders averaged $3,800.

The owner’s theory was specific: “People add $1,500 in trees to the cart and abandon at checkout because of the shipping calculator.”

Search Console open in one window, GA4 in the other, the story was different. Of 14,200 monthly sessions, fewer than 180 ever started checkout. Whatever the shipping calculator was doing, it was doing it to a tiny fraction of visitors. The site was not failing at the last step. It was failing at the first one.

The main navigation was built around the nursery’s physical layout: Perennials, Trees, Shrubs, Custom Orders. Commercial buyers do not search by botanical category. They search by the job and the site conditions. “Wind resistant shade trees.” “Bulk drought tolerant ground cover.” “Cold hardy privacy trees.” Those queries carried the money, and none of them had a home in the menu.

What they searched

“wind resistant shade trees”

1,840 clicks a month. A contractor on a job site with a spec to meet.

→

What the menu offered

Shop All

→

What they needed

Windbreaks

One tap. Species, hardiness zone, container size, availability, request a bid.

The gap is the navigation problem. The query names the job. The menu names the greenhouse. Nothing in between translates one into the other, so the visitor does the translating, on a phone, and most of them stop.

Three layers of user behavior data, read in this order

I look at behavior data in a fixed order, because each layer only means something in light of the one before it. Path data without intent data tells you people wandered. It cannot tell you they were lost.

1Intent

Search Console shows what visitors came for

Where I look: Google Search Console, filtered to non-branded queries, grouped into clusters by the job the searcher is trying to get done. For each cluster, the page it lands on.

One cluster, “wind resistant shade trees” and its variants, sent 1,840 clicks a month. Every one of them landed on /collections/trees. That is the gap in one line: a visitor with a precise need, delivered to a page with no idea what that need was.

2Path

GA4 shows where they went once they landed

Where I look: GA4 path exploration, starting from each landing page. Bounce rate, engagement time, and how many visitors reach a product or service page at all.

Bounce rate on /collections/trees was 74.2 percent. Average engagement time was 14 seconds. Of the 1,840 visitors, 112 reached any product detail page. The rest left from the collection page, or bounced around the menu and then left.

Fourteen seconds is not a person reading. It is a person scanning for the thing they searched, not finding it, and leaving.

3Friction

Clarity and Hotjar recordings show why they gave up

Where I look: session recordings in Microsoft Clarity and Hotjar, filtered to organic landings on the pages from layer two. Mobile first, because that is where the money was arriving.

I watched 150 recordings, and I watched mobile first because 61 percent of the commercial traffic was on a phone.

The pattern repeated so often it got boring. Open the nav drawer. Tap Shrubs. Scroll past fifteen products that have nothing to do with wind. Back. Open the drawer again. Tap Trees. Scroll. Rage-click a category heading that looks like it should filter and does not. Exit. The average visitor opened the navigation drawer 3.2 times in a session. That is a person asking the menu the same question three times and getting the same wrong answer.

Recordings do not give you a number you can put in a report. They give you the thing the numbers cannot: what the 74 percent looked like while they were leaving.

LayerToolWhat it showedWhat it cannot tell you
IntentSearch Console1,840 clicks a month for one job-specific cluster, all landing on a generic collection pageWhether the page failed them once they arrived
PathGA4 path exploration74.2% bounce, 14 seconds, 112 of 1,840 reached a productWhat they were looking for while they bounced
FrictionClarity, HotjarMenu opened 3.2 times a visit, rage clicks on category headingsWhy they never tried site search

What behavior data cannot tell you, and who can

This is the section most write-ups skip, and it is the one an experienced reader looks for first.

Behavior data tells you where people went and where they stopped. It never tells you why. Clarity and GA4 showed that 88 percent of arriving commercial buyers never touched the site search bar. That is a fact. Here are two explanations for it, and the data cannot pick between them: contractors did not trust a basic Shopify search to handle trade specs, or they expected a curated catalog organized by planting zone and gave up when they did not see one.

Quantitative data earns you a hypothesis. It does not earn you a decision. So before anyone touched the navigation, we got on the phone with three of the nursery’s top commercial accounts. The answers were unanimous and they came fast.

They don’t browse, they spec. A contractor is standing on a job site with a phone, looking for species that meet a municipal or client requirement, something like “60 percent drought-tolerant native ground cover for a commercial HOA.” Nobody is looking for inspiration.

Internal search was a dead end. Typing “windbreak” into the default Shopify search returned individual product pages that happened to contain the word in a description, not a filtered list showing availability and container sizes. So they stopped using it. That is what the 88 percent was.

They had defaulted to calling. When the catalog made finding spec-compliant stock tedious, they gave up and phoned the front desk: “What do you have in stock for a privacy hedge?” The menu was not only losing online orders. It was clogging the farm’s phone line with sorting questions a menu should answer.

Three phone calls, and the hypothesis had a shape the dashboards could never have given it.

Was the lift just spring? Controlling for seasonality

Nursery buying is seasonal, and spring demand is not a bump, it is a cliff. Any 30-day before-and-after on a plant business carries the risk that the calendar moved the numbers, not the navigation. If you read a case study on a seasonal business that does not address this, close it.

We did not compare the post-launch window to the 30 days before it. We used two controls.

Same window, prior year. Organic traffic was up 12 percent year over year, which is about what seasonal lift and a year of SEO would predict. Commercial bid submissions were up 450 percent over the same window the year before, 4 to 22. Seasonality explains a marginal rise in foot traffic and seed orders. It does not explain a 4.5x jump in commercial bids.

Behavior within the same cohort. Seasonality adds visitors. It does not fix a landing page. The bounce rate drop and the 185 percent rise in product detail views happened inside the same organic-search cohort landing on the same collection pages. Those people were not arriving because it was spring. They were finally finding what they came for.

Build the tracking before you touch the design

The audit surfaced a problem that came before all of this. GA4 had zero key events. Fourteen thousand sessions a month, and the site was not recording a bid form submission, a phone tap or a spec-sheet download as anything more than a page view. The surgery clinic I audited earlier this month had the same hole, and it is the most common finding I make.

You cannot analyze a journey whose destination was never defined. Half of “analyzing user behavior” is admitting the tracking does not exist and building it before touching design.

So the first week of the project was not design. It was a clean Google Tag Manager container and three GA4 key events:

  1. Commercial bid form submissions, fired on the successful form submit and the trade-portal thank-you page.
  2. Phone taps, click-to-call on every tel: link in the mobile header, footer and product pages.
  3. Spec-sheet downloads, link-click triggers on plant care guides, zone suitability specs and wholesale availability PDFs.

Then we let it run and recorded the baseline before the new menu went live. Without that week, every number later in this article would be a guess dressed up as a result.

Rebuild navigation around the highest‑value journeys, not the biggest audience

Retail traffic was bigger. Retail carts were $42. A single contractor order for windbreak hedging averaged $3,800, and the highest-value query clusters carried average order values of $4,500 (privacy trees) and $2,200 (drought-tolerant ground cover). Commercial buyers were 80 percent of the farm’s revenue.

So the retail pages did not get the first pass. Every hour went to the commercial journey, because that is where a broken promise cost the most. It is the same logic I used to score the roofing audit: rank the problems by what each one costs the sale, not by how many people see it.

Before: built from the org chart

Shop AllAboutContact
  • Trees 40 products, alphabetical
  • Shrubs
  • Perennials
  • Custom Orders

After: built from the queries

Shop RetailIndoor PlantsSeeds & ToolsGifts
  • By Project Need PrimaryPrivacy & Screening · Windbreaks · Low-Water & Drought Native
  • Plant Finder by Zone
  • Commercial & Wholesale Bids
Retail did not disappear. It moved to a utility bar at the top, which serves a buyer who arrives with broad category intent just fine. Its prominence now matches its share of revenue. Retail conversion rate did not move after the change.

Nothing else changed. Not the checkout, not the shipping calculator, not product titles, not pricing. If more than one thing changes, you cannot tell which one worked, and you have learned nothing you can use on the next site.

One navigation change, a 30‑day window, and the results

Thirty days. Three metrics, chosen before launch so we could not move the goalposts after: bounce rate on the target collection pages for organic landing traffic, with a goal of under 50 percent; click-through from the navigation menu to product detail pages; and commercial bid submissions.

74.2% → 41.8%collection-page bounce rate, organic landings
+185%product detail page views from the same cohort
4 → 22commercial bid submissions, same window prior year

Day 30 after launch. Eighteen additional bids at a $3,800 average is roughly $68,000 in bid pipeline in the first four weeks.

Bids, not closed revenue. I do not report closed revenue on a 30-day window because a commercial planting job closes on a longer cycle than that, and I would be guessing. I wrote about the difference between traffic and leads in an earlier article; the difference between bids and revenue deserves the same honesty.

The shipping calculator never got touched.

The seven-step loop for analyzing your own site’s user journeys

  1. Intent first. Search Console, non-branded, clustered by the job the searcher wants done. Note where each cluster lands.
  2. Path second. GA4 path exploration from those landing pages. Bounce, engagement time, and how many reach a product or service page.
  3. Friction third. Recordings, mobile first. Watch until the pattern bores you. That is when you have it.
  4. Write down what the data cannot prove. Then go find out from a human.
  5. Check the tracking exists. If the destination is not a key event, build it before anything else.
  6. Rank by the cost of the sale. Fix the journey that loses the most money per visitor, not the one with the most visitors.
  7. Change one thing. Set the metrics and the window before launch. Make the call at the end of the window.

Five checks for any online store

You do not need an audit to find your own query-to-path gap. Five things to check this week.

  1. Open Search Console. Take your top ten non-branded queries. For each one, click the page it lands on. Does the page answer the query in the first screen?
  2. Open your main menu. Is it organized by how you run the business, or by what the customer came to solve?
  3. Open GA4. Do you have key events for the actions that make you money? If the answer is “page views,” you have no journey data yet.
  4. Watch ten recordings of mobile visitors from organic search. Count how many times they open the menu.
  5. Pick one change. Write down the number it should move and by when. Then leave everything else alone.

If the menu names your departments and the queries name your customers’ problems, the gap between the two is where your revenue is leaking. It is usually fixable in a week.

Read more Conversion & UX articles →
Newsletter

Get Insights in Your Inbox

Real lessons from managing websites that have to make money: conversion, SEO, UX, and the project decisions behind them. No spam, and you can unsubscribe anytime.

You'll get a confirmation email first. Click the link in it and you're in.

Currently Available

Looking for a Website Project Manager Who Can Own It All?

Whether you’re building something new or keeping a site running, I’m currently taking on new work. Tell me about it, and I’ll tell you exactly how I’d manage it.