Sitemaps allow you to inform search engines about pages on your website that are available for crawling. A sitemap is an XML file that lists URLs within your site, as well as additional information about each URL such as when it was last updated, how often its content changes and its priority within the site. The purpose of this is to help search engines to more intelligently crawl your website, with the ultimate aim of improving your SEO and pagerank.

Note that this add-on creates XML sitemaps and not HTML sitemaps, for your front-end site. Find out more about sitemaps at sitemaps.org.

The Sitemap Module allows you to select which channels to include in the sitemap and to set preferences for each channel - its URL structure, change frequency and priority. You can also add individual URLs to the sitemap and set their preferences.

Requirements

The Sitemap Module works with ExpressionEngine version 2.10.0 or above, 3.1.0 or above, and 4.0.0 or above.

For ExpressionEngine 2 and 3, you must download and use the legacy version of the add-on from the main add-on page on devot-ee.

Installation

Download and unzip the Sitemap Module, then follow the steps below.

  1. Upload the _sitemap _folder to your add-on directory
  2. Install the Sitemap Module
  3. Create a template called sitemap of type XML and place the following line in it (nothing else):

     {exp:sitemap:get}
    
  4. Open the Sitemap Module settings page and set your preferences

  5. Use the links to submit your sitemap manually to Google

Updating

Download and unzip the latest version of the Sitemap Module, then overwrite all files.

Module Preferences

For each channel you can choose whether to include or exclude it from the sitemap, as well as define its url structure, change frequency and priority. The url structure supports the following tags which work the same as the associated channel entry tags:

{url_title}
{page_uri}
{page_url}
{entry_id}
{weblog_id}
{cat_id}
{cat_name}
{cat\_url\_title}
{entry_date}
{entry_date format="%Y/%m/%d"}     // supported in EE2.8.0 and above

Note: if an entry is assigned to multiple categories then only the first category will be used in parsing.

The change frequency  should indicate frequently the page is likely to change. This value provides general information to search engines but does not correlate exactly to how often they crawl the page.

The priority should indicate the priority of this channel's entries relative to other channels on your site.

In addition to including URLs to channel entries you can also manually add individual urls. This allows you to add any pages on your site that do not have an associated channel entry.

Sitemap Module

For each channel that you include in the sitemap a Sitemap tab will appear when publishing or editing an entry, allowing you to select whether or not to notify seach engines that your content has changed. The checkbox is checked by default only when publishing a new entry. The search engines that are currently supported are Google, Bing and Ask. Yahoo recently removed its sitemap ping service so has been removed from the add-on.

Sitemap Module

Template Tags

Your sitemap template should only contain the following template tag. Ensure that there are no blank lines in your template as this can cause issues.

{exp:sitemap:get}

Outputs the full xml sitemap.

{exp:sitemap:get}

