Worth knowing; many are deliberate or cosmetic. No visible way in ×10 · Leftover redirect ×1 · One-way section ×4 · Possibly unreachable ×1 · Only in the menus ×4 · Busy crossroads ×4
LowNo visible way in
The /build-a-board page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /build-a-board · warning · confidence medium
No CTA anywhere leads to /build-a-board. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /build-a-board is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /checkout/[storeId]/success page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /checkout/[storeId]/success · warning · confidence medium
No CTA anywhere leads to /checkout/[storeId]/success. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /checkout/[storeId]/success is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /collections/[category]/[subcategory] page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /collections/[category]/[subcategory] · warning · confidence medium
No CTA anywhere leads to /collections/[category]/[subcategory]. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /collections/[category]/[subcategory] is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /dashboard/account page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /dashboard/account/[[...rest]] · warning · confidence medium
No CTA anywhere leads to /dashboard/account/[[...rest]]. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /dashboard/account/[[...rest]] is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /dashboard/purchases page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /dashboard/purchases · warning · confidence medium
No CTA anywhere leads to /dashboard/purchases. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /dashboard/purchases is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /sso-callback page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /sso-callback/[[...sso-callback]] · warning · confidence medium
No CTA anywhere leads to /sso-callback/[[...sso-callback]]. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /sso-callback/[[...sso-callback]] is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /store/[storeId]/analytics page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /store/[storeId]/analytics · warning · confidence medium
No CTA anywhere leads to /store/[storeId]/analytics. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /store/[storeId]/analytics is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /store/[storeId]/customers page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /store/[storeId]/customers · warning · confidence medium
No CTA anywhere leads to /store/[storeId]/customers. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /store/[storeId]/customers is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /store/[storeId]/orders page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /store/[storeId]/orders · warning · confidence medium
No CTA anywhere leads to /store/[storeId]/orders. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /store/[storeId]/orders is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowNo visible way in
The /store/[storeId]/products page is only reached through a generated link.
- What users experience
- No button leads here; users arrive through an address the app builds, such as a link in an email.
- Why it matters
- Fine for hand-offs. If users should also find it in the product, they cannot.
- Why low
- Often deliberate.
Recommended fixIf it is meant to be browsable, give it a link where users need it.
Technical details
indirect-only · /store/[storeId]/products · warning · confidence medium
No CTA anywhere leads to /store/[storeId]/products. Its address is assembled in code — a handoff link or a URL held in state — so it works, but it has no door in the interface and no back edge to whatever opened it.
If /store/[storeId]/products is meant to be a destination people navigate to, give it a CTA. If it is a handoff target, confirm it offers a way back.
LowLeftover redirect
The old /preview/product/[productId] page still ships, only to redirect elsewhere.
- What users experience
- Users do not notice; they are sent on automatically.
- Why it matters
- Leftover code to maintain, and a sign that links elsewhere may still point at the old address.
- Why low
- Housekeeping, invisible to users.
Recommended fixDelete /preview/product/[productId] and point anything still referencing it at /product/[productId].
Technical details
legacy-route-live · /preview/product/[productId] · warning · confidence medium
/preview/product/[productId] is a stub whose only job is to redirect to /product/[productId].
Delete /preview/product/[productId] and point anything still referencing it at /product/[productId].
LowOne-way section
Users can enter product from collections but not come back.
- What users experience
- Going one way takes one click; returning takes several, or the menus.
- Why it matters
- Users feel lost and use the back button or restart, which breaks their flow.
- Why low
- An annoyance rather than a blocker.
Recommended fixAdd a direct way back where users arrive.
Technical details
one-way-cluster · collections->product · warning · confidence medium
3 CTAs cross from collections into product, and none come back. That is the shape of an ingested data source rather than a peer area of the product.
If a user working in product ever needs the collections context, add the return CTA.
LowOne-way section
Users can enter home from signin but not come back.
- What users experience
- Going one way takes one click; returning takes several, or the menus.
- Why it matters
- Users feel lost and use the back button or restart, which breaks their flow.
- Why low
- An annoyance rather than a blocker.
Recommended fixAdd a direct way back where users arrive.
Technical details
one-way-cluster · signin->home · warning · confidence medium
3 CTAs cross from signin into home, and none come back. That is the shape of an ingested data source rather than a peer area of the product.
If a user working in home ever needs the signin context, add the return CTA.
LowOne-way section
Users can enter dashboard from store but not come back.
- What users experience
- Going one way takes one click; returning takes several, or the menus.
- Why it matters
- Users feel lost and use the back button or restart, which breaks their flow.
- Why low
- An annoyance rather than a blocker.
Recommended fixAdd a direct way back where users arrive.
Technical details
one-way-cluster · store->dashboard · warning · confidence medium
14 CTAs cross from store into dashboard, and none come back. That is the shape of an ingested data source rather than a peer area of the product.
If a user working in dashboard ever needs the store context, add the return CTA.
LowOne-way section
Users can enter home from store but not come back.
- What users experience
- Going one way takes one click; returning takes several, or the menus.
- Why it matters
- Users feel lost and use the back button or restart, which breaks their flow.
- Why low
- An annoyance rather than a blocker.
Recommended fixAdd a direct way back where users arrive.
Technical details
one-way-cluster · store->home · warning · confidence medium
9 CTAs cross from store into home, and none come back. That is the shape of an ingested data source rather than a peer area of the product.
If a user working in home ever needs the store context, add the return CTA.
LowPossibly unreachable
The /blog/[...slug] page may be unreachable. Worth a two-minute check.
- What users experience
- No link we could read leads here, but the /blog page has a link whose address is computed while the app runs. That link is probably the way in.
- Why it matters
- If the computed link works, nothing is wrong. If not, users cannot open these pages.
- Why low
- Most likely fine; it just could not be proven from the code alone.
Recommended fixClick through once to confirm the link opens this page.
Technical details
orphan-unconfirmed · /blog/[...slug] · warning · confidence low
No resolved CTA leads to /blog/[...slug], but /blog has 1 whose destination is computed at runtime. One of them is probably the door. Check the evidence; if it is, nothing is wrong.
LowOnly in the menus
The /dashboard/billing page can only be reached from the menus.
- What users experience
- No screen links here in context. Users have to know to look for it in the navigation.
- Why it matters
- Users who would need it in the middle of a task do not discover it.
- Why low
- Reachable, just not where users would think to look.
Recommended fixLink to it from the screen where users need it.
Technical details
rail-only-inbound · /dashboard/billing · warning · confidence medium
No screen links to /dashboard/billing; only the navigation rail does. Every journey to it costs a trip back to the rail.
Add an in-page CTA to /dashboard/billing from the screen a user is on when they need it.
LowOnly in the menus
The /dashboard/settings page can only be reached from the menus.
- What users experience
- No screen links here in context. Users have to know to look for it in the navigation.
- Why it matters
- Users who would need it in the middle of a task do not discover it.
- Why low
- Reachable, just not where users would think to look.
Recommended fixLink to it from the screen where users need it.
Technical details
rail-only-inbound · /dashboard/settings · warning · confidence medium
No screen links to /dashboard/settings; only the navigation rail does. Every journey to it costs a trip back to the rail.
Add an in-page CTA to /dashboard/settings from the screen a user is on when they need it.
LowOnly in the menus
The /onboarding page can only be reached from the menus.
- What users experience
- No screen links here in context. Users have to know to look for it in the navigation.
- Why it matters
- Users who would need it in the middle of a task do not discover it.
- Why low
- Reachable, just not where users would think to look.
Recommended fixLink to it from the screen where users need it.
Technical details
rail-only-inbound · /onboarding · warning · confidence medium
No screen links to /onboarding; only the navigation rail does. Every journey to it costs a trip back to the rail.
Add an in-page CTA to /onboarding from the screen a user is on when they need it.
LowOnly in the menus
The /signout page can only be reached from the menus.
- What users experience
- No screen links here in context. Users have to know to look for it in the navigation.
- Why it matters
- Users who would need it in the middle of a task do not discover it.
- Why low
- Reachable, just not where users would think to look.
Recommended fixLink to it from the screen where users need it.
Technical details
rail-only-inbound · /signout/[[...signout]] · warning · confidence medium
No screen links to /signout/[[...signout]]; only the navigation rail does. Every journey to it costs a trip back to the rail.
Add an in-page CTA to /signout/[[...signout]] from the screen a user is on when they need it.
LowBusy crossroads
Many journeys pass through the home page.
- What users experience
- It is a hub: users cross it on the way to much of the product.
- Why it matters
- A problem on this page affects everything behind it. Test it with extra care.
- Why low
- A measurement to be aware of, not a defect.
Recommended fixKeep it fast and stable; consider a second route to what lies behind it.
Technical details
chokepoint · / · info · confidence medium
Most journeys between areas pass through /. Quality, performance and copy budget belong here first; a bug here breaks many flows.
LowBusy crossroads
Many journeys pass through the /cart page.
- What users experience
- It is a hub: users cross it on the way to much of the product.
- Why it matters
- A problem on this page affects everything behind it. Test it with extra care.
- Why low
- A measurement to be aware of, not a defect.
Recommended fixKeep it fast and stable; consider a second route to what lies behind it.
Technical details
chokepoint · /cart · info · confidence medium
Most journeys between areas pass through /cart. Quality, performance and copy budget belong here first; a bug here breaks many flows.
LowBusy crossroads
Many journeys pass through the /product/[productId] page.
- What users experience
- It is a hub: users cross it on the way to much of the product.
- Why it matters
- A problem on this page affects everything behind it. Test it with extra care.
- Why low
- A measurement to be aware of, not a defect.
Recommended fixKeep it fast and stable; consider a second route to what lies behind it.
Technical details
chokepoint · /product/[productId] · info · confidence medium
Most journeys between areas pass through /product/[productId]. Quality, performance and copy budget belong here first; a bug here breaks many flows.
LowBusy crossroads
Many journeys pass through the /signin page.
- What users experience
- It is a hub: users cross it on the way to much of the product.
- Why it matters
- A problem on this page affects everything behind it. Test it with extra care.
- Why low
- A measurement to be aware of, not a defect.
Recommended fixKeep it fast and stable; consider a second route to what lies behind it.
Technical details
chokepoint · /signin/[[...signin]] · info · confidence medium
Most journeys between areas pass through /signin/[[...signin]]. Quality, performance and copy budget belong here first; a bug here breaks many flows.