WPThumbs
Themes Plugins By purpose By industry Best-of lists Fix it guides
Free Plugin by Phi Phan v1.1.1

Breadcrumb Block

A simple breadcrumb trail block that supports JSON-LD structured data and is compatible with Woocommerce

Breadcrumb Block

The facts

Rating
5★ from 14
Active installs
3k+
Price
Free
Last updated
16 Aug 2026
Added
Oct 2022
Requires WP
5.9
Tested up to
WP 7.1
Requires PHP
7.0
Downloads
34,149

Our analysis

AI-assisted

Breadcrumb Block is a WordPress plugin designed to create a breadcrumb navigation trail for your site. It is lightweight, SEO-friendly, and compatible with WooCommerce. The plugin allows for customisation of the breadcrumb items and their appearance, making it suitable for various types of websites.

You can use it in the Page Editor, Site Editor, or template files. The plugin includes features for changing separators and modifying breadcrumb items, making it versatile for users who want to enhance their site's navigation.

Best for: This plugin is best for WordPress site owners looking to improve navigation with breadcrumb trails.

What it does well

  • SEO-friendly
  • Lightweight design
  • WooCommerce compatibility
  • Customisable breadcrumb items
  • Works in Page Editor and Site Editor

Where it falls short

  • Limited information on advanced features
  • No user documentation provided

Verdict

Breadcrumb Block offers a straightforward solution for adding breadcrumb navigation, though it may require some technical knowledge for customisation.

From the developer

Phi Phan's own description of Breadcrumb Block, lightly tidied.

This is a single-block plugin for the breadcrumb trail. It’s simple, lightweight, SEO-friendly, and WooCommerce compatibility. It also includes some simple separator icons. It works everywhere: Page Editor, Site Editor, and template files.

How to customize the breadcrumb

  1. How to change/remove an item?

    add_filter( 'breadcrumb_block_get_item', function ( $item_args, $context, $breadcrumbs_instance ) {
      // Ignore items without context.
      if ( ! $context || ! ( $context['object'] ?? false ) ) {
        return $item_args;
      }
    
      // Eg: remove a term.
      if ( 'term' === ( $context['type'] ?? '' ) && 'term-slug' === $context['object']->slug ) {
        return false;
      }
    
      // Eg: Change the title of a page.
      if ( 'page' === ( $context['type'] ?? '' ) && page_id_to_change === $context['object']->ID ) {
        $item_args[0] = 'Make it shorter';
      }
    
      return $item_args;
    }, 10, 3 );
    

    $item_args is a 3-item array: [$item_label, $item_link, $item_attrs]
    $context is an associative array: ['type' => 'item type', 'object' => 'item object']. type can be one of the following values: front_page, home, shop, page, post, single, term, taxonomy, post_type_archive, search, 404, paged, author, date_year, date_month, date_day, attachment.

  2. How to change the markup of the block?

    add_filter( 'breadcrumb_block_get_breadcrumb_trail', function ( $markup, $args, $breadcrumbs_instance ) {
      return $markup;
    }, 10, 3 );
    
  3. How to add or remove the items from the breadcrumb trail?

    add_filter( 'breadcrumb_block_get_items', function ( $items, $breadcrumbs_instance ) {
      return $items;
    }, 10, 2 );
    
  4. How to use a custom separator for the breadcrumb trail?

    add_filter( 'breadcrumb_block_get_args', function ( $args ) {
      // For example, change separator.
      $args['separator'] = '<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="1em" height="1em" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M3.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L9.293 8 3.646 2.354a.5.5 0 0 1 0-.708z"/><path fill-rule="evenodd" d="M7.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L13.293 8 7.646 2.354a.5.5 0 0 1 0-.708z"/></svg>';
      return $args;
    } );
    

    The custom separator should be an inline SVG. To make sure it displays properly, it should have three attributes: width, height, and fill. The values of these attributes should be as follows: fill="currentColor" width="1em" height="1em".
    Using this hook, you can customize other attributes such as container, before, after, list_tag, item_tag, item_before, item_after, separator.

  5. How to prepend the blog page to all single posts?

    add_action( 'breadcrumb_block_single_prepend', function ( $post, $breadcrumbs_instance ) {
      if ( 'post' === $post->post_type ) {
        $blog_id = get_option( 'page_for_posts');
        if ( $blog_id ) {
          $breadcrumbs_instance->add_item( get_the_title( $blog_id ), get_permalink( $blog_id ) );
        }
      }
    }, 10, 2 );
    

If this plugin is useful for you, please do a quick review and rate it on WordPress.org to help us spread the word. I would very much appreciate it.

Please check out my other plugins if you’re interested:

  • Content Blocks Builder – Build custom layouts and blocks visually in the Block Editor without needing a code editor, using only core blocks and native Gutenberg features.
  • Meta Field Block – A single block to display custom fields in the Block Editor without coding. It supports ACF, MetaBox, WooCommerce, meta, rest field, shortcode and more. Works everywhere: in the Site Editor (FSE), the Block Editor, inside Query Loop, WooCommerce Product Collection, Term Query blocks, and even in template files.
  • SVG Block – A block to display SVG images as blocks. Useful for images, icons, dividers, and buttons. It allows you to upload SVG images and load them into the icon library.
  • Icon separator – A tiny block just like the core/separator block but with the ability to add an icon.
  • Block Enhancements – Adds practical features to blocks like icons, box shadows, transforms, etc.
  • Counting Number Block – A block to display numbers with a counting effect
  • Better YouTube Embed Block – A block to solve the performance issue with embedded YouTube videos. It can also embed multiple videos and playlists.

The plugin is developed using @wordpress/create-block.

Read the full description on the official page →

Tagged as

Alternatives

Other plugins for site navigation.

ElementsKit Elementor Addons

Join millions who empower their websites with ElementsKit Elementor Addons. Get templates, &amp; 100+ widgets...

Free 1M+ installs 4.9★ (2,036)
Premium Addons for Elementor

Elementor Carousel, Mega Menu, Posts List/Slider, WooCommerce Widgets, Display Conditions, AI Abilities, Prema...

Free 600k+ installs 4.9★ (1,677)
Royal Addons for Elementor

Elementor templates, Header footer builder, Elementor Post Grid, Woocommerce Grid builder, Slider, Forms, Gall...

Free 600k+ installs 4.8★ (611)
Breadcrumb NavXT

Adds breadcrumb navigation showing the visitor&#039;s path to their current location.

Free 800k+ installs 4.6★ (132)
Menu Icons by Themeisle

Add icons to WordPress navigation menus easily — pick from Font Awesome, Dashicons, image icons &amp; more. St...

Free 100k+ installs 4.9★ (848)
My Sticky Bar

Create a welcome notification bar for your website. Also, My Sticky Bar plugin can make your menu or header st...

Free 100k+ installs 4.9★ (1,196)