A few months ago I was looking for a Sitemap provider for CommunityServer, given that more and more search engines are using this technology to obtain additional information from indexed sites.
I found
Dan Bartel's Sitemap provider which is explained on
Community Server's forum, and it was incorporated in Community Server 2007 release, or at least that's my understanding.
However it has some significant drawbacks at least for CS 2.0 which I was interested in:
- It was not customizable enough. My configuration has two different sites plugged in the same DB, and you could not exclude for example the gallery list for sitemap. Dan Bartel's version put everything it found in the DB in the sitemap index
- It worked only on English locale servers
- It used an older version of sitemap schema (0.84), instead of a more current version that is used by non-Google search (0.90)
- Last modification date wasn't working correctly for blog categories
- The name was pretty much hardcoded to GoogleSitemap.aspx
- It was listing incorrectly only 10 posts available per blog (by using Individual Blog Post count property)
- There are different binary versions depending on CS version and .NET Framework version
As a result I started to write my own Sitemap provider for Community Server which I'm sharing with the world. My version should solve all the above issues, however it doesn't support Google Ping feature from Dan Bartel's version, firstly because it cannot be implemented just as a ASPX and I didn't need it at all.
My version consists just from 2 different ASPX pages, which host the source code in them, so if you do not like any aspect of how the sitemap is generated you can tweak it to suit your needs.
In order to install it you just need to copy ASPX files in root of your installation and merge SiteUrls.merge.config file from archive with your SiteUrls.config, keeping in mind that if you don't want some particular types of posts in your index, you just do not put that in your SiteUrls.config.
For example if you don't want your galleries listed in your sitemap index, then you will remove <url name="GallerySiteMap"> entry.
This code was tested only with Community Server 2.0, and I might have introduced some dependency to this particular version, but I haven't got a 2.1 installation to test it against. However the modifications should be trivial to make it work against 2.1 version, or even a 2007 version, if you want.
Any comments welcomed on how this can be improved.
CS Sitemap by
Marius Constantin
is licensed under a
Creative Commons
Attribution Non-Commercial 3.0 License.
Permissions beyond the scope of this license may be available at
http://blogs.mconstantin.eu.org/cchrism/.