I am using Yoasts Wordpress SEO and I have set up my breadcrumbs. The problem is that my page setup is s follows.

/blog - On this page I query the posts and display them. The posts themselves have nothing before them in the URL.

The breadcrumb shows as follows.

Home / Category / Page Title

I want it to show like this.

Home/ Blog / Category / Page Title

Is this possible?

1 Answer 1


Here's the general principle of what you need to do:

  1. Hook into the wpseo_breadcrumb_links or wp_seo_get_bc_ancestors API filters.
  2. Add your Blog into the WordPress SEO Breadcrumb $links array, using array_splice.

Place this in your theme's functions.php:

 * Conditionally Override Yoast SEO Breadcrumb Trail
 * http://plugins.svn.wordpress.org/wordpress-seo/trunk/frontend/class-breadcrumbs.php
 * -----------------------------------------------------------------------------------

add_filter( 'wpseo_breadcrumb_links', 'wpse_100012_override_yoast_breadcrumb_trail' );

function wpse_100012_override_yoast_breadcrumb_trail( $links ) {
    global $post;

    if ( is_home() || is_singular( 'post' ) || is_archive() ) {
        $breadcrumb[] = array(
            'url' => get_permalink( get_option( 'page_for_posts' ) ),
            'text' => 'Blog',

        array_splice( $links, 1, -2, $breadcrumb );

    return $links;

Note: You may need to update the code specific to your site or needs, but the general idea stays the same.

  • This worked perfectly, after changing my conditionals, url and text values to suit my needs. Thanks.
    – crdunst
    Commented Oct 1, 2014 at 10:24
  • Weird. This code replaced 'Category' with 'Blog' instead of adding it before. Commented Nov 4, 2017 at 13:29
  • FIXED: in my case it needed "2, -3" instead of "1, -2" not sure why but it works that way. Commented Nov 4, 2017 at 13:31
  • @rjb thanks, very helpful code! Do you know how to add a page to the trail instead of removing one?
    – Cray
    Commented Feb 29, 2020 at 16:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.