iFinity Blogs 

iFinity Google Sitemaps Version 2.0 Released on DotNetNuke Forge

by Bruce Chapman on Friday, September 14, 2012 3:02 PM

The original ‘Google Sitemap Providers’ project was one of my first that was published for download.  The original code goes back to 2006, which makes it very old in DotNetNuke terms.

In the last little while it has been left a little unloved and non-updated, which was for a couple of reasons, principally because I wanted to re-engineer some of the way it worked based on the tiny bit of extra DotNetNuke knowledge I have accumulated in the 6 years since starting it.

So, as part of my ongoing effort of moving my open-source contributions into the DotNetNuke Forge and Codeplex, I have created a new version of this module.   It’s been popular too, with over 6,000 downloads since I originally published it in 2006.  Sure, against the downloads from DotNetNuke in that time which number over 7 million, it’s a pretty small hit rate, but I’ve always been happy with the project as a contribution.

What’s New in 2.0

The first thing for the project has been a total rename.  It will no longer be known as the ‘iFinity Google Sitemap Provider’ – it’s now the ‘DotNetNuke Search Engine Sitemap Provider’.  Why the change in name?  A couple of reasons :

  • Google is no longer the sole owner and user of the Sitemaps protocol – all major search engines have adopted it
  • The new version is no longer backwards compatible with the old version

No longer backwards compatible – what?!

Yes, one of the niggling problems with the project was that it wasn’t integrated into DotNetNuke as a proper ‘provider’.  This has been one of the things I have wanted to fix for a long time.  The module also had a large number of deprecated methods I wanted to get rid of, and a few other architecture changes that needed to happen.  As I was going to comprehensively break the mould, I needed to give it a new name so that parallel installation was possible (but not necessarily desirable).   I also needed to fix a couple of providers that had gradually been broken by new module versions as they came out, so it all started looking like a pile of work.  But it was finally time to get it done.

So the module gets a new name, but it’s the same underlying concept.  Any custom providers built to work with the old version can be quickly re-compiled to work with the 2.0 version.

Other new features include:

  • Now installable via the DotNetNuke Extensions installer.   Back in 4.x, the thought of being able to install a provider via the installer was a mere pipe-dream.  Well, that dream arrived a long time ago in DNN 5, so it was time to make the project a properly installable option, rather than a manual copy and paste installation
  • New minimum DotNetNuke version of 5.2 – again, to take advantage of the new installer capabilities, and to better use the native Sitemap options available in later versions
  • New minimum .NET version of 3.5
  • New providers available – Active Forums and Ventrian Property Agent providers are now available.  (thanks to Chad Nash of DataSprings for providing the Active Forums code, which helpfully provides a VB example to follow)

Getting the new Version

The Sitemap providers page on this site will shortly be retired – all downloads, project information, support and enhancement requests are now available either on the DotNetNuke Forge page, or the Codeplex project page.

The instructions on installing the version are here :  Base Search Engine Sitemap Provider for DotNetNuke Instructions

The downloads (install packages and source code) are here : iFinity Search Engine Sitemap Provider Downloads

Removal instructions for your iFinity Google Sitemap 1.x Providers are here : Removing the iFinity Google Sitemap Provider 1.x Versions

Once installed, the sitemap will be available as {domainname}/SearchEngineSitemap.aspx – like the sitemap for this site : http://www.ifinity.com.au/searchenginesitemap.aspx

Note that, because the old Blog and Forum providers were ‘broken’ with the new versions of these module, my new sitemap jumped my ‘submitted’ Urls from 218 to 2,496.  That should improve the visibility of the site somewhat.

Using the New Version

Using the new version is even easier than the old – once you’ve installed it, there’s nothing more to do if you’re happy with the default settings.  You can modify the settings if necessary, but for the most part you can just get on with things.

There’s a couple of places you should update the new sitemaps url :

- In the Google Webmasters console, Bing Webmaster tools and any other search engines you have a webmaster account with

- In your robots.txt (have multiple portals?  Check out my solution for multiple robots.txt files on multi-portal DotNetNuke installations)

You should also remove the old iFinity Google Sitemap Provider entries in the config file and old assemblies from your \bin directory, as you don’t need them anymore.  Note that while the two different versions will run alongside each other, I recommend removing the old versions.

Writing a new Provider for your Module

Writing a new provider is about the simplest project around – just above ‘Hello World’ (hmm, maybe a ‘hello world’ provider?).  Follow these instructions on how to write a sitemap provider and you’ll be all set in no time at all.

Blogs Parent Separator Crafty Code
Bruce Chapman

The craft of writing code. The outcomes from being crafty with code. Crafty Code is tales from the coding bench.

5 comment(s) so far...

Hi Bruce,<br /><br />I found a few small issues in the news articles providers. Where should I post the code update or can you give me access to update the news articles and property agent providers on codeplex?

Bruce Chapman 9/28/2012

@scott - I can gladly add you as a contributor on Codeplex - just send me an email. You can also post an issue with the code fix if you just have one in general.

Daniel Comp 11/2/2012

Thanks for the provider. I've installed and have a question.<br /><br />With the default DNN Google sitemap, we could exclude pages below any sitemap priority we set in the module. With the iFinity sitemap, I can't seem to exclude pages unless they are 'not shown'. The problem is, logged in members have pages that are 'shown' but we don't want them in the sitemap.<br /><br />Example:<br /><br /><a href="http://www.URL.com/MyProfile/MyMessages.aspx" rel="nofollow">www.URL.com/MyProfile/MyMessages.aspx</a><br />2012-11-02<br />daily<br />0.0<br />

Bruce Chapman 11/2/2012

@daniel there is an attribute called 'excludePages'. You supply a ; delimited list of pages by name. So excludePages="MyProfile;MyMessages" should exclude those pages for you.

Daniel Comp 11/3/2012

Ye, that works with the tabid as well, however many of the portals have 50+ pages for this each, and that becomes an admin challenge you can imagine. I've posted the same request to codeplex, and appreciate your thoughts.

Bruce Chapman
Hi, I'm Bruce Chapman, and this is my blog. You'll find lots of information here - my thoughts about business and the internet, technical information, things I'm working on and the odd strange post or two.
Connect with Bruce Chapman on Google+

Share this page
Get more!
Subscribe to the Mailing List
Email Address:
First Name:
Last Name:
You will be sent a confirmation upon subscription

Follow me on Twitter
Stack Exchange
profile for Bruce Chapman at Stack Overflow, Q&A for professional and enthusiast programmers
Klout Profile