This project is read-only.

Base Search Engine Sitemap Provider for DotNetNuke

The base provider must be installed as a pre-requisite for all the other providers available on this page.

The base provider creates the Url for your DotNetNuke portals to load a search engine sitemap.

This project requires DotNetNuke 5.2 or later and .NET 3.5 or later on the server.

Installation Instructions

  1. Take a full site backup before installing any module to your site
  2. If you are upgrading from the 1.x iFinity Google Sitemap Provider, delete the old version - See Removing the iFinity Google Sitemap Provider 1.x version - this should be done prior to progressing.
  3. Download the install package from the Downloads tab on this project
  4. Log into your DotNetNuke site as a Host/SuperUser account
  5. From the Host->Extensions page, select the option to install a new package
  6. Click through the install wizard until the module has been installed correctly
  7. Request your sitemap by calling {yourdomain}/SearchEngineSitemap.aspx

If everything has been installed correctly, you will see a the search engine sitemap (xml) load in the browser.

The new url (searchEngineSitemap.aspx) is different from both the old version (which was googleSitemap.axd) and from the core DNN sitemap (sitemap.aspx). You may need to update your robots.txt file and/or change your Sitemap console in Google, Bing, etc.

Changing Options

The install package does not have a user interface (you can't change it through the DotNetNuke interface), but there are some options you can change by editing the web.config directly. Please note any changes affect all portals on the installation.

To change any of the attributes, follow these steps:
  1. Download a copy of the web.config file from your site, and take a backup of the file.
  2. Find the <searchEngineSitemap defaultProvider="BaseSitemapProvider"> section in your web.config file
  3. Find the <add name="BaseSitemapProvider" entry in the site. This is the configuration for the search engine sitemap provider
  4. Modify any attribute value according to the following list. You can add attributes into the <add ... /> declaration. Attributes are case sensitive and must be valid (ie name="value") with an equal sign and closed quotation marks

Base Search Engine Sitemap Options

The full list of options for the base provider are as follows:
  • defaultPagePriority -> any decimal value from 0.0 to 1.0 for the default page priority as seen in the output sitemap. The provider will read the page sitemap priority from within DotNetNuke.
  • defaultPageUpdateFrequency -> choose from daily, weekly, monthly, yearly or never. This specifies the default frequency as seen in the output sitemap.
  • includeHiddenPages -> whether or not to output 'hidden' pages into the sitemap.
NOTE: If a module-specific provider is installed, and the matching module is installed on a hidden page, the module-specific sitemap provider overrides the includeHiddenPages. Ie, a Blog module is installed on a hidden page. If 'includeHiddenPages'= false in the baseSiteMapProvider entry, and the Blog SiteMap provider is installed, whether or not the Blog module output is included in the Sitemap is determined by the 'View_Blog.SiteMapProvider' module's 'includeHiddenPages' attribute.
  • includeDisabledPages -> whether or not to output 'disabled' pages (page settings->advanced settings->disabled) This settings works in the same way as the includeHiddenPages settings - it works at the page-level for the base provider, and the module-specific provider level. It allows the Url to be output for a disabled page when includeDisabledPages="true". The default value is false. This value can also be overridden by some module providers.
  • excludePages -> Either a list of tabids, or a list of page names, in a ; delimited value. Ie 4;Secure;34;45 : you can mix tabid's and tabnames. Note that tabId's are absolute, while tab names can be shared across different portals and in the same portal with different parents. A tab name match will exclude all tabs in any portal that matches the tab name. A tabid is unique in the DNN install.
  • adminPageRegex : By default, not needed, but if necessary, a regex pattern that will match any admin page and exclude them from the list. If you have admin pages that are showing up in the sitemap, write a regex expression to match the TabPath value (see Tabs table for the TabPath, but basically it is the part of the url identifying the tab by name)

Indexed Sitemaps and Sitemap Caching

The next batch of options control whether or not the sitemap will use a sitemap index file (which allows for multiple sitemaps to get around the 50,000 Url limit on any individual sitemap page)

You can use the Sitemap caching option with 'single-page' sitemaps. If you elect to use a sitemap index, the sitemap caching option is switched on by default.
  • useCachedSitemap -> Whether to cache the sitemap output to a file in the portal directory, under sitemaps/ True/False, false if omitted, true if useSitemapIndex = true
  • sitemapCacheMinutes -> Length of time, in minutes, to cache the sitemap(s) for. This is calculated from the file write time of the cached sitemap output file
  • useSitemapIndex -> true/false, false if omitted. When true, instead of outputting a sitemap, a sitemap index file is generated instead. When true, sitemap caching is automatically used. Each individual sitemap will be requested with searchEngineSiteMap.aspx?sitemap=n where n is the number of the sitemap. See the instructions file for more detail.. The 'base' searchEngineSiteMap.aspx file will list out the index file of individual sitemaps.
  • maxEntriesPerSitemap -> configurable integer number of maximum number of Url entries per sitemap. If omitted, uses 50,000 as a value. Use a value lower than 50,000 to split a large sitemap up into a number of smaller sitemaps using the sitemapIndex.

Last edited Sep 13, 2012 at 11:50 AM by brucerchapman, version 3


Panos_M Jul 19, 2014 at 6:07 AM 
Can you recommend us a site map module that is able to differentiate between languages of a multi-lingual site? DNN spot cannot do that!

Panos_M Jul 19, 2014 at 6:06 AM 
I examined my web.config file and I checked the defualt options - they were set-up by the installation I presume as you outlined them, here in the instauctions.

Is there anything else needed? I mean, am I ready to submit the updated sitemap - powered by this provider to internet engines?

Do I need to add the provider in any Util page of my site so I can monitor?

spline101 Feb 24, 2013 at 9:21 PM 
I installed this on a local DNN and it worked nicely so far. I tried to install it on a live site and I get the following error:

See below for the results of the package installation
Error loading files from temporary folder - see below
StartJob Starting Installation
Info Starting Installation - Search Engine Sitemaps
Info Starting Installation - Assembly
Info Assembly registered - bin\DotNetNuke.Providers.SearchEngineSiteMapProvider.dll
Info Creating backup of previous version - bin\DotNetNuke.Providers.SearchEngineSiteMapProvider.dll
Info Created - bin\DotNetNuke.Providers.SearchEngineSiteMapProvider.dll
Info Component installed successfully - Assembly
Info Starting Installation - Config
Info Creating backup of previous version - web.config
Failure ExceptionSystem.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Services.Installer.XmlMerge.UpdateNode(XmlNode rootNode, XmlNode actionNode) at DotNetNuke.Services.Installer.XmlMerge.ProcessNode(XmlNode node) at DotNetNuke.Services.Installer.XmlMerge.ProcessNodes(XmlNodeList nodes, Boolean saveConfig) at DotNetNuke.Services.Installer.XmlMerge.UpdateConfig(XmlDocument target) at DotNetNuke.Services.Installer.Installers.ConfigInstaller.Install()
Failure Installation Failed - Config
Info Rolling back component install - Assembly
Info Restored backup of previous version - bin\DotNetNuke.Providers.SearchEngineSiteMapProvider.dll
Info Component rolled back successfully - Assembly
Info Installation Failed - Search Engine Sitemaps
Info Deleted temporary install folder
EndJob Installation Failed

I thought this might be to do with permissions. I checked the DNN installation and I can see that ASP.NET has read and write permission to /install/temp folder
So I am not sure why this is failing to install and what temp folder the error is referring to.
All other kinds of modules install easily with no errors (including iFinity URL Master) so this kind of error has never happened before.

Using DNN 5.6.3

Appreciate your help.


intelligent Dec 20, 2012 at 8:11 PM 
Thanks for the details. Very helpful.