SEO Siloing WordPress Plugin

This post introduces the SEO Siloing WordPress plugin, which is used to create an SEO Siloing site structure for your blog.

Prerequisites

This plugin should work with WordPress 2.0 and up, including WordPress 2.3 with its major overhaul of the category structure. It may also work with older versions, but I haven't tried it.

You would normally only use this plugin if you have defined the permalink structure for your blog to include the category name as described in Easy SEO Siloing for WordPress Users. In other words, all your postings use the form /%category%/%postname%/ for their permalinks. This isn't a requirement, though, but it's a recommendation. You can actually use the plugin on any page or post, but if you use it on a non-page you have to explicitly give it a category to display.

Installation

Like all WordPress plugins, this one's very easy to install. Download the seosiloing-1.2.zip file, extract the seosiloing.php file and place it in your blog's wp-content/plugins folder. Then open the WordPress administration console and activate the plugin.

Using the SEO Siloing Plugin

The plugin's primary purpose (so far) is to create category landing pages, which are static pages with links to all the postings in a given category. You can, however, use it to create pages with lists of posts in any category. You can even use the plugin in posts, but you'll have to explicitly specify a category name/ID.

For each category in your blog, create a static page (not a post) whose “post slug” (the name of the file) exactly matches the “category slug” of the category. By default, the category slug is the name of the category converted to all lowercase and with hyphens replacing spaces. For example, the “List Building” category's slug is “list-building”. You can view a category's slug from the Categories page under the Manage option of the admin console.

Place the following HTML comment somewhere in the body of the page:

<!-- seosiloing-category-posts -->

Save the page. When accessed, the page will create a list of posts from the matching category.

You can also force posts from a specific category to be displayed by using this syntax:

<!-- seosiloing-category-posts#name -->

Replace name with the name or the ID of the category you want displayed. For example:

<!-- seosiloing-category-posts#general -->

This syntax lets you use the plugin within posts.

If the category cannot be found, a customizable error message is displayed. A customizable message is also displayed if no posts exist in the category.

Note: The normal category pages are still available via the usual /category/name/ syntax and those pages are untouched by this plugin. The point of the plugin is to create landing pages within the same URL hierarchy as the posts themselves.

Customizing the Output

Under the Options menu in the administration console you'll see a new entry for the SEO Siloing plugin that lets you set various options, including what to sort the posts by (title is the default).

Feel free to report any bugs/enhancements to me.

Sponsored Link: Learn more about the ins and outs of
AdSense by reading Uncommon AdSense, my latest book about AdSense.

Eric Giguere is the author of Uncommon AdSense and the award-nominated (that just means it lost!) blog Make Easy Money with Google and AdSense.

Tags

Comments

