Exporting the sitemap for search engine indexing

Shad Storhaug edited this page Feb 9, 2014 · 1 revision

Want to contribute? See our Contributing to MvcSiteMapProvider guide.

Version 4.x Documentation

Unofficial Documentation and Resources

Other places around the web have some documentation that is helpful for getting started and finding answers that are not found here.

Tutorials and Demos

Version 4.x
Version 3.x

Forums and Q & A Sites

Other Blog Posts

Clone this wiki locally

When building a website, chances are that you want to provide an XML sitemap used for search engine indexing.

Option 1: Using the XmlSiteMapController class

If you just require a sitemap.xml file to be available, consider adding the following line of code in the Application_Start event:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using MvcSiteMapProvider.Web;

namespace MvcMusicStore { public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { // ... your routes registration here }

    <span style="color: blue;">protected</span> <span style="color: blue;">void</span> Application_Start()

        XmlSiteMapController.RegisterRoutes(RouteTable.Routes); <span style="color: green;">// &lt;-- register sitemap.xml, add this line of code</span>



This will make sitemap.xml available in the easiest way.

Large sitemaps

Whenever a sitemap exceeds 50.000 nodes, the XmlSiteMapController will automatically split your sitemap into a sitemap index file (sitemap.xml) which references sub-sitemaps (sitemap-1.xml, sitemap-2.xml etc.) as described on http://www.sitemaps.org/protocol.php.

Option 2: Using the XmlSiteMapResult class

The XmlSiteMapResult class creates an XML sitemap that can be submitted to Google, Yahoo and other search engines to help them crawl your website better. The usage is very straightforward:

public class HomeController
    public ActionResult SiteMapXml() 
        return new XmlSiteMapResult(); 

Optionally, a starting node can also be specified in the constructor of theXmlSiteMapResult .

GZip compression of sitemap files

Whenever a client sends an HTTP request header with Accept-encoding set to a value of gzip or deflate, the XmlSiteMapResult class (which is also used internally in the XmlSiteMapController) will automatically compress the sitemap using GZip compression.