Audit my site
ArchitectureBeginnerChecked against Google docs · Oct 2026

Navigation and breadcrumbs: menus Google can crawl and trails it can read

Menus, footers and breadcrumbs are the links repeated on every page, so they shape what Google finds and what it treats as important. Here is how to build each one, and how to mark up breadcrumbs the way Google documents it.

Author: Eugene Serbin, Head of SEO at Semalt Updated: 30 October 2026 Reading time: 18 min Visuals: 5

In short

Your menus, footer and breadcrumbs are the internal links that appear on every page, so they decide which pages Google finds first and which ones look important. Build them from plain <a href> links in the HTML, keep the same links on mobile and desktop, and give the trail on each page clear names. Add BreadcrumbList structured data that matches the visible trail, and remember that Google currently shows breadcrumbs in results on desktop only.

Why navigation matters for users and for Google

Navigation answers two questions at once. For a visitor it shows where they are and where they can go next. For Google it is the largest set of internal links on your site, repeated on every template. Google finds new pages mostly by following links: according to its SEO Starter Guide, “the vast majority of the new pages Google finds every day are through links”. A page that no menu, category or breadcrumb links to is hard to find and easy to overlook.

Navigation also tells Google what you consider important. Google's ecommerce guide puts it plainly: “Google can use information such as the number of links it needs to follow to reach a page and the number of links to a page to infer the relative importance of a page over the rest of your site.” A category linked from the main menu on every page is one click from anywhere. A product that can only be reached through four levels of sub-categories is not.

This lesson covers the navigation elements themselves. How to plan hubs and click depth is in the lesson Structure from keywords: hubs and depth, and how to find pages that nothing links to is in Internal linking and orphan pages.

Table · Navigation patterns compared
PatternMain jobWhat it should link toTypical SEO risk
Main menuGet users to the main sectionsTop categories, hubs, key service pagesVague labels, links built with JavaScript events
Mega menuExpose sub-categories of large sitesCategories and sub-categories that matterHundreds of links on every page, menu loaded only on hover
FooterSupporting and trust pagesAbout, contact, legal, delivery, a few top categoriesBlocks of keyword-stuffed city or service links
Mobile menuSame navigation on small screensThe same important links as desktopCategories dropped to save space
BreadcrumbsShow where the page sitsEach parent level up to the topTrail or markup that does not match the hierarchy
Faceted menuFilter a list by attributesFilter URLs, only some of them indexableEndless filter combinations crawled as URLs
Each navigation pattern has a different job, and each one fails in its own typical way.

What Google officially says

“Navigation structures on your site (such as menus and cross page links) can impact Google's understanding of your site structure.”

Google Search Central — Help Google understand your ecommerce website structure

“Generally, Google can only crawl your link if it's an <a> HTML element (also known as anchor element) with an href attribute.”

Google Search Central — Link best practices for Google

“A breadcrumb trail on a page indicates the page's position in the site hierarchy, and it may help users understand and explore a site effectively.”

Google Search Central — Breadcrumb (BreadcrumbList) structured data

A few more statements from the same pages shape everything below. Each is a direct quote:

The main menu is the strongest set of internal links you have, because it sits on every page. Use it for the pages that should carry the most weight: your top categories, your hub pages and your main services. Product pages, blog posts and campaign pages rarely belong in it.

What to include

Labels

A menu label is anchor text. Use short, descriptive labels in the words people actually use: Running shoes, not Collections; Web design, not What we do. Google's link guidance asks for anchor text that is “descriptive, reasonably concise, and relevant to the page that it's on and to the page it links to.” Keep the label the same as the H1 of the page it links to, or close to it.

Depth and size

There is no official limit. Google says: “There's no magical ideal number of links a given page should contain. However, if you think it's too much, then it probably is.” In practice, a handful of top-level items is easier to scan than twenty, and one or two dropdown levels are usually enough. A common rule of thumb is that important pages should be reachable within a few clicks of the home page. It is a planning aid, not a Google rule.

