PS PrestaShop Beginner

Breadcrumbs Pro — Complete guide

Installation, dropdown configuration, multi-category path strategies and JSON-LD BreadcrumbList of the Breadcrumbs Pro module.

Updated Module version 1.0.0

Breadcrumbs Pro (dfbreadcrumbpro) replaces the basic breadcrumb trail of your theme with an enhanced navigation component: sibling-category dropdown menus on every level, JSON-LD BreadcrumbList structured data compliant with Google guidelines, and a smart path for products belonging to several categories.

Installation

  1. Go to Modules > Module Manager > Upload a module.
  2. Upload the dfbreadcrumbpro.zip archive and click Install.
  3. The module automatically registers on the displayHeader, displayWrapperTop and actionFrontControllerSetMedia hooks. No further action is required.

The module creates no SQL table and performs no override: uninstalling simply removes its configuration keys.

Compatibility: PrestaShop 8.0 to 9.x, PHP 7.4 to 8.3, multistore and multilingual.

Configuration

Open Modules > Module Manager, search for “Breadcrumbs Pro” and click Configure. The following options are available:

  • Replace theme breadcrumb (enabled by default) — hides the breadcrumb rendered by the theme (classes .breadcrumb and .breadcrumb-wrapper) with CSS to avoid visual duplication.
  • Enable dropdown menus (enabled by default) — shows sibling categories in a dropdown on each breadcrumb level.
  • Show subcategories on the last level (disabled by default) — on category pages, the last dropdown lists the subcategories of the current category instead of its siblings. If the category has no children, the module automatically falls back to siblings.
  • Path strategy for products — see the dedicated section below.
  • Enable JSON-LD BreadcrumbList (enabled by default) — injects the schema.org structured data in the page head.
  • Show home link (enabled by default) — first trail item pointing to the home page.
  • Separator — character displayed between levels (default , 8 characters maximum).
  • Maximum items per dropdown — cap on the categories listed in each dropdown (default 15, from 1 to 50).

Product path strategies

When a product belongs to several categories, the module has to choose which path to display. Three strategies are available:

Default category

The trail uses the product default category (id_category_default), i.e. the classic PrestaShop behavior. If that category is disabled or not associated with the current shop, the module automatically falls back to the deepest category.

Deepest category

The trail uses the deepest active category (highest level_depth) among the product categories. This is the most specific path, usually the most interesting for SEO since it maximizes the number of levels and keywords in the trail and in the JSON-LD.

The module stores the last category visited by the customer in a cookie (dfbcp_last_cat). On a product page, if the product belongs to that category, the trail displays this path: the navigation reflects the visitor’s actual journey. Otherwise, the module falls back to the deepest category.

The contextual mode relies on a visitor cookie. If your store sits behind a very aggressive full-page cache (Varnish without cookie variation, CDN in full-cache mode), the cookie may be ignored: prefer the “Deepest category” strategy in that case.

Every trail level corresponding to a category displays a caret button. Behavior:

  • Desktop — opens on level hover or caret click.
  • Mobile — opens on caret tap, trail scrolls horizontally on small screens.
  • Closing — click outside the trail or Escape key.
  • Accessibilityaria-haspopup, aria-expanded and aria-current attributes, full keyboard navigation.
  • Overflow protection — dropdowns reposition automatically so they never leave the screen.

Sibling category lists are cached per request and respect the current language and shop. The active category is highlighted in the menu.

JSON-LD BreadcrumbList

The module injects an application/ld+json script of type BreadcrumbList in the page head:

  • positions numbered from 1;
  • name and URL for each level;
  • last item (current page) deliberately without a URL, as recommended by Google guidelines;
  • never emitted when the trail has fewer than two levels.

You can validate the markup with the Google Rich Results Test.

If your theme already outputs its own JSON-LD BreadcrumbList, two markups will coexist and Search Console may report duplicates. Disable either the theme markup or the module JSON-LD option.

Covered pages

  • Categories — full path from the catalog root.
  • Product pages — category path according to the chosen strategy, product as the last level.
  • CMS pages — CMS category tree, then page title.
  • Brands and suppliers — list page, then detail page.
  • Other pages (contact, sales, sitemap…) — generic fallback on the page meta title.
  • Home page — no trail displayed.

Multistore and multilingual

All SQL queries respect the current shop associations (multistore context) as well as the visitor language: category names, rewritten URLs and labels resolve in the correct language. The French back-office translation is included; other languages can be translated via International > Translations > Installed modules translations.

Troubleshooting

The trail does not show

Check that your theme exposes the displayWrapperTop hook (present in the Classic theme and virtually all marketplace themes). If not, graft the module onto an equivalent display hook via Design > Positions.

Two breadcrumbs appear

The “Replace theme breadcrumb” option is disabled, or your theme uses non-standard CSS classes. Re-enable the option or add a CSS rule targeting your theme breadcrumb container.

The contextual mode always shows the same path

A full-page cache is probably ignoring the dfbcp_last_cat cookie. Switch to the “Deepest category” strategy or exclude this cookie from the cache key.

A dropdown is empty on one level

The category has no active sibling associated with the current shop: the caret is simply not displayed in that case.

After any configuration change, remember to clear the PrestaShop cache (Advanced Parameters > Performance) to see the changes on the front office immediately.

Version history

  • 1.0.0 (2026-07-16) — Initial release: sibling-category dropdown menus, JSON-LD BreadcrumbList, default / deepest / contextual strategies, coverage of categories, products, CMS, brands and suppliers, multistore and multilingual.
Was this page helpful?

Still stuck? Contact support