Sitemap Module

*** Update: now compatible with EE2.0

The Sitemap Module is an Expression Engine add-on that automatically generates a configurable sitemap of your website and notifies search engines about changes in your site. It is meant as an SEO tool for site administrators that use the Expression Engine content management system.

Support can be found in the comments and in this EE forum thread.

Download Sitemap
Current Versions: 2.0.1 & 1.6.7 (released 8 February 2010)

* Works with ExpressionEngine 2.0 and ExpressionEngine 1.6

1. Concept

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 pagerank.

Find out more about sitemaps at sitemaps.org

2. How It Works

The Sitemap Module consists of two parts - a module and an extension. The module allows you to select which weblogs to include in the sitemap and to set preferences for each weblog - its change frequency, priority and template. You can also add URLs to the sitemap and set their preferences.

The purpose of the extension is that every time an entry on your site is created or changed using the PUBLISH and EDIT tabs, several search engines are notified that your site content has changed. A Sitemap tab appears that allows you to select whether or not to notify the search engines. It is selected by default if you are creating a new entry. The search engines that are currently supported are Google, Yahoo, Bing, Ask and Moreover (the MSN search index).

Screenshot

Screenshot

You can use the following variables in the uls which will be parsed accordingly:

{url_title}, {entry_id}, {weblog_id}, {cat_id}, {cat_name}, {cat_url_title}, {entry_date}

* If an entry is assigned to multiple categories then only the first category will be used in parsing

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). For example:

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

You can also define the start index and the limit in the url in the following way (since version 1.6.1, requires curl):

http://www.mysite.com/sitemap.php?start=0&limit=50000
			
http://www.mysite.com/sitemap.php?start=50000&limit=100000
			
http://www.mysite.com/sitemap.php?start=100000&limit=150000
				

This allows you to submit multiple sitemaps to Google and to use sitemap index files to group multiple sitemap files. Please ensure that you have version 1.6.1 of the module or later installed and that you have updated the sitemap.php file.

Note: The EE2.0 version does not contain the sitemap pinger but it is coming soon!

3. Installation

Download and unzip sitemap.zip, then follow the steps below.

For EE2.0:

  1. Open the sitemap_2_0 folder
  2. Upload the entire sitemap folder to the system/expressionengine/third_party/ folder
  3. Create a template called sitemap and place the following line it: {exp:sitemap:get}
  4. Upload sitemap.php to the root directory of your website and change the template variable in it if necessary
  5. Install the Sitemap module (Control Panel -> Add-Ons -> Modules -> Install)
  6. Set the sitemap preferences (Control Panel -> Add-Ons -> Modules -> Sitemap)
  7. Use the links to submit your sitemap manually to Google and Yahoo

For EE1.6:

  1. Open the sitemap_1_6 folder
  2. Upload the sitemap folder to the system/modules folder
  3. Upload lang.sitemap.php to the system/language/english folder
  4. Upload ext.sitemap_pinger.php to the system/extensions folder
  5. Create a template called sitemap and place the following line it: {exp:sitemap:get}
  6. Upload sitemap.php to the root directory of your website and change the template variable in it if necessary
  7. Install the Sitemap module (Control Panel -> Modules -> Install)
  8. Enable the Sitemap_pinger extension (Control Panel -> Admin -> Utilities -> Extensions Manager -> Enable)
  9. Set the sitemap preferences (Control Panel -> Modules -> Sitemap)
  10. Use the links to submit your sitemap manually to Google and Yahoo

4. Download

Each individual license costs $39.95, which allows you to use the module on one installation of EE. You must purchase a license in order to download the Sitemap Module. Once you have completed payment you will be sent a code that will allow you to download the file.

By purchasing the Sitemap Module you agree to the license agreement.

If you have already purchased the Sitemap Module then you can download it by entering your email and code below.

Email:
Code:

5. License

By purchasing the Sitemap Module you agree to the following conditions:

  • One license grants the right to perform one installation of the Sitemap Module. Each additional installation requires an additional purchased license.
  • You may not reproduce, distribute, sell or transfer the Sitemap Module, or portions thereof, to any third party.
  • All copyright and proprietary notices within the Sitemap Module files must remain intact and unaltered.
  • The Sitemap Module is provided "as is", without warranty of any kind.
  • You assume all risk associated with the installation and use of the Sitemap Module.

6. Changelog

Version 2.0
  • Converted to an EE 2.0 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

7. Comments

Blank Avatar
harry
05 November 2007


Module works perfectly! Very clean interface. Thanks for this!

Blank Avatar
Rick
05 November 2007


Excellent module! Very well thought out and designed. Also very clean and simple to use. I had it up and running within 15 minutes and google is now showing 99 urls mapped versus the 17 it was previously! It is also nice to know that it is always notifying the search engines when I make changes. I don't have to do a thing anymore.

Thank you for sitemap! It has saved me a ton of time.

Blank Avatar
Shawn
13 November 2007


The module is a snap to install. In 10 minutes, it's up and running and outputting beautifully. I couldn't have asked for a better module.

I can't tell you ho much time you've saved me with this module.

Thanks a million.

Blank Avatar
Ben
14 November 2007


Version 1.1 is now available and has some new little features, but more importantly it addresses a problem that version 1.0 had with stand-alone weblog entry forms.

Blank Avatar
Roman
21 November 2007


hi,
fantastic application - just what i've been waiting for!!!
as i run a news site which is listed in google news it would be great if i could limit the entries to the last 3 days cause this it what google news wants me to do...
piniging google doesn't work for me and if i click on "View Google's index of your website" i get all pages listed in google - not just my pages...
nevertheless some fantastic job you did!
thanks' again
cheers
roman/berlin/germany www.berlinista.com

Blank Avatar
Ben
22 November 2007


hi roman,
i had a look at your sitemap and the locations don't seem to have your website base url in them, i'm guessing that that's why pinging google doesn't work. what build of EE do you have installed?

Blank Avatar
Roman
22 November 2007


hi,
Build: 20070622
actually i don't know how to get the url into the sitemap.
thanks'
roman

Blank Avatar
Ben
23 November 2007


roman, the url is automatically pulled in using the $FNS->fetch_site_index() function. from your control panel go to Admin -> System Preferences -> General Configuration and check if the "URL to the root directory of your site" is set.

Blank Avatar
Roman
02 December 2007


hi,
this works!!!
thanks' a ton. somebody built my site and obviously didn't do everything right. after receiving all the money he now refuses to help and i'm lost.
thanks' again!

Blank Avatar
Ben
02 December 2007


no problem, glad that worked.

Blank Avatar
mark
04 December 2007


Hi,

Great idea for this module! I have a question regarding sitemaps urls and EE's pages module urls though. The sitemap urls being created include /pages/page_name (the template name) even though the url I am specifying is /project/page_name as seen below:

sitemap module creates:
http://www.1111camino.com/dev/index.php?/pages/the_condos

while the EE display url is:
http://www.1111camino.com/dev/index.php?/project/condos

Is this in essence looking like duplicate content to the SE's?

Any comments appreciated!
Thanks,
Mark


» View all comments

Leave A Comment

name (required)
email (required but will be kept completely private)
website