La création de sitemap en XML est une tâche parfois difficile si l'on désire créer un fichier entièrement valide.
Les moteurs de recherche utilisent le même standard de protocole concernant les fichiers sitemap en xml ce qui facilitent les choses.
Les "normes" standard sont respecté au niveau des URLS et des dates, le système converti les dates dans le bon format (ISO 8601) et les URI (RFC-3986)
Le sitemap consiste à donner la possibilité aux webmestres d’indexer eux-mêmes leurs sites avec le renseignement des pages dans un fichier. Note : Les robots n'utiliseront plus votre bande passante de manière intensive.

Pour la création d'un fichier sitemap standard :

[PHP]
/*instance la classe*/
        $sitemap = new magixcjquery_xml_sitemap();
/*Crée le fichier xml s'il n'existe pas*/
        $sitemap->createXML('sitemap1.xml');
/*Ouvre le fichier xml s'il existe*/
        $sitemap->openFile('sitemap1.xml');
/*indente les lignes (optionnel)*/
        $sitemap->indentXML(true);
/*Ecrit la DTD ainsi que l'entête complète suivi de l'encodage souhaité*/
    $sitemap->headSitemap("UTF-8");
        /*Ecrit les éléments*/
    $sitemap->writeMakeNode('http://test.be/','2009-08-26','always',0.8);
    $sitemap->writeMakeNode('test.html','2009-08-26','always',0.8);
/*Termine les noeuds*/
        $sitemap->endWrite();

Fichier xml généré avec la librairie

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by magix cjQuery Framework-->
<urlset xmlns:dc="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://test.be/</loc>
  <lastmod>2009-09-02</lastmod>
  <changefreq>always</changefreq>
  <priority>0.8</priority>
 </url>
 <url>
  <loc>http://test.be/test.html</loc>
  <lastmod>2009-09-02</lastmod>
  <changefreq>always</changefreq>
  <priority>0.8</priority>
 </url>
</urlset>

Un fichier sitemap ne peut pas contenir plus de 50 000 URL et sa taille ne doit pas dépasser 10 Mo avant compression.
Une astuce existe pour éviter d'avoir un sitemap trop conséquent avec l'utilisation de "plusieurs sitemap" et ainsi alléger les fichiers.
Il faut néanmoins soumettre les sitemaps aux moteurs de recherche de manière intelligente, éviter d'envoyer sitemap1, sitemap2, etc .....
On utilisera un fichier index pour tous les sitemaps avec un squelette légèrement différent d'un sitemap classique.
Un fichier d'index sitemap à pour but de regrouper plusieurs fichiers sitemap dans un index, ce qui allège les requêtes HTTP.

[PHP]
/*Crée le fichier xml s'il n'existe pas*/
    $sitemap->createXML('sitemap.xml');
        /*Ouvre le fichier xml s'il existe*/
    $sitemap->openFile('sitemap.xml');
        /*indente les lignes (optionnel)*/
    $sitemap->indentXML(true);
        /*Ecrit la DTD ainsi que l'entête complète sitemapindex suivi de l'encodage souhaité*/
    $sitemap->headSitemapIndex("UTF-8");
        /*Ecrit les éléments index*/
    $sitemap->writeMakeNodeIndex('sitemap1.xml.gz','2009-08-26');
        /*Termine les noeuds*/
    $sitemap->endWrite();

Fichier xml généré avec la librairie

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by magix cjQuery Framework-->
<sitemapindex xmlns:dc="http://www.sitemaps.org/schemas/sitemap/0.9">
 <sitemap>
  <loc>http://test.be/sitemap1.xml.gz</loc>
  <lastmod>2009-08-26</lastmod>
 </sitemap>
</sitemapindex>

Il existe également la possibilité de créer les fichiers au format GZ pour les requêtes HTTP vers Google par exemple.

Un exemple de création d'un GZ simple :

[PHP]
/*Compression GZ souhaitée*/
        $sitemap->setGZCompressionLevel(9);
/*Création du fichier GZ à partir de l'XML*/
        $sitemap->createGZ('sitemap1.xml.gz','sitemap1.xml');

Attention: ne pas créer le fichier GZ en même temps que le fichier XML

On peu également faire une requête directement dans Google webmaster Tools.

[PHP]
      $sitemap->sendSitemapGoogle('http://www.test.be','sitemap.xml.gz');