Breadcrumbs in WordPress

Historically, blogs, and thus WordPress, have never had breadcrumbs. There's hardly any theme that has them built in, and though there were some breadcrumb plugins for WordPress, in my opinion, they sucked.

Breadcrumbs are a great utility, both for usability and SEO. They allow people and search engines to easily determine the structure of a domain. I've been telling clients to add breadcrumbs to their sites for as long as I can remember.

For the longest time up till now, I added the breadcrumbs on this blog directly in the theme. As you can imagine, that's not the easiest way of doing this, because if I wanted to change the look of my breadcrumbs, I had to edit 5 or more templates.

Plus, after my WordPress SEO post in which I told people to add breadcrumbs to their theme, and couldn't find an easy working plugin to link to, people have been bugging me to come up with a solution. Well, I've written that plugin!

The breadcrumbs you see on this site are created with my new Yoast Breadcrumbs plugin. It's pretty customizable, but I bet you, as users, will come up with more options than the ones it has now, if you do, let me know in the comments!

Quite a few people have helped me test these breadcrumbs in WordPress, you know who you are, thanks for your help!

Now, go off and download the breadcrumbs plugin!

Related posts

  1. Improved WordPress Breadcrumbs
  2. WordPress SEO - The beginner's guide
  3. The must read article about WordPress SEO
  4. WordPress Goodies
  5. WordPress subpages going supplemental: the fix

Want more WordPress tips?

You should subscribe to my WordPress Newsletter, as you'll get a whole lot more WordPress tips and tricks there! Also, subscribe to this blog right now with RSS, or daily or weekly emails!

