Skip to content

Exporting the sitemap for search engine indexing

h07r0d edited this page Feb 2, 2012 · 2 revisions

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()
    {
        AreaRegistration.RegisterAllAreas();

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

        RegisterRoutes(RouteTable.Routes);
    }
}

}


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.