Crawlable markup

Every menu item should be a real link with a real URL. Google's ecommerce guide says: “To ensure Googlebot correctly locates the link, use <a href> tags when creating links to other content.” JavaScript is allowed, as long as the result is normal HTML: “Links are also crawlable when you use JavaScript to insert them into a page dynamically as long as it uses the HTML markup shown above.”

Code · Menu links Google cannot rely on vs crawlable links

✕ Not reliably crawled

<nav>
  <div onclick="go('/shoes/')">Shoes</div>
  <span href="/boots/">Boots</span>
  <a href="javascript:goTo('sale')">Sale</a>
  <a href="/bags/"><img alt=""></a>
</nav>
  • No <a href> at all
  • href on the wrong element
  • A javascript: pseudo-URL
  • Image link with no anchor text

✓ Crawlable

<nav aria-label="Main">
  <ul>
    <li><a href="/shoes/">Shoes</a></li>
    <li><a href="/boots/">Boots</a></li>
    <li><a href="/sale/">Sale</a></li>
  </ul>
</nav>
  • Every item is <a href>
  • Real, resolvable URLs
  • Visible text as the anchor
  • Present in the HTML Google renders
A click handler can still run on a real link; the problem is only a link that has no href for Google to read.

Mega menus

A mega menu is a large dropdown panel that shows several columns of links at once. Large shops, publishers and service companies with many sub-categories use it so that visitors can jump from any page straight to a deep category.

Pros

Cons

Treat Google's “if you think it's too much, then it probably is” as your test. As practice: include the categories and sub-categories that have search demand or business value, leave out tags, filters and minor pages, and give each column a heading that is itself a link to the parent category. Render the whole menu in the server HTML; hiding it with CSS until hover is fine, because the links are still in the page.

Diagram · How a mega menu is structured
Structure of a mega menu A top bar with five items: Running, Hiking, Clothing, Brands and Sale. Under Running a panel opens with three columns headed Shoes, Clothing and Accessories, each a link to its category, with three sub-category links under each heading, and a View all running link. Every item is an a href link in the server HTML. Running HikingClothingBrandsSale Level 1 ShoesClothingAccessories Level 2Level 2Level 2 Road shoesTrail shoesRacing flats TopsShortsJackets SocksWatchesBottles Level 3Level 3Level 3 View all running → links to the Running hub page Every heading and item is an <a href> in the server HTML, shown on hover with CSS
A useful mega menu has a few columns of real category links, headings that link to their parent, and nothing that only exists after a hover request.

The footer is the second set of links repeated on every page. It is the natural place for pages that users expect to find but that do not need a slot in the main menu:

What does not belong: long blocks of keyword-anchored links such as plumber London, plumber Leeds, plumber Bristol for every city you can name. These links help nobody, look manipulative and, if the target pages are thin, point Google at your weakest content. If you serve many locations, link to a single locations hub and let that page link to each location.

Mobile menus

Google indexes the mobile version of your pages. If the mobile menu contains fewer links than the desktop menu, those links are missing from the version Google uses. The full rules are in the lesson Mobile-first indexing; for navigation they come down to three points:

On responsive sites the usual failure is a CSS breakpoint or a separate mobile component that silently drops menu items. On sites with separate mobile templates, compare the two menus link by link.

Faceted and filter menus

Filter menus on category pages (size, colour, price, brand) are navigation too, but every filter click can create a new URL, and combinations multiply quickly. A few filter pages deserve to be indexable landing pages; most do not need to be crawled at all. How to choose, and which controls to use, is covered in depth in the lesson Pagination and faceted navigation. For your main menu, the rule is simple: link to category and landing pages with clean URLs, never to random filter combinations.

A breadcrumb trail is the short line of links, usually above the H1, that shows where the page sits: Books › Science Fiction › Award Winners. Google describes its purpose: “A user can navigate all the way up in the site hierarchy, one level at a time, by starting from the last breadcrumb in the breadcrumb trail.” For SEO, the trail adds a link from every page to each of its parents, which supports your category and hub pages.