If your sitemaps are very large then you can define the start index and limit of the number of entries shown (Google's limit is 50,000).

{exp:sitemap:get start="0" limit="10000"}

Notifying Search Engines

Google requires that you manually submit your sitemap location to them in order to allow the Sitemap Module to automatically ping them. You should submit the full url of your sitemap template. It only has to be submitted once and can be done from Google Webmaster Tools.

FAQ

What are the benefits of using a sitemap?
The main benefits of using a sitemap are that search engines will include a higher proportion of your pages in their index and that you can notify them of changes to your content. Another big benefit is that you can use Google Webmaster tools to get reports of potential crawling problems such as broken links (404 errors) or crawling problems.

Will using the Sitemap Module significantly improve the SEO of my site?
In general yes, however the results vary from site to site. One of the reviewers on devot-ee had this to say about the Sitemap Module:
"This is a must have for all EE websites we build. It is easy to set up and results are seen quite quickly."

What url should I submit to search engines?
You should submit the full url to your sitemap template. You can easily get to it by clicking on the View Rendered Sitemap link in the Sitemap Module page.

Can I use the Sitemap Module to generate a front-end sitemap of my site?
No, the Sitemap Module is for SEO purposes and only creates an XML sitemap that is readable by search engines.

I am seeing PHP errors when viewing the sitemap
Updating your channels in the Sitemap Module should fix this.

Changelog

Version 4.0.0
  • Made compatible with ExpressionEngine 4
Version 3.0.1
  • Made compatible with PHP 7.0.0
Version 3.0.0
  • Made compatible with ExpressionEngine 3
End of feature development for EE2 version
Version 2.6.6
  • Parse date variables only supported for EE2.8.0 and above
Version 2.6.5
  • Added the ability to format the entry date tag
Version 2.6.4
  • Fixed bug with MySQL strict mode
Version 2.6.3
  • Added compatibility for EE 2.7.0
Version 2.6.2
  • Removed Ask.com from sitemap pinger
Version 2.6.1
  • Fixed deprecated code in EE 2.6.0
Version 2.6
  • Channels are excluded by default
  • Bugfix for sites using MSM
Version 2.5.2
  • Bugfix for extension in new versions of PHP
Version 2.5.1
  • Bugfix for when channel has no assigned Status Group
Version 2.5
  • Added multiple status selection per channel
Version 2.4.1
  • Bugfix for when Pages and Structure modules not installed
Version 2.4
  • Added support for Pages and Structure with _{page_uri} and {page_url}_ tags
End of feature development for EE1 version
Version 2.3.2
  • Removed Yahoo from Sitemap pinger extension since the service is no longer available
Version 2.3.1
  • Minor bugfixes
Version 2.3
  • Removed the need for a sitemap.php file
  • Improved stability of the View Rendered Sitemap link
  • Sitemap tab now always appears on publish page in order to workaround publish page bug (EE2)
Version 2.2.1
  • Sitemap tab bugfix on publish page (EE2)
Version 2.2
  • Added Sitemap tab on publish page (EE2)
  • Fixed preg_match error bug
Version 2.1.3
  • Fixed bug that affected older versions of MySql
Version 2.1.2
  • Updated to work with latest EE2 version
Version 2.1.1
  • Fixed bug in View Rendered Sitemap link in EE2 version
Version 2.1
  • Added sitemap pinger to EE 2.x version
Version 2.0.2
  • Fixed bug that was causing php errors in EE2
Version 2.0.1
  • Added iso8601 date support for PHP4
Version 2.0
  • Converted to an EE 2.x compatible module (both versions available in download)
Version 1.6.7
  • Added time to lastmod field in sitemap
  • Entries with future entry dates now excluded in sitemap
Version 1.6.6
  • Added {entry_date} variable in location
Version 1.6.5
  • Replaced Live.com with Bing.com in sitemap pinger
Version 1.6.4
  • Fixed a bug caused by last update in which entries were shown multiple times if they were assigned to multiple categories
Version 1.6.3
  • Added limit field to sql query
  • Fixed update weblogs bug caused by last update
Version 1.6.2
  • Added ability to change settings for site index page
  • Added link to show/hide excluded locations and weblogs (thanks to Todd for the suggestion)
Version 1.6.1
  • Added option for start and limit parameters to urls
Version 1.6
  • Added variable parsing
Version 1.5
  • Added start and limit parameters to allow for multiple sitemaps
  • Added functionality to prevent expired entries from appearing in sitemap
  • Optimised sql queries and reduced php memory requirements
Version 1.4.2
  • Fixed a bug that was causing problems when checking for updates
Version 1.4.1
  • Performs checks on the edit date to ensure lastmod is formatted correctly and fixes bad dates
Version 1.4
  • Replaced template dropdown box with url input box
  • Locations are now specific to individual sites (MSM compatible)
  • Added confirmation box when deleting locations
  • Sitemap pinger now ignores weblogs that are excluded from the sitemap
  • Fixed a bug that was creating the link to the rendered sitemap with a missing slash
  • Fixed a bug that was causing problems on some servers when installing the module
Version 1.3
  • More template options added to template selection list
  • Changed naming of status options for clarity
  • Added a check to prevent sessions from being started more than once
  • Fixed a bug that was causing the tab body of other extensions to be overridden
  • Fixed a bug that was causing the first template of each group to not appear in template selection list
Version 1.2
  • Fixed a bug that was causing double slashes to be added after site url in some cases
  • Fixed a bug that was causing tabs put on the publish page by other extensions to be overridden (thanks to Leevi Graham)
Version 1.1
  • Sitemap tab added to the publish and edit pages in the control panel, allowing you to select whether or not to send a sitemap ping to search engines
  • Template group names added to template selection list (thanks to Victor Gutierrez for the suggestion)
  • Fixed a bug in the extension that was causing errors when entries were being submitted from stand-alone entry forms
Version 1.0
  • Initial release

Support

Get support by creating a new issue here.