I know this is not a new topic. It is not even a new topic for me. I have posted on defining what a sitemap.xml file is for, and on dynamic sitemap.xml files in C#. But my team is finally ready to start implementing this as part of our custom development platform for the external brand sites.
When one searches for dynamic sitemap.xml creators in Google, you get a plethora of sites back. Some are code, some are online based tools. Since we are looking to create our file dynamically from within the site on demand, that helps narrow down our search. I have found a small number of code sources we can use to start with.
There is still the HTTP Handler from my original post. This project, ASP.Net Google Sitemap Provider by Bruce Chapman, is available on CodeProject. You can also read about it in a blog post on his iFinity site. It still looks like the most flexible solution.
There is a great looking solution on the ASP.Net site by Bertrand Le Roy called Google Sitemaps for ASP.NET 2.0. It has been ported over into the ASP.Net Futures July 2007 package. This solution is an HTTP Handler that uses the Web.sitemap file to generate a sitemap.xml file on the fly.
Another interesting idea I found in my searches was some code that shows a site map when a user gets a 404 error. This solution is also implemented as an HTTP Handler, but is only for 404 Page Not Found server errors. This code is also available on CodeProject in an article called Generate a Google Site Map Using the HTTP 404 Handler.
Here are some other sites of note to look at. They have similar solutions to the ones above, and it is always a good idea to see what other people have come up with.
- http://digitalcolony.com/labels/sitemap.aspx
- http://www.bloggingdeveloper.com/post/Generate-Sitemaps-for-Google-MSN-Live-Yahoo-Ask-on-the-fly-using-an-ASPNET-HttpHandler.aspx
- http://james.newtonking.com/pages/sitemaps-net.aspx
- http://www.communitymx.com/content/article.cfm?page=5&cid=3DAB2
If anyone has any additional resources, ideas, or suggestions, please leave me a comment and let me know what you think.