Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{rate}
{status:implemented|4.5.3} [Google-sitemap|http://documentation.magnolia-cms.com/modules/google-sitemap.html]  module . {status}

h3. Introduction

Migrate the sitemap module in order to support Magnolia 4.5.

h3. Goal

* Create a standard module with configuration, templates and services {color:#008000}*(ok)*{color}.
* Replace JSP by FTL's {color:#008000}*(ok)*{color}.
* Better configuration {color:#008000}*(ok)*{color}.
* {color:#000000}Add Specialized Sitemaps{color} ([Specialized Sitemaps|http://support.google.com/webmasters/bin/topic.py?hl=en&topic=20986&parent=8476&ctx=topic]) {color:#ff0000}*(konext module version)*{color}
** Mobiles
** News
** Video
** Geo
** Code Search
* {color:#000000}Add additional informations{color} (linked to a page) to the SiteMaps {color:#ff0000}*(konext module version)*{color}
** Images
** Video
* Add Junit tests. {color:#008000}*(ok)*{color}.
* {color:#000000}Add an AdminCentral Tools menu to access the Edit page{color} {color:#ff0000}*(ko)*{color}

h3. Global Requirements

Generate XML page(s) containing site informations following the [siteMap protocol|http://www.sitemaps.org/protocol.html].

Have an Edit page that allows to add sites/virtualUri as component. The add Dialog should allows to:

* Add either a new Site or VirtualUri Component.
* For VirtualUri Component: no additional configuration.
* For Site Component: a new Dialog is shown:
** Define the Site root input field.



Have a configuration page (Dialog) that gives the abitiy to define per page the:
* Change frequence
* Priority
* Visibility of the page and children in the SiteMap xml.

h4. Google SiteMap requirements.

[Requirements|http://support.google.com/webmasters/bin/answer.py?hl=en&answer=183668#1]

Points not yet covered {color:#ff0000}*(konext module version)*{color}?
* A Sitemap file can contain no more than 50,000 URLs and must be no  larger than 50MB when uncompressed. If your Sitemap is larger than this,  break it into several smaller Sitemaps. These limits help ensure that  your web server is not overloaded by serving large files to Google.
* If you have more than one Sitemap, you can list them in a [Sitemap index file|http://support.google.com/webmasters/bin/answer.py?answer=71453] and then submit the Sitemap index file to Google. You don't need to submit each Sitemap file individually.
* As well as basic URL information, Sitemaps can contain detailed  information about specific types of content on your site, including [video|http://support.google.com/webmasters/bin/answer.py?answer=80471], [images|http://support.google.com/webmasters/bin/answer.py?answer=178636], [mobile|http://support.google.com/webmasters/bin/answer.py?answer=34627], [News|http://www.google.com/support/news_pub/bin/answer.py?answer=75717], and [software source code|http://support.google.com/webmasters/bin/answer.py?answer=75225]

h4. Magnolia SiteMap requirements.

Points not yet covered ({color:#ff0000}{*}should we{*}{color})?
* Site variations:
* Multi domains:
'No. Please list only one version of a URL in your Sitemaps. Including multiple versions                  of URLs may result in incomplete crawling of your site'[...|http://www.sitemaps.org/faq.html#faq_xml_encoding]
* Uses of an [external java library|http://code.google.com/p/sitemapgen4j/] ([Apache License 2.0|http://www.apache.org/licenses/LICENSE-2.0]) {color:#ff0000}*(ko as we don't support mobile siteMap or Index files)*{color}
{code}
        <!-- For site map generation  -->
	<dependency>
		<groupId>com.google.code</groupId>
		<artifactId>sitemapgen4j</artifactId>
		<version>1.0.1</version>
	</dependency>
{code}

h4. Google SiteMap Configuration

We should be able to configure:
* Sites ans subSites to include in the SiteMap Url&nbsp;
* Display Virtual Uri or not.





h3. Solutions

* Create a configuration singleton used by the model and service (configure site to be displayed, date format, ...).
* Create a Service responsible to perform the nodes search and convert these nodes to beans used for the rendering.
* Create a new SiteMapModel&nbsp; that uses the services and configuration singleton.
* Create FTL's for rendering.

h3. References

[Google SiteMap About|http://support.google.com/webmasters/bin/answer.py?hl=en&answer=156184&topic=8476&ctx=topic]


[Google SiteMap Errors|http://support.google.com/webmasters/bin/answer.py?hl=en&answer=35738]


[Best Practices|http://www.1918.com/sitemap-best-practices/]