Anton Kallenberg
Jun 19, 2012
visibility 4547
star star star star star
(0 votes)

Adding a site map index

I have created a add-on that adds a site map index to a EPiServer site based on the page tree structure. I have used the protocol that is described here http://www.sitemaps.org/protocol.html#index

The implementation is based on a http handler that must be registered in web.config,  would be great if the registration could be done through code, maybe in a initialization module, is this possible?

Add a reference to the SiteMapIndex.dll and add following to Web.config ( /configuration/system.webServer/handlers)

   1: <add name="SiteMapIndex" 
   2:            path="sitemap.xml"
   3:            verb="*"
   4:            type="SiteMapIndex.IndexHandler, SiteMapIndex" />
   5:       <add name="SiteMapItem"
   6:            path="sitemapitem.xml"
   7:            verb="*"
   8:            type="SiteMapIndex.IndexHandler, SiteMapIndex" />

Browse to http://yoursite.com/sitemap.xml to view the site map index.

Excluding pages, setting change frequency and priority

It is possible to change the behavior of these things. Implement the interface ISiteMapIndexPageType to your page type builder page type class and implement the properties from the interface.

   1: #region ISiteMapIndexPageType
   2: bool ISiteMapIndexPageType.Skip
   3: {
   4:     get { return false; }
   5: }
   6:  
   7: ChangeFrequency ISiteMapIndexPageType.ChangeFrequency
   8: {
   9:     get { return ChangeFrequency.Weekly; }
  10: }
  11:  
  12: double ISiteMapIndexPageType.Priority
  13: {
  14:     get { return 0.7; }
  15: }
  16: #endregion

Caching

It could be a quite heavy operation to render the site map index for big site. Now only page references are cached in addition to episerver standard caching of page data objects. A cache dependency is added to the global episerver version key. If a page is updated the entire cache (of page references) for the site map index is dropped. Do you think the outputted xml should be cached instead of the page references or maybe something completely different?

Source and downloads are available at github. https://github.com/antonkallenberg/SiteMapIndex

Requires PageTypeBuilder 2.0 and EPiServer 6 R2.

Jun 19, 2012

Comments

error Please login to comment.
Latest blogs
Flat or Nested? Weighing Your Content Modeling Options in Optimizely SaaS CMS

When building a headless site on Optimizely SaaS CMS, one of the earliest and most critical design milestones your team will face is defining your...

Vipin Banka | Jul 31, 2026

From SDK to Core: Modernizing Optimizely Configured Commerce for .NET 8 and .NET 10

The .NET Framework 4.8 clock is running out for Configured Commerce customizations. Handled well, this deadline is not a chore it is the cleanest...

Vaibhav | Jul 29, 2026

Parallel Development in Optimizely CMS SaaS: Shifting to a Schema Migration Mindset

  Part 3 of the Parallel Development series. The branch-scoped push script from Part 1 works. Run it on a feature branch where you've touched a...

Vipin Banka | Jul 25, 2026

From AI Agents to AI Workflow with Opal

Introduction In the first article in this series , we talked about AI agents in Optimizely Opal and walked through the process of creating a...

Igor Safonov | Jul 23, 2026