39 Comments to “Breadcrumbs in WordPress”

  1. Skye

    Skye Aug 20th, 2008 at 10:54

    Hi Joost,

    Great plugin!

    Just wondering wherabouts to insert the code - I'm not a wordpress master really!
    I'm using this template: http://wptemplates.org/?p=143

    Thanks,
    Skye

  2. Frank

    Frank Aug 20th, 2008 at 10:58

    I think it is not realy important to use a plugin, this possible without a plugin, only a function in the theme: TUTORIAL

  3. Joost de Valk

    Joost de Valk Aug 20th, 2008 at 11:00 Delicious Digg StumbleUpon Twitter

    @Skye: I'll have a look and email you

    @Frank: true, but most people don't know how to do that, and the code in that tutorial lacks quite a few cases and options that this plugin offers.

  4. Frank

    Frank Aug 20th, 2008 at 11:03

    OK, i understand your couses.

  5. Avaz Ibragimov

    Avaz Ibragimov Aug 20th, 2008 at 11:10

    Hey,

    Where to insert that piece of code?

  6. Joost de Valk

    Joost de Valk Aug 20th, 2008 at 11:12 Delicious Digg StumbleUpon Twitter

    @Frank: :)
    @Avaz: where you want the breadcrumb to appear :) usually above your the_content() call.

  7. Avaz Ibragimov

    Avaz Ibragimov Aug 20th, 2008 at 11:18

    @Joost: I've tried to insert it into single.php and it gives out such error:
    Parse error: syntax error, unexpected '{' in /home/.tozar/avaz/uzblogger.com/wp-content/themes/default/single.php on line 2

    The same with the index.php. I use Default WordPress theme.

  8. Anders Saugstrup

    Anders Saugstrup Aug 20th, 2008 at 11:39

    Hi Joost

    Great idea for a useful plugin!

    I get the same error as Avaz mentiones though.

    Anders Saugstrup

  9. Lars Bachmann

    Lars Bachmann Aug 20th, 2008 at 11:51

    Hi Joost

    Great idea with a breadcrump plugin, but i also get the error that Avaz and Anders mention

  10. Joost de Valk

    Joost de Valk Aug 20th, 2008 at 11:52 Delicious Digg StumbleUpon Twitter

    Hey all, try the new code, (not the plugin, the insertion code) I missed a closing ) there.

  11. Anders Saugstrup

    Anders Saugstrup Aug 20th, 2008 at 12:04

    That worked better, thanks :-)

  12. Avaz Ibragimov

    Avaz Ibragimov Aug 20th, 2008 at 12:05

    @Joost, thanks!
    Now it's working like a charm.

    Another question, uhmm... when I tried to replace default separator to → it's not displayin the right arrow, instead it's outputing as a raw text, like: Home → Category → post

    What could the be problem?

  13. Joost de Valk

    Joost de Valk Aug 20th, 2008 at 12:07 Delicious Digg StumbleUpon Twitter

    Hmm Avaz, that's a bug, looking into what's causing that.

  14. Avaz Ibragimov

    Avaz Ibragimov Aug 20th, 2008 at 12:09

    oops, it seems your blog parsed the right arrow character. I'll omit ; character in the end to explain:

    when I tried to replace default separator to → it's not displayin the right arrow, instead it's outputing as a raw text, like: Home &rarr Category &rarr post

  15. Joost de Valk

    Joost de Valk Aug 20th, 2008 at 12:11 Delicious Digg StumbleUpon Twitter

    Yes one of the PHP functions I'm using to parse the input there apparently doesn't understand →

  16. john

    john Aug 20th, 2008 at 12:58

    Awesome plugin - thanks!

    It's working perfectly except for one issue I'm having - I'm using wordpress as a CMS, and my main index page breadcrumb just says "home" in stead of "home >> blog" (ie: front page >> main index).

  17. Joost de Valk

    Joost de Valk Aug 20th, 2008 at 13:01 Delicious Digg StumbleUpon Twitter

    @john: what's your site? I'd love to have a look and see if I can fix it :)

  18. john

  19. Tim

    Tim Aug 20th, 2008 at 13:30

    Joost,

    This is great. Thank you for making this.

    But I'm also someone who needs a bit more detail on where to place the code.

    I've got it working on my single post page, but I've had problems with my archive template. None of my experiments so far have worked.

    Tim

  20. Rarst

    Rarst Aug 20th, 2008 at 15:00

    I had breadcrumbs in my theme (bundled plugin) but I soon removed it. I actually like breadcrumbs on sites with plenty of stuff and complex navigation but on wordpress everything is too close and only one click away. It's not much use to know that you are reading post and that you came from home page.

  21. archshrk

    archshrk Aug 20th, 2008 at 16:19

    Works like a charm but I agree with Rarst, most blogs don't need this. Of course, those that do - will love it. I have a blog or two that may benefit from it, so keep up the great work.

  22. Christian Vuong

    Christian Vuong Aug 20th, 2008 at 16:59

    I'm a big fan of the breadcrumbs navigation. Thank you for creating this plug-in Joost!

  23. Nicolas

    Nicolas Aug 20th, 2008 at 18:01

    Thanks Joost - working really nice :)
    If I could suggest one feature... You give the option to return breadcrumb as a string (containing HTML). Why not returning an array "display" => "url"? For expert, that would give more flexbility to customize the breadcrumb.
    I.e: on my site, I "hacked" wordpress to manage a gallery of photos. And automatic breadcrumb is not working great :(
    http://localhost/photo/3035/
    So array would give me this flexibility.
    Thanks,
    Nicolas

  24. Ryan Hartman

    Ryan Hartman Aug 20th, 2008 at 19:11

    Wondering if there's a way to remove the post/page title from the end of the breadcrumb display? (looks a little redundant on our site.)

    Otherwise, is working great. Thanks much for the nifty plugin!

  25. Damon Gudaitis

    Damon Gudaitis Aug 20th, 2008 at 21:42

    Hi,

    I think this plugin would be even better if it supported category parents. The link I provided for my (still under construction) site illustrates the problem. If you look at the URL, it reads domain/category/subcategory/post (I used permalink custom structure with /%category%/%postname%.html to format the URL). The plugin just goes home/subcategory/post.

    I tried to get this to work myself, but I'm not much of a programmer. I'm guessing the get_category_parents function might do the trick.

  26. Joost de Valk

    Joost de Valk Aug 21st, 2008 at 07:56 Delicious Digg StumbleUpon Twitter

    @Nicolas: will think about it :)

    @Damon: you're absolutely right! going to dive in to that!

  27. Online saving

    Online saving Aug 21st, 2008 at 14:45

    Hi Joost

    Great idea for a useful plugin!

    For some reason, I stillI get the same error as mentioned above.

  28. Mark

    Mark Aug 21st, 2008 at 17:26

    I've been following your Wordpress SEO page closely and lost a lot of hair implementing sub par breadcrumb plugins. Thanks for building this i'll try yours. Don't forget to update your article! ;)

  29. Justin Palmer

    Justin Palmer Aug 21st, 2008 at 22:07

    Joost,

    Great idea, I will be installing shortly. Just curious, how does it work if you put a post in multiple wordpress categories?

  30. Gab Goldenberg

    Gab Goldenberg Aug 22nd, 2008 at 06:07

    Heh, remember reading this tip in the SEO Book way back. Had 'em custom coded into my theme about a year ago, n glad I did. This is gonna be wonderful for other themes though :D.

  31. Joost de Valk

    Joost de Valk Aug 22nd, 2008 at 08:20 Delicious Digg StumbleUpon Twitter

    @Mark: good call, will do that.
    @Justin: it will pick one :)
    @Gab: glad you like it :)

  32. Bertrand

    Bertrand Aug 23rd, 2008 at 02:52

    Very useful plugin. Thx !

    Too bad that when a post is in two category, only the first one appears. Perhaps you could add that, as an option, no ?

  33. Boris Mahovac - Your Ezine Coach

  34. Joost de Valk

    Joost de Valk Aug 24th, 2008 at 09:08 Delicious Digg StumbleUpon Twitter

    @Bertrand: no that's quite impossible to do nicely.

    @Boris: I'll check it out!

  35. leland

    leland Sep 6th, 2008 at 12:24

    I really love the plugin. Good Job. Quick request/comment - is there any way I can exclude a category from breadcrumbs? I have a "featured" category that keeps showing up for several articles on my site in the breadcrumbs but I use it only for a slideshow on the homepage. I would like to exclude this category from the breadcrumbs as the article also belongs to other categories. Thank.

  36. Paul Marion

    Paul Marion Sep 11th, 2008 at 13:00

    Hey Joost, thx a million for the plugin. Installation was a breeze. Cheers.
    Paul

  37. Dan

    Dan Oct 8th, 2008 at 22:28

    Hey there -

    great article on SEO, got to the breadcrumb bit and although it works for first post all the other posts disappeared and I am getting this error message -

    Fatal error: Cannot redeclare bold_or_not() (previously declared in /home/~/plugins/yoast-breadcrumbs/yoast-breadcrumbs.php:122) in /home/~/plugins/yoast-breadcrumbs/yoast-breadcrumbs.php on line 122

    please help me! have a few posts with multiple categories and am unsure what you mean by "adapt page.php & single.php" I pasted the code in to those

    have removed code for now...

    thanks for your time and such an awesome seo guide :)

  38. Mark

    Mark Oct 30th, 2008 at 12:37

    Hi there Joost!

    Cracking plugin and great site, going to have a good read over ALL of it!

    One thing I have noticed about the plugin is on a 404 page the current title becomes the latest post.

    Have you noticed this? Is there an easy fix or setting that needs changing?

    Thanks for any help in advance!

    Mark

  39. Boris Mahovac - Email Marketing Coach

Leave a Reply

Joost de Valk a.k.a. Yoast Want an avatar too?
Go to gravatar.com and upload your preferred avatar.

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

3 Trackbacks and Pingbacks

  1. A Review of the SEO Friendly Thesis Wordpress Theme - Sugarrae
  2. Kevin Kirkpatrick - Making Money With SEO » Blog Archive Silos & Themes - SEO Site Structure - Kevin Kirkpatrick
  3. Breadcrumbs | Wizard's Blog
Directory Journal
SEO Book Tools
Free Google Traffic
SearchEngineWatch
Pepperjam
Hosting by:
Hosted by MediaTemple Grid Services