60 Responses to “SEO Siloing WordPress Plugin”

  1. Wordpress SEO - Siloing vs Massive Ball Linking With Tags | Andy Beard - Niche Marketing on June 14th, 2007 1:15 pm
  2. The Post-Installation WordPress Routine : Make Easy Money With Google And AdSense on June 20th, 2007 9:46 am

    [...] SEO Siloing to build lists of posts by category [...]

  3. Wordpress SEO - Siloing vs Massive Ball Linking With Tags | Search Engine Optimization India on June 21st, 2007 6:48 am
  4. Unggul_USA on July 4th, 2007 9:30 pm

    I use this plugin and it works well, i made a litte modification, cause i need to display a list of post title in static page and in bottom of each post, per category. So i modified seosiloing-category-posts function by mark the is_page(), to make the list in bottom of each post.
    I still hope that i could display the list of post each category per user/author.
    Is there any possibilities to do that?
    Thanks a lots.

  5. Eric Giguere on July 5th, 2007 9:27 am

    If I understand you correctly, you want to be able to subdivide the list of posts in each category by author as well?

  6. Unggul_USA on July 5th, 2007 10:14 am

    I have a static page for each author, i need to display the list of posts for each of them.
    I hope you have function like this :
    or

    Thanks.

  7. Unggul_USA on July 5th, 2007 10:17 am

    Ups,

    i mean <!– seosiloing-category-posts#authos_name –> or
    i mean <!– seosiloing-category-posts#authos_id –>

  8. Wordpress SEO Masterclass For Competitive Niches | Andy Beard - Niche Marketing on August 13th, 2007 8:45 am

    [...] This should be mixed with custom query string which would allow you to have a different number of posts on your front page compared to various archive pages. Ideally when siloing you would want to list all pages under a particular category or tag page. The easier alternative is the siloing plugin. [...]

  9. How To Get 4,000 Links To Your Blog Post | Link Bait Me on September 25th, 2007 2:55 pm

    [...] Memwg The strongest post with 152 backlinks is SEO Siloing WordPress Plugin [...]

  10. Fun with Words » Wordpress SEO and a Bulletproof Contact us Plugin on October 13th, 2007 2:36 pm

    [...] of the video some of the other plugins I use. One in particular that I have just started to use is SEO Silo, which is actually part of the course I am taking…building websites that are themed in a silo [...]

  11. MacBros on November 10th, 2007 5:05 pm

    This plug-in no longer works with Wordpress 2.3.1.
    Any future updates to this plug-in expected?

  12. Eric Giguere on November 10th, 2007 5:09 pm

    Hmm, I’ll take a look and see what’s changed. I’m sure I can get it to work again…

  13. MacBros on November 10th, 2007 5:10 pm

    OK Thanks.

  14. WordPress Plugins you shouldn't be with out. | Tenacious Creations on December 30th, 2007 9:20 pm

    [...] SEO Siloing This plug in basically optimizes your site for a search engine optimization technique called Siloing. To explain SEO siloing would take a post in itself. [...]

  15. Talksina on January 24th, 2008 10:19 am

    Hi, the error on SeoSiloing and wp 2.3.x is that table wp_categories has been eliminated from the wp code.
    Unfortunately I am not so expert on WordPress and PHP coding, so I cannot fix it.
    Please let me know if there are updates
    thanks!
    PS I added a feature on the plugin I had on my site, that is, write next to the post title if there are comments
    if the post has no comments, the title will be for example:
    “new ringtones have been uploaded”
    if there is one, or more comments, it says:
    “new ringtones have been uploaded (x comments)” where “x” is the number of comments for the article.
    let me know about the categories!

  16. Prashant on January 27th, 2008 11:39 pm

    I have just recently upgraded to the latest wordpress version and found that the siloing plugin is not working. Can anyone direct me how to upgrade the plugin for the latest version of the wordpress.

    If the plugin cannot be upgraded it would be gr8 to know the version that i can downgrade to make the plugin work.

    Are there any other alternative silo plugin for Wordpress 2.3.2

  17. Eric Giguere on January 28th, 2008 5:52 am

    I’m going to update the plugin this week, so just hang on… they changed the database structure in 2.3, I just need to figure out how to support older versions as well.

  18. Prashant on January 28th, 2008 8:04 am

    WOW… This is great news. Am looking forward to your update. Thanks a lot.

  19. Rob on January 28th, 2008 9:57 am

    Great news indeed. Unfortunately I have removed this plugin from the upgraded version last week. I will re-install if we can get the update this week.

    Regards,

    R

  20. Eric Giguere on January 28th, 2008 11:02 am

    Aargh, why did the wise minds at WP not leave the wp_categories table in as a read-only view so as to not break half the plugins in existence? Stupid, stupid, stupid… this will take a bit more work than I thought, otherwise my plugin won’t work with older versions. But that’s my problem, isn’t it…?

    Eric

  21. Prashant on January 29th, 2008 10:45 am

    Eric…. i dont want to pressurize you… but is there any quick fix to make the plugin work for 2.3.1 as i am worried about google bots crawling through my site and find the landing pages missing. I am sorry if am asking too much…..

  22. Eric Giguere on January 29th, 2008 12:32 pm

    Prashant, I just sent you an updated plugin that should work. If it’s good, I’ll release it to everyone once I get a version of it that works in all 2.x versions of WordPress.

  23. Talksina on February 1st, 2008 10:11 am

    Hi, let me give you a suggestion: why don’t you keep 1.1 for 2.x (older than 2.3) and the updated one for 2.3.x? I saw many plugin sites recommending “keep older version if you are running older platforms”… PS if you can, send the updated version to me too. thanks a lot.

  24. Eric Giguere on February 1st, 2008 10:48 am

    No need. Version 1.2 of the plugin, which I released a couple of days ago, supports all WP 2.x versions, including 2.3. It’s simpler to maintain one version. I’ve updated the post to reflect this information, as well as the download link.

  25. Prashant on February 1st, 2008 11:05 pm

    Eric thanks a lot…. The new plugin is working perfectly… and to cnfirm your last comment its backward compatible for other WP 2.x versions….. Keep up the good work…

  26. Talksina on February 6th, 2008 6:35 am

    Hi, I updated SeoSiloing and it really seems to work.
    I’d like to share the enhancement I made, to display the number of comments that have been left for a post, next to the title.
    under the line:
    foreach( $posts as $post ) :
    this line:
    $t_out .= ‘‘ .
    $post->post_title . ‘
    ‘;
    must be replaced with this if…else implementation:
    if($post->comment_count == ‘0′) {
    $t_out .= ‘‘ .
    $post->post_title . ‘
    ‘;
    } else {
    $t_out .= ‘‘ .
    $post->post_title . ‘ (‘ . $post->comment_count . ‘ comments)
    ‘; }
    This instruction, just tells the plug-in to behave as Eric has written originally, if on the post there is no comment.
    Otherwise, if the comment count is bigger than 0, it shows the title like this:
    Post title (1 comments)
    post title (2 comments)
    Sorry for the formatting of the code, I am totally blind so I left less spaces as I could, to check better with my Braille display if the code was correct!
    I did this enhancement because I need something like this, for accessibility reasons. That is:
    The posts appear as a list, a normal HTML unordered list. So, it’s very very easy for my assistive technology to reach them; pressing the l key (l for list) the screen reader jumps from a list to another, till I find the list of posts. Then, with the “i” key (i for item) I jump from a list item, in this case post title, to another, so my assistive technology just reads the title and then immediately says if it has had some responses!
    well, as the site is mine, it’s my blog, I really wish to know as soon as possible if others have commented!
    Otherwise, without this, with the standard template I should jump, using the tab key, from a post to another, if there are tags too, and then read …”0 comments”!
    Thanks to seo-siloing I can save time! :)
    If you want, Eric, you can implement the enhancement, I could upload it somewhere in txt or zip format so other people can get it!
    I am not so skilled in PHP, but of course I can get what I need :)
    sorry if my site (clicking on my nickname) is Italian only…it would be very difficult to translate and to find the same ringtones and jingles in foreign languages too
    so I have just decided to leave it in my mother language
    thanks for help
    PS: could I suggest it as a “recommended plugin”, with or without enhancement, to other blind wordpress users?

  27. Talksina on February 6th, 2008 6:39 am

    oh my god…the a href code has been coded in HTML! Eric, if you can, edit the response correctly…
    I just have published it in txt format it’s here, if people need the enhancement
    http://www.audiomontaggi.net/seosiloing.txt

  28. Interesting websites for SEO, Web Marketing and everday work from Sante - February 19th on February 19th, 2008 7:30 pm

    [...] SEO Siloing WordPress Plugin – The plugin’s primary purpose (so far) is to create category landing pages, which are static pages with links to all the postings in a given category. You can, however, use it to create pages with lists of posts in any category. You can even use the plugin [...]

  29. Tom on February 21st, 2008 11:18 am

    Nice wordpress plugin, i like it!

  30. Dave Starr --- ROI Guy on March 2nd, 2008 3:28 am

    Someday I hope to contribute to a discussion like this based on my skills and knowledge … but for today a reminder of an easy to make mistake is all I cna offer. I saw the announcement of the upgraded plugin a couple weks ago and immediately downloaded it into the folder where the original version has bene unpacked.

    Today I finally got ’round to implementingit on one site. Hmm … wouldn’t work … couldn’t find any posts to display … try this, try that, guess I’ll have to put in a clal to eric for landholding … avoided a public display of dumbness however, just.

    Can anyone guess what I did wrong? Yep. Never deleted the old version code and unpacked and uploaded the v 1.2 code. Gosh, it’s amazing how well it works when you use the right .php code. Thanks, Eric … and if anyone is convinced the plugin really doesn’t work … delete everything and start from scratch … a newer version .zip file won’t do anything if you don’t unpack it an use the updated code. Duh.

  31. New AdSense-Friendly Privacy Policy Plugin For WordPress on April 1st, 2008 2:19 pm

    [...] Don’t forget to check out my SEO Siloing plugin as [...]

  32. SR on April 30th, 2008 5:14 am

    Hi Eric,

    Is there any way of showing the post excerpt under each post link?

    This is a Great plugin by the way.

    Kind Regards
    SR

  33. Rob on June 24th, 2008 11:38 pm

    Can somebody explain how this plugin is any different that a standard WordPress category page? If I understand what the plugin does, it outputs all the posts of a particular category to a page. Isn’t that what a category page does? Thanks.

  34. wordy on July 13th, 2008 5:27 pm

    Looks like a great plugin.I was wondering if it works with wordpress 2.5.1 because i can’t get it to work on my site. The html comments don’t work.Thank you

  35. Eric Giguere on July 15th, 2008 9:54 am

    Hmm… I haven’t tried it with WP 2.5.1 yet. I’ll try to do that in the next few days and if there’s a problem I’ll be sure to fix it.

  36. Adam on September 25th, 2008 5:50 am

    Hi,

    I’ve got categories within categories, i.e. child categories and parent categories… I want the parent category static page to point to static page of each child category underneath it…

    And then to have that child category show the posts within it (as I understand this plugin does).

    So question: How do i get a static page setup with just the links to child categories and not posts?

  37. DivaGeek on September 27th, 2008 10:04 am

    This plugin still works with the new version of Wordpress but you have to enter the catagory into the code you enter into the post

    There are no slugs in the new wordpress or at least that I could find..

  38. DivaGeek on September 27th, 2008 10:04 am

    You have to enter…

    seosiloing-category-posts#general

  39. Tom on October 1st, 2008 11:53 pm

    Hi,

    I would also like to know if there’s a way to show the excerpts instead of just the titles.

    Great Plugin, love the additional control.

  40. Mohammed on October 30th, 2008 8:03 am

    Hi Eric,

    Thanks for the great plug-in. Can SEO Siloing do the following:

    I want to structure my internal links as follow: maindomain.com/CategoryNameAfterKeyword/RelatedPost1
    maindomain.com/CategoryNameAfterKeyword/RelatedPost2
    Etc…

    But I want maindomain.com/CategoryNameAfterKeyword/ to have rich content because it is the page that I will try to rank for that keyword. Furthermore, it is the page that I feel a visitor should land on in order to be able to navigate the website efficiently.

    I don’t need to have a category posts list in this page. I’ll manually add links (as my content seldom changes).

    Can I accomplish my goal with this plug-in? Thanks a lot,

  41. Travis on December 10th, 2008 5:00 pm

    Hey, I’m using your plugin and setup was really easy.

    I’m trying to have each post display an accompanying thumbnail. I have pictures for each post already if that helps.

    Thanks!

  42. Travis on December 11th, 2008 1:53 pm

    I don’t know why you deleted my comment, especially when the first 3 lines were praise for your plugin lol.

    ANYWAY I need my listings to show thumbnails. Each post has a picture, and I intend to display them in a table with appropriate thumbs above each.

    Is this possible using your plugin or should I stop wasting my time and go elsewhere?

  43. Sohail on January 31st, 2009 1:45 am

    Great plugin and let me try it as well :) thanks for sharing with us

  44. Christoph on March 20th, 2009 9:47 am

    Hi!

    This is a really great plugin. And I’d like to suggest two improvements:

    1.) I modified the signature of the function seosiloing_category_posts so that it now also allows to optionally pass the number of posts that shall be displayed:

    function seosiloing_category_posts( $cat='', $numPosts = 999 )

    And of course the 999 in the $opts for get_posts need to be replaced too.

    2.) I simply added a text widget containing some php code to my sidebar. I would love to see that as a Seo Siloing widget. It displays a list of posts of that category (on category pages or post pages where it takes the first assigned category) or a list of available categories everything else.


    cat_name, 7);
    } else {
    // else list available categories
    wp_list_categories('orderby=count&order=DESC&show_count=0&hierarchical=1&title_li=&depth=1&exclude=');
    }
    } else {
    // else list available categories
    wp_list_categories('orderby=count&order=DESC&show_count=0&hierarchical=1&title_li=&depth=1&exclude=');
    }
    }
    ?>

    It would be great if you could integrate that functionaliy! Thanks.

    Cheers,
    Christoph

  45. Christoph on March 20th, 2009 9:49 am

    hmmm. something went wrong with the piece of code inserted above. I’ll try it again…


    // get (plain) category id from slug
    $cid = getCatId($_SERVER["REQUEST_URI"]);

    if ($cid != 0) {
    // if found display seo siloing
    echo seosiloing_category_posts($_SERVER["REQUEST_URI"], 7);
    } else {
    if (is_single()) {
    // for posts get the first assigned category
    $categories = get_the_category();
    if ($categories != null) {
    // ... and display seo siloing
    echo seosiloing_category_posts($categories[0]->cat_name, 7);
    } else {
    // else list available categories
    wp_list_categories('orderby=count&order=DESC&show_count=0&hierarchical=1&title_li=&depth=1&exclude=');
    }
    } else {
    // else list available categories
    wp_list_categories('orderby=count&order=DESC&show_count=0&hierarchical=1&title_li=&depth=1&exclude=');
    }
    }

  46. Electronic Parts on April 18th, 2009 1:22 pm

    I use this plugin and it works well. you have enter the category into the code you enter into the post. any way it’s Nice wordpress plugin, i like it!

  47. Damian Smiles on June 6th, 2009 9:40 am

    I got to this site while looking for imfo to improve my Internet marketing skills and I’m glad that I found it. You are providing good quality all-round info that will be very usefull to anyone in this field. What does it feel like to be slapped by Google? Ouch!

  48. ptvguy on June 9th, 2009 1:39 am

    For those that have asked here about adding excerpts to the plugin, I modified the seosiloing.php file as below. The code to replace is the “foreach” loop located at line 301 in version 1.2.


    foreach( $posts as $post ) :
    $t_out .= '' . $post->post_title . '' . $post->post_excerpt . '';

    endforeach;

    I’ve tried everything I can think of to get a thumbnail image in there as well, but I haven’t found a way to identify the post ID since this exists outside the WP loop. I’d love to here from anyone who’s figured this out.

  49. ptvguy on June 9th, 2009 1:44 am

    Let me try posting that code again:


    foreach( $posts as $post ) :
    $t_out .= '<li><h3><a href="' . get_permalink( $post ) . '">' . $post->post_title . '</a></h3>' . $post->post_excerpt . '</li>';

    endforeach;

  50. Seo blogger on June 17th, 2009 8:43 am

    Hi Eric!

    Do you still support the siloing plugin, as your last post in this thread is dated by July 15th?

    Does this plugin work for WP2.7?
    I would like to install it, but want to makes sure first it will work. Can you answer me please – here or via email?

    Thanks,
    Anton

  51. Eric Giguere on June 18th, 2009 12:10 am

    Anton, yes, it works in WP 2.7 — it’s in use on this site of mine for example which is 2.7.

  52. ptvguy on June 19th, 2009 4:18 pm

    In case anyone’s wondering, I have it running just fine on one of my sites under WP 2.8.

  53. Seo blogger on June 19th, 2009 7:30 pm

    Thank you, Eric!
    I will install it then.
    Kind regards,
    Anton

  54. Sammy on June 30th, 2009 6:43 am

    nice plugins !!!!!!
    I already install it in my Blog and work well

  55. Video Maker on July 8th, 2009 6:56 am

    Hi Eric, thanks for the plugin, I used it on my Video site. That was exactly what I was looking for. Amazing: After two years it’s still a relevant SEO technique.

  56. jimmy bunardi on July 9th, 2009 10:46 pm

    i try it to my wordpress site,
    is acquire a few deep links pointing to each of the article pages.
    this kinda make me to set it up again all my page, because
    these deep links should have keyword(s) in the anchor text, for which the category, subcategory and the post are being optimised.

  57. Will on August 30th, 2009 11:20 pm

    How do I make this work for my pages instead of posts??

  58. Seo blogger on October 5th, 2009 5:43 pm

    I’ve isntalled th plugin, but I found it doesn’t provide siloing in exact sense of the term.

    Siloing, be definition, is structuring website in such a way that Categories link to posts and posts link to each other within that SAME category and NOT to any posts in other categories.

    Correct me if I am wrong, but as far as I can see, your plugin only does HALF of the job, namely – it links categories to post pages, but does not interlink posts within the same category with each other – isn’t that right?

    Thanks,
    Anton

  59. Eric Giguere on October 7th, 2009 1:16 pm

    Correct, it just sets up the category linking. Up to you to do the interlinking.

  60. Wedding DJ in San Diego on February 23rd, 2010 8:16 pm

    Of all category organization plugins, I can honestly say that yours has held up through the WP updates that seem to break many others. As of yet, I haven’t updated my WP but when I do I’m sure your plugin will be one of the only ones that still work! Good job.

Leave a Reply




Comments will be closed on February 23, 2011.

Subscribe without commenting