Crumbs calculates breadcrumbs for your site.
It does so by finding the parent of the current page, then the parent of the parent, etc, until it arrives at the home page.

Crumbs comes with a bunch of built-in plugins, that can be individually enabled, disabled and prioritized, and some of which provide further configuration options.

A lot of these are already enabled by default, and provide a behavior "as you would expect" out of the box. And as a fallback, with all plugins disabled, Crumbs behaves very similar to Easy breadcrumb.

Built-in plugins

Crumbs plugins have two responsibilities: (1) to determine the parent path for a given path, and (2) to determine the title for a specific breadcrumb link.

Built-in plugins exist for: Menu, Taxonomy, Entity reference, Organic groups, Path aliases, Entityreference prepopulate, Text fields, Forum, Commerce checkout, etc.

Besides, there are configurable token-based patterns to find the parent for entity pages per bundle.

As a fallback behavior, it will always try to find a parent by chopping off the last part of the path. And for the link title, the fallback is whatever was specified with hook_menu().

Fine-grained priority control

Most plugin priorities are further subdivided, to allow even more fine-grained control: By menu name (menu), vocabulary name (taxonomy), field name and entity bundle (entity reference), group content type (organic groups), etc.

A smart wildcard system saves you from having to configure each of those fine-grained priorities separately: You only sort as fine-grained as you need, the rest will take the priority of the parent.

Display settings

Option to show or hide the breadcrumb item for the current page.
Option to show or hide the home link, and set a custom title for it (e.g. "Start" instead of "Home").
Option to show or hide breadcrumbs that only have one or two items.
Option for a custom separator.

Optional Microdata or RDFa support, so the breadcrumb will show up in Google / Bing / Yahoo search results.
(in the 7.x-2.x-microdata branch)

Respect themes:
Option to override only specific implementations of THEME_breadcrumb().

Rich snippets? Microdata? RDFa? schema.org? SEO?

Crumbs, since version 7.x-2.7, uses JSON-LD to tell search engines about the breadcrumb.
See http://schema.org/BreadcrumbList and https://developers.google.com/search/docs/data-types/breadcrumb

JSON-LD was chosen because it does not interfere with the themed breadcrumb html.
#2119537-26: Rich snippets / Microdata / RDFa

Please note that

  • Search engines may take a while to index.
  • Search engines (esp Google) may decide to not show a breadcrumb even if there is one. In some cases one can fix this by cleaning up the breadcrumb structure.

Documentation

Related projects

Modules that leverage crumbs_get_trail()

  • Menupoly (under construction) is a "clone" of Menu Block, which can use crumbs to determine which submenus should be expanded, and which items should be marked as "active" or "active trail". Very much what menu trails does, but more powerful.
  • ThemeKey (D7) is supported by Crumbs, and in combination they allow to switch theme based on a parent path in the crumbs trail.

Meant as a feature-complete alternative to the following modules:

There is a comparison page for different breadcrumb-related modules.

Feedback is welcome!

If you have any feedback, suggestions, interesting use cases, go ahead and post it on the issue queue!
Everything you post could lead to making this module better.

Project information

Releases