Location-based, not history-based

The trail should show the page's place in your structure, not the pages a visitor clicked through. A history trail changes with every visit, so it is useless to Google and confusing to people who arrive from search.

User path, not URL folders

Google recommends “breadcrumbs that represent a typical user path to a page, instead of mirroring the URL structure.” If your product URL is /p/12345, the trail can still be Shoes › Running shoes › Trail shoes. Google also notes that it “generally doesn't look at the structure of URLs to work out the structure of a site”; it reads the links.

Placement and format

Pages with several paths

A product can sit in more than one category, for example Shoes › Trail shoes and Sale. Google allows this: “If there are multiple ways to navigate to a page on your site, you can specify multiple breadcrumb trails for a single page.” As practice, pick one primary category for the visible trail so every visitor sees the same path, and add a second trail only if it really reflects how people browse.

BreadcrumbList structured data

The visible trail is for people. BreadcrumbList structured data describes the same trail in a format Google can read reliably. Google's rules: “To specify breadcrumbs, define a BreadcrumbList that contains at least two ListItems.” And: “You must include the required properties for your content to be eligible for display with breadcrumbs.” JSON-LD is the easiest format to maintain; microdata and RDFa are also supported. General structured data practice is in the lesson Structured data in 2026.

Diagram · A visible trail mapped to BreadcrumbList
Breadcrumb trail and its structured data The visible trail Books, Science Fiction, Award Winners is mapped to three ListItems. Position 1 is Books with item https://example.com/books. Position 2 is Science Fiction with item https://example.com/books/sciencefiction. Position 3 is Award Winners, the current page, with item omitted, so Google uses the page URL. What the visitor sees, above the H1 Books › Science Fiction › Award Winners LISTITEM 1LISTITEM 2LISTITEM 3 · CURRENT PAGE position: 1name: "Books"item: …/books position: 2name: "Science Fiction"item: …/sciencefiction position: 3name: "Award Winners"item: omitted Without item on the last ListItem, Google uses the URL of the page itself
Each visible crumb becomes one ListItem with the same name, in the same order, with position counting from 1.

Here is the full markup for that page, based on Google's own example. It goes in the page's HTML, usually in the <head>:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "Books",
    "item": "https://example.com/books"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "Science Fiction",
    "item": "https://example.com/books/sciencefiction"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "Award Winners"
  }]
}
</script>

Required properties, as Google documents them

Google lists only required properties for this type; there are no recommended ones.

TypePropertyGoogle's definition
BreadcrumbListitemListElement (ListItem)“An array of breadcrumbs listed in a specific order.”
ListItemitem (URL or a subtype of Thing)“The URL to the webpage that represents the breadcrumb.” In JSON-LD you can give a plain URL or an object with @id.
ListItemname (Text)“The title of the breadcrumb displayed for the user.”
ListItemposition (Integer)“The position of the breadcrumb in the breadcrumb trail. Position 1 signifies the beginning of the trail.”

