Back to compare picker

In-page anchor navigation vs Breadcrumbs vs Side navigation

Prefer in-page anchor navigation when the destinations are headings on the current page and activation should scroll or jump without changing page context.

Decision dimensions

Dimension In-page anchor navigationBreadcrumbsSide navigation
UI or UX UI + UX - Same-page section jump links for long contentUI + UX - Hierarchy orientation navigationUI + UX - Persistent local hierarchy at the side of content
UI guidance Render a labelled navigation landmark with links to major headings on the current page, using labels that match or clearly summarize the destination sections.Render a labeled breadcrumb nav as an ordered hierarchy from the broadest relevant ancestor to the current page, with real ancestor links and a distinct current-page item.Render a vertical navigation region beside the main content that exposes the current area's parent, child, and optional grandchild pages with a clear active indicator.
UX guidance Use in-page anchor navigation to help users understand the contents of a long page and jump directly to the section they need without leaving the page.Orient users who arrive deep in a site by exposing the canonical parent-child relationship for the current page.Use side navigation to help users move within a complex section without losing the current page's position in that section.
Good UI An article starts with an 'On this page' nav linking to Eligibility, Documents, Fees, and After you apply, each matching an H2 on the same page.Home, Projects, Migration, and Runbook appear in hierarchy order with ancestor links and Runbook marked current.A settings page shows Account, Billing, Team, and Security in a left rail with Security expanded and Audit log marked as current.
Bad UI A short page with two paragraphs shows a table of contents that adds more navigation than content.Recent clicks are displayed as if they were the page hierarchy.A sidebar mixes Dashboard, Reports, Sign out, Help, Team, API, Billing, and Marketing with no section grouping.
Good UX A user opens a long guidance page, chooses Fees, and lands at the Fees heading with the Fees link marked active.Opening a saved deep link still shows the same parent path and lets users jump to Migration or Projects.Users open Billing, switch to Invoices, then return to Security and see the Security group still expanded.
Bad UX Clicking a jump link scrolls visually but keyboard focus stays in the contents list.The breadcrumb changes after every click, so the same page shows different trails for different users.Users must reopen a drawer every time they move between sibling pages in the same desktop section.
Best fit A long content page has several meaningful sections users may want to jump to.Pages sit inside a clear parent-child hierarchy.A product area has several related pages arranged in a visible hierarchy.
Avoid when The page is short enough that the headings are already visible.The app has a flat structure with no meaningful parent levels.The product only has a few pages and does not need a hierarchy.
Required state Default state with a labelled same-page navigation list near or beside long content.Interior page with full ancestor trail.Default state with the local section hierarchy visible beside content.
Accessibility burden Wrap the jump links in a labelled navigation landmark so assistive technology users can find the page contents list.Place the trail in a labeled nav element.Use a labeled navigation landmark that distinguishes local side navigation from primary navigation.
Common misuse Using in-page anchors as a substitute for side navigation across different pages.Showing browsing history instead of hierarchy.Duplicating global navigation links in the side navigation.

In-page anchor navigation

UI or UX
UI + UX - Same-page section jump links for long content
UI guidance
Render a labelled navigation landmark with links to major headings on the current page, using labels that match or clearly summarize the destination sections.
UX guidance
Use in-page anchor navigation to help users understand the contents of a long page and jump directly to the section they need without leaving the page.
Good UI
An article starts with an 'On this page' nav linking to Eligibility, Documents, Fees, and After you apply, each matching an H2 on the same page.
Bad UI
A short page with two paragraphs shows a table of contents that adds more navigation than content.
Good UX
A user opens a long guidance page, chooses Fees, and lands at the Fees heading with the Fees link marked active.
Bad UX
Clicking a jump link scrolls visually but keyboard focus stays in the contents list.
Best fit
A long content page has several meaningful sections users may want to jump to.
Avoid when
The page is short enough that the headings are already visible.
Required state
Default state with a labelled same-page navigation list near or beside long content.
Accessibility burden
Wrap the jump links in a labelled navigation landmark so assistive technology users can find the page contents list.
Common misuse
Using in-page anchors as a substitute for side navigation across different pages.

