Skip to content
WP Visibility

Everyday SEO

Add a Visible Breadcrumb Trail

Place the [wpvis_breadcrumbs] shortcode where the trail should appear. It prints plain, accessible markup you style in your theme; the breadcrumb structured data prints either way.

Updated September 27, 2026

Docs

Put [wpvis_breadcrumbs] where you want the trail: in a Shortcode block, in a template part of a block theme, or through do_shortcode() in a classic theme. It prints a trail such as Home › Guides › Pruning Tomatoes with no styling of its own, so your theme decides how it looks.

Before you start

The Breadcrumbs module is on by default; check it under WP Visibility → Settings → Modules. There is no settings section for breadcrumbs and no breadcrumb block of WP Visibility’s own. WordPress core ships its own Breadcrumbs block; use one or the other, not both.

Place it

On one page: add a Shortcode block and type [wpvis_breadcrumbs]. WordPress’s Shortcode block instructions, checked September 27, 2026.

On every post, block theme: open Appearance → Editor, edit the single post template, add a Shortcode block above the title, and save the template.

On every post, classic theme: in a child theme’s template, where the trail should print:

<?php echo do_shortcode( '[wpvis_breadcrumbs]' ); ?>

To change the separator, pass it: [wpvis_breadcrumbs separator="/"]. The default is your Title separator from the General section.

What it prints

<nav class="wpvis-breadcrumbs" aria-label="Breadcrumbs">
  <ol>
    <li><a href="https://your-site.com/">Home</a></li>
    <li><span class="wpvis-breadcrumbs__sep" aria-hidden="true">–</span> <a href="https://your-site.com/category/garden/">Garden</a></li>
    <li><span class="wpvis-breadcrumbs__sep" aria-hidden="true">–</span> <span aria-current="page">Pruning Tomatoes</span></li>
  </ol>
</nav>

The separators are hidden from screen readers, and the current page is marked with aria-current. No CSS or JavaScript ships with it. A minimal style to start from:

.wpvis-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .4em; list-style: none; padding: 0; margin: 0; }

How the trail is built

Page Trail
Homepage Home
A post Home, then its first category and that category’s parents, then the post
A page Home, then its parent pages, then the page
A custom post type entry Home, the post type archive when the type has one, its first term, the entry
A category or tag Home, parent terms, the term
Author, date, search, 404 Home, then the author name, the date, “Search results for …”, or “Page not found”

A post in several categories uses the first one WordPress returns. There is no primary category picker. “Home” is fixed text; developers can change any item with the wpvis_breadcrumbs filter.

The structured data

The Schema module prints a BreadcrumbList built from the same trail on every page except search results and the 404, whether or not you place the shortcode, and even with the Breadcrumbs module off. The shortcode only adds the visible trail. To check it, find BreadcrumbList in the page source or run the URL through the Rich Results Test.

Behavior checked against WP Visibility 2.10.3.