Two exceptions are written into the definitions. For the last crumb: “If the breadcrumb is the last item in the breadcrumb trail, item is not required. If item isn't included for the last item, Google uses the URL of the containing page.” For name: “If you're using a Thing with a name instead of a URL to specify item, then name is not required.” Google also notes: “It is not required to include a breadcrumb ListItem for the top level path (your site's domain or host name), nor for the page itself.”

Several trails on one page

For a page with two paths, the JSON-LD becomes an array of two BreadcrumbList objects, one per trail. Shortened:

[{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [ /* Books › Science Fiction › Award Winners */ ]
},{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [ /* Literature › Award Winners */ ]
}]

Rules to follow

How breadcrumbs appear in Google results

In a search result, the breadcrumb is the line next to the site name that shows the path to the page, for example example.com › books › sciencefiction. Google explains its role: “Google Search uses breadcrumb markup in the body of a web page to categorize the information from the page in search results.”

Where it appears: the breadcrumb documentation currently says “This feature is available on desktop in all regions and languages where Google Search is available.” On other surfaces the results may show only the domain. The markup costs nothing to keep, so implement it anyway.

You do not have to use markup to get a breadcrumb line. The SEO Starter Guide says: “Parts of the URL can be displayed in search results as breadcrumbs, so users can also use the URLs to understand whether a result will be useful for them.” And: “Google learns breadcrumbs automatically based on the words in the URL, but you can also influence them with structured data if you like a technical challenge.” This is one reason readable URLs help. Do not expect a ranking boost from it, though: Google says keywords in the domain or URL path “alone have hardly any effect beyond appearing in breadcrumbs.”

Finally, valid markup is not a promise. “Google does not guarantee that features that consume structured data will show up in search results.”

Testing your breadcrumbs

  1. Rich Results Test. Paste a URL or code. Google's instruction: “Validate your code using the Rich Results Test and fix any critical errors.” Non-critical warnings are worth fixing but do not block eligibility.
  2. URL Inspection in Search Console. Test the live URL and look at the rendered HTML. Check that the menu links, the visible trail and the JSON-LD are all there, especially if JavaScript builds them.
  3. Breadcrumbs report. After Google has indexed your pages, the breadcrumbs rich result report in Search Console lists valid and invalid items. A sudden rise in invalid items usually means a template change broke the markup.
  4. Schema Markup Validator. Useful for general schema.org syntax, but it does not tell you about Google's eligibility rules.
  5. Crawl the site. A crawler shows which URLs your menus and breadcrumbs link to, and whether any of them redirect, return errors or are noindex.
Cheat sheet · Navigation do and don't

✓ Do

  • Build every menu item as <a href> with a real URL
  • Link the main menu to top categories and hubs
  • Use short, descriptive labels that match the target page's H1
  • Keep the mobile menu as complete as desktop
  • Show a location-based breadcrumb above the H1
  • Mark up the same trail with BreadcrumbList
  • Point menus and breadcrumbs at canonical, indexable URLs

✕ Don't

  • Use div or span click handlers as links
  • Load menu links only on hover or tap
  • Put hundreds of links in a mega menu
  • Stuff the footer with keyword city or service links
  • Rely on site search to reach products
  • Mark up a trail that differs from the visible one
  • Link to filter combinations from the main menu
Most navigation problems come down to links Google cannot read or links that point to the wrong pages.

Check the links your navigation creates

OurSEO Tools runs a 69-point checklist, including internal linking, and crawls up to 1,000 pages with the status code, canonical and indexability of every URL, so you can spot menu and breadcrumb links that point to redirects, errors or noindex pages.

69-point checklistTechnical crawlContent analysis

Common mistakes

FAQ

Are breadcrumbs a ranking factor?

Google does not describe them as one. Their SEO value is the internal links to parent pages, a clearer structure, and a more readable result on desktop.

Do I need BreadcrumbList markup if the trail is visible on the page?

It is not required: Google can learn breadcrumbs from your URLs. Markup lets you influence what Google shows, and it is the documented way to be eligible for breadcrumbs in results.

Should the home page be the first item in the trail?

Showing Home to visitors is common and fine. In the markup it is optional: Google does not require a ListItem for your domain or for the current page.

Why don't my breadcrumbs show in Google on my phone?

Google's documentation says the feature is available on desktop, so on mobile you may see only the domain. Check the breadcrumb markup with the Rich Results Test rather than judging by your phone.

Is a hamburger menu bad for SEO?

No. Links inside a collapsed menu count as long as they are in the HTML. What hurts is removing links from the mobile version or loading them only after a tap.

How many links can a mega menu have?

Google gives no number. Its test is “if you think it's too much, then it probably is.” Keep the categories that have demand or business value and drop the rest.

Sources

Quotes checked against the official pages on 30 October 2026.