Breadcrumbs

UI or UX
UI + UX - Hierarchy orientation navigation
UI guidance
Render a labeled breadcrumb nav as an ordered hierarchy from the broadest relevant ancestor to the current page, with real ancestor links and a distinct current-page item.
UX guidance
Orient users who arrive deep in a site by exposing the canonical parent-child relationship for the current page.
Good UI
Home, Projects, Migration, and Runbook appear in hierarchy order with ancestor links and Runbook marked current.
Bad UI
Recent clicks are displayed as if they were the page hierarchy.
Good UX
Opening a saved deep link still shows the same parent path and lets users jump to Migration or Projects.
Bad UX
The breadcrumb changes after every click, so the same page shows different trails for different users.
Best fit
Pages sit inside a clear parent-child hierarchy.
Avoid when
The app has a flat structure with no meaningful parent levels.
Required state
Interior page with full ancestor trail.
Accessibility burden
Place the trail in a labeled nav element.
Common misuse
Showing browsing history instead of hierarchy.

Side navigation

UI or UX
UI + UX - Persistent local hierarchy at the side of content
UI guidance
Render a vertical navigation region beside the main content that exposes the current area's parent, child, and optional grandchild pages with a clear active indicator.
UX guidance
Use side navigation to help users move within a complex section without losing the current page's position in that section.
Good UI
A settings page shows Account, Billing, Team, and Security in a left rail with Security expanded and Audit log marked as current.
Bad UI
A sidebar mixes Dashboard, Reports, Sign out, Help, Team, API, Billing, and Marketing with no section grouping.
Good UX
Users open Billing, switch to Invoices, then return to Security and see the Security group still expanded.
Bad UX
Users must reopen a drawer every time they move between sibling pages in the same desktop section.
Best fit
A product area has several related pages arranged in a visible hierarchy.
Avoid when
The product only has a few pages and does not need a hierarchy.
Required state
Default state with the local section hierarchy visible beside content.
Accessibility burden
Use a labeled navigation landmark that distinguishes local side navigation from primary navigation.
Common misuse
Duplicating global navigation links in the side navigation.
Decision rules
  • Prefer in-page anchor navigation when the destinations are headings on the current page and activation should scroll or jump without changing page context.
  • Prefer breadcrumbs when users need to understand the current page's parent-child hierarchy and navigate upward to ancestor pages.
  • Prefer side navigation when users need persistent access to sibling or child pages within a product area or documentation section.
  • Do not use in-page anchors for separate routes; if the destination has its own page, use side navigation, related links, or global navigation instead.
  • Do not use breadcrumbs for same-page headings; breadcrumb items should stay stable for the same URL and represent canonical ancestor pages.
  • Do not use side navigation for every H2 on a single article; that makes page contents look like a multi-page information architecture.
  • Use active state differently: in-page anchors track the visible or hash-target section, breadcrumbs identify the current page, and side navigation identifies the current local page.
  • When a sticky header is present, use scroll offsets so in-page anchors do not hide the destination heading.
  • When keyboard users activate an in-page anchor, focus should move to the destination heading; breadcrumbs and side navigation follow normal page navigation focus behavior.
  • If a page has too few meaningful headings, omit in-page anchor navigation instead of creating a decorative contents list.
Inspect live examples
Failure modes
  • In-page links open other pages, breaking the expectation that a contents list stays on the same page.
  • Breadcrumbs are filled with headings from the current article instead of ancestor pages.
  • Side navigation duplicates every heading on a single page and competes with actual local hierarchy.
  • The active in-page link stays on Overview while the visible heading is Fees.
  • Anchor targets land under a fixed header and the destination heading is hidden.
  • Keyboard focus remains in the link list after the page scrolls to a section.