Skip to Content
v1.36.0 · shipped One-screen report · Looks like your app Read the changelog →
Admin consoleJourney optimizer

Journey optimizer

Route: /journeys (sidebar: Journeys)

Scenario: Your AI built the app fast. Now you want to know where people get lost: which page they leave from, which two pages say the same thing, and which page nobody can find. Then you want the fix in your editor.

Most people who get stuck in an app don’t report it. They leave. The Journey optimizer shows you where that happens, in plain English, and gives each problem a prompt your AI editor can apply.

The Journey optimizer builds one map from two sources. Either one is enough on its own.

SourceWhat it addsWhat you need
Real visitsWhere people arrive, the paths they take, where they leave, pages they open by mistake (wrong doors), pages they reloadThe Mushi Mushi SDK with session tracking on (trackSessions, on by default), or 'on-demand' with a recording window
Site scanYour site map from its own links, pages nothing links to, pages too many clicks deep, duplicate and near-duplicate pages, pages that share a titleA Firecrawl key in Settings → AI keys
Live-site watch (optional)Broken pages on the mapThe watch turned on under User stories → Discovery

Record visits only when you need them

Every recorded visit sends a few small requests (start, page views, a heartbeat every minute while the tab is open). If that is too much for every visitor, run the SDK with trackSessions: 'on-demand':

Mushi.init({ projectId, apiKey, trackSessions: 'on-demand' })

Then nothing is sent until you ask:

  • Record visits on demand on this page opens a window for 1 hour, 1 day or 1 week, for 10%, 50% or all visitors. Each device is drawn in or out once and stays that way, so no visit is half recorded. Stop applies from each visitor’s next page load (SDK newer than 1.34.1; 1.34.1 and older can take about 6 minutes). A page that is already open keeps recording until it is closed or reloaded.
  • Test in your own browser copies your address with ?mushi_journeys=1. That tab records whatever the window says; ?mushi_journeys=0 turns it off.

The SDK reads the window from the settings it already loads, so outside a window it adds no request at all.

Scan your site

The scan uses Firecrawl , a service that reads web pages for you. Add your own Firecrawl key under Settings → AI keys first.

Type your live address (Mushi Mushi fills it in when it knows it) and press Scan my site. The scan reads up to 40 public pages, about 41 Firecrawl credits. Firecrawl reads them on its side, slow pages included, and the map fills in by itself when it is done, usually within a few minutes. It uses no AI model and changes nothing on your site. Mushi Mushi keeps each page’s title, its links and a fingerprint of its text, never the text itself, and keeps the newest 10 scans. One scan runs at a time, at most one every 10 minutes.

Read the map

  • Each card is a page: visits, the share of visits that end there, and how many clicks it is from the start page. Its border is red for a fix-first problem and amber for one worth fixing.
  • Each arrow is people moving from one page to the next. A thicker arrow means more people.
  • With a scan, a dashed arrow means people moved without a link on the page (menu, back button or search), and a dotted one is a link nobody used.
  • Click a page to see only its problems. Pick 7, 30 or 90 days at the top of the map.

What it finds

FindingMeansUsual fix
Broken pageThe live-site watch found the page failingFix the page, then the links to it
Dead endMost visits end here and the page links nowhere but the menuAdd one clear next step
People leaveMost visits end hereMake the main action easy to see; check the page answers what people came for
Wrong doorPeople open a page, come back within seconds and pick a different oneMake the way to the page they wanted easier to see, and say on the link what the first page holds
ReloadedPeople open the same page again right awayCheck for slow loading or a form that seems not to save
Duplicate pagesTwo or more pages share most of their textMerge and redirect, or make each page about one thing
Same page, two addresses/About and /about, /pricing.html and /pricingPick one address and redirect the others
Same titlePages share a titleGive each page its own title
Nothing links hereNo scanned page links to itLink to it where people look, or remove it
Too deep4 or more clicks from the start pageLink to it from the start page or menu
Never openedScanned pages no visit openedLink to them, or remove them

Thank-you, success, logout and 404 pages are never flagged for people leaving: leaving is the point there.

Hand it to your coding agent

Every finding has Copy prompt for your coding agent: a self-contained instruction naming the pages, what is wrong and what to change. Paste it into Cursor, Claude Code, Lovable or Bolt. Copy all as one prompt gives the agent the whole list, worst first.

The Journey score starts at 100 and drops for each finding: a fix-first one costs the most. Use it to see a change land, not as a grade.

  • First-time user test: an AI tries one goal as a new user and shows where it got stuck.
  • User stories: the crawl that drafts what users can do in your app.
  • Home → Pages: the busiest pages at a glance, with a link here.
Last updated on