[script] Génération Google sitemap dynamique sans BDD

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


jyl
Nouveau WRInaute
 
Messages: 19
Inscription: Dim Jan 30, 2005 19:34

Message le Jeu Juil 28, 2005 15:30

Bjr à tous,

Je me posais une question sur les urls à ajouter dans le sitemap :?:

Par exemple dans ma page "club", l'url est "www.monsite.com/club.html" (grace à url_rewrite) mais après si l'internaute clique sur un club, l'url n'est pas ré-ecrite mais est du style "..com/index.php?page=club&region....."

Alors d'après le principe du sitemap faut-il ajouter les différentes pages attachées ? Quitte à avoir un sitemap qui ressemble à cela :
Code: Tout sélectionner
http://www.4x4rdv.com/sitemap.xml
ou bien juste les premières pages de chaques rubriques qui donne cela :
Code: Tout sélectionner
http://www.4x4rdv.com/sitemap1.xml
?

Qu'en pensez-vous ???

Merci d'avance

JYL


yvan02
WRInaute impliqué
WRInaute impliqué
 
Messages: 412
Inscription: Mer Mar 02, 2005 15:08

Message le Sam Juil 30, 2005 9:20

Excellent, merci à fandecine. Je l'ai testé et adopté.

J'ai toutefois relevé une petite erreur sur la fonction date dans le script à mettre sur chaque page.

date('H:m:s+00:00')


remplacer par

date('H:i:s+00:00')


c'est mieux d'avoir les minutes au lieu du mois :wink:

Voici les scripts modifiés à ma sauce. J'ai notamment remplacé chemin absolu et nom de domaine par les variables prédéfinies de php : $DOCUMENT_ROOT et $HTTP_HOST


Code: Tout sélectionner

<?php
   
   // SITEMAP AUTO  - à placer sur chaque page - fonctionne avec monsitemap.php et .htaccess
   
   $urldemandee=$_SERVER['REQUEST_URI']; // on récupère l'url de la page courante
   // on met cette url en forme pour en faire un nom de fichier valide
   $urldemandee=ereg_replace('/','-',$urldemandee);
   if($urldemandee=="-") $urldemandee="-index.php";
   $fichierSitemaps="sitemaps".$urldemandee;
   $fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
      // on teste si le fichier existe déjà (les fichiers sont supprimés par pictext à chaque maj)
     if(file_exists($DOCUMENT_ROOT."/sitemaps/".$fichierSitemaps)==false) {
      $fd = fopen("sitemaps/".$fichierSitemaps, "w"); //on ouvre le fichier
      if ($fd) {
         if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.php";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
         $sitemapsContent="<url>\n\t<loc>http://".$HTTP_HOST.$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:i:s+00:00')."</lastmod>\n</url>\n"; //on formate les infos pour le XML
         fwrite($fd,$sitemapsContent); //on ecrit le fichier
         fclose($fd);//on ferme le fichier
       }
   }
?>



Code: Tout sélectionner

<?php

// monsitemap.php

header("Content-Type: text/xml"); // On déclare un fichier XML
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
';
foreach(glob($DOCUMENT_ROOT."/sitemaps/*.*") as $filename) {
   $filename = str_replace($DOCUMENT_ROOT."/","",$filename);
   include ($filename);
}

echo "</urlset>";
?>

Dernière édition par yvan02 le Lun Aoû 01, 2005 12:54, édité 1 fois.

Jaunalgi
WRInaute impliqué
WRInaute impliqué
 
Messages: 293
Inscription: Mer Aoû 11, 2004 11:05

Message le Sam Juil 30, 2005 11:59

yvan02 a écrit:Voici les scripts modifiés à ma sauce. J'ai notamment remplacé chemin absolu et nom de domaine par les variables prédéfinies de php : $DOCUMENT_ROOT et $HTTP_HOST


Si ton serveur n'utilise pas register_global sur on, ça ne fonctionnera pas.
Je te conseille $_SERVER['DOCUMENT_ROOT'] au lieu de $DOCUMENT_ROOT par exemple :wink:


yvan02
WRInaute impliqué
WRInaute impliqué
 
Messages: 412
Inscription: Mer Mar 02, 2005 15:08

Message le Sam Juil 30, 2005 13:07

je note, merci.

sur mon serveur, ça marche comme ça ( suis chez OVH)

fureteur
Nouveau WRInaute
 
Messages: 21
Inscription: Mar Déc 10, 2002 20:31

[SCRIPT] sitemap Google

Message le Jeu Aoû 11, 2005 9:39

Bonjour et merci pour ce script très utile.

N"étant un pro du php, comment "l'installer" dans le cadre d'un site php avec une page index et dont le contenu de chaque rubrique du menu est appelé par un switch / case ?

Merci de votre aide :)

Mr Toto
Nouveau WRInaute
 
Messages: 3
Inscription: Mar Juil 26, 2005 12:56

P'tit script sitemap.php

Message le Mer Sep 07, 2005 15:35

Bonjour !

Voila un script que j'ai fait pour lister seulement les pages pertinantes de mes sites et la date à laquelle elles ont été modifiés pour la dernière fois. Je pense que ça peut en intérresser certains ;-)

Voir dans les commentaires du code ci-dessous pour l'installer sur votre site ...

Code: Tout sélectionner
<?php
/**
* Ce script permet de génerer le fichier XML pour Google Site Map (https://www.google.com/webmasters/sitemaps/).
* Google Site Map a pour but d'établir la liste des pages importantes du site afin d'améliorer le référencement
* - ce script est à placer à la racine du site
* - la date "lastmod" sera calculé grâce à la fonction "filemtime()" qui déterminera la date de modification du fichier - si la date "lastmod" est définie dans le tableau "$tabPages", elle sera prioritaire
*
* @author Thomas Pequet
* @url http://www.memotoo.com
* @version 1.0
*/

// Adresse du site
$adresseSite = "http://www.votreadresse.com";

// Listes des pages à afficher (par rapport à la racine)
// lastmod: date (en option - par defaut le script prendra la date de modification du fichier)
// priority: de 1.0 à 0.0 (en option - par default 0.5)
// changefreq: always - hourly - daily - weekly - monthly - yearly - never (en option)
$tabPages = array(
    "exemple1.html" => array(
        "lastmod" => "2004-05-01T12:15:12+00:00",
        "priority" => "0.6",
        "changefreq" => "monthly",
    ),
    "exemple2.html" => array(
        "lastmod" => "2004-05-01",
        "priority" => "0.1",
    ),
    "exemple3.php?toto=titi" => array(
        "lastmod" => date("Y-m-d\TH:i:s+00:00",filemtime("exemple3.php")),
        "priority" => "1.0",
        "changefreq" => "monthly",
    ),
    "dossier/exemple4.php" => array(
        "lastmod" => "",
        "priority" => "1.0",
        "changefreq" => "monthly",
    ),
);

// Cas de la racine du site
$tabPages[""] = $tabPages["index.php"];

// Tri du tableau sur le nom des pages
ksort($tabPages);

// Envoie des en-tetes en XML
header("Content-Type: text/xml");
header('Content-Disposition: inline; filename="sitemap.xml"');   
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<?
// Parcours des pages
$tabPages_keys = array_keys($tabPages);
for ($i=0;$i<sizeof($tabPages_keys);$i++)
{
?>
<url>
  <loc><?=$adresseSite."/".utf8_encode(htmlspecialchars($tabPages_keys[$i]));?></loc>
<?
    if (isset($tabPages[$tabPages_keys[$i]]["lastmod"]) && $tabPages[$tabPages_keys[$i]]["lastmod"]!="")
    {

?>
  <lastmod><?=$tabPages[$tabPages_keys[$i]]["lastmod"];?></lastmod>
<?
    }
    else if (is_file($tabPages_keys[$i]))
    {
?>
  <lastmod><?=date("Y-m-d\TH:i:s+00:00",filemtime($tabPages_keys[$i]));?></lastmod>
<?
    }

    if (isset($tabPages[$tabPages_keys[$i]]["changefreq"]) && $tabPages[$tabPages_keys[$i]]["changefreq"]!="")
    {
?>
  <changefreq><?=$tabPages[$tabPages_keys[$i]]["changefreq"];?></changefreq>
<?
    }   

    if (isset($tabPages[$tabPages_keys[$i]]["priority"]) && $tabPages[$tabPages_keys[$i]]["priority"]!="")
    {
?>
  <priority><?=$tabPages[$tabPages_keys[$i]]["priority"];?></priority>
<?
    }
?>
</url> 
<?   
}
?>
</urlset>


Thomas

dafnec
WRInaute discret
WRInaute discret
 
Messages: 95
Inscription: Dim Oct 09, 2005 14:20

Message le Mar Oct 11, 2005 17:21

SAlut,
Comme je suis nouveau, je ne sais pas ce que c'est le sitemap ?
Quelqu'un pourrais m'eclairé ?
Merci ;)
Daf'


oli004
WRInaute accro
WRInaute accro
 
Messages: 2162
Inscription: Mer Jan 05, 2005 23:53

Message le Mer Oct 12, 2005 10:32

Quelqu'un pourrais m'eclairer ?


utilise la boite de recherche en haut de de page, tu trouveras tout ce qu'il y a à savoir.

pour résumer en quelques mots : Il s'agit d'un plan de site reconnu par les robots de google pour faciliter l'indexation de pages.


datz
Nouveau WRInaute
 
Messages: 26
Inscription: Ven Sep 02, 2005 1:36

Message le Dim Oct 30, 2005 19:15

Excellent idée d' utiliser l' url rewriting pour les sitemaps !

J' ai remarqué que certains sites avaient des "sous-liens".
Par exemple si tu tappe xiti dans google tu vas avoir
sous le titre des liens vers "Espace Abonné", "Démonstration"...

Est ce que c' est bien les sitemaps qui permettent d' avoir ca ?

Est ce qu on peut avour ces "sous-liens" sur une page autre que index.htm?

Merci d' avance


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Mar Nov 01, 2005 13:12

je pense que tu confond avec le clustering!

Lorsque google trouve deux pages d'un même site dans une page de resultats, il procéde de la sorte. Mais cela n'a rien à voir avec le fichier sitemap dont la seule utilité est de faciliter le travail du robot d'indexation de Google.

Tony Montana
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: Mer Mai 11, 2005 18:52

Re: [script] Génération Google sitemap dynamique sans BDD

Message le Jeu Nov 24, 2005 17:06

fandecine a écrit:note: Pour les sites qui comprennent un nombre de pages proche de la limite fixée par google pour le fichier sitemap, je publierais prochainement une adaptation gérant les fichiers sitemaps en cascade....


c'est quoi la limite fixé par google ?


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Jeu Nov 24, 2005 19:20

Encore un qui ne lit pas les topics de WRI! :wink:

Aller, je suis sympa! :D

Vous pouvez compresser vos fichiers Sitemap à l'aide de l'utilitaire gzip. Cette compression réduira le besoin de bande passante. Notez que la taille de votre fichier Sitemap non compressé ne doit pas être supérieure à 10 Mo.


et encore

Vous pouvez fournir plusieurs fichiers Sitemap, sachant que pour chacun d'eux le nombre d'URL est limité à 50 000 et que la taille de chaque fichier ne doit pas dépasser 10 Mo (10 485 760 octets) avant compression. Ces limites contribuent à éviter la surcharge de votre serveur Web lors de la présentation à Google de fichiers volumineux.

Si vous voulez répertorier plus de 50 000 URL, vous devez créer plusieurs fichiers Sitemap. De même, si vous pensez qu'à terme votre plan Sitemap risque de compter plus de 50 000 URL ou de dépasser les 10 Mo, vous pouvez envisager de créer d'emblée plusieurs fichiers. Si vous procédez ainsi, pensez à répertorier vos différents plans Sitemap dans un fichier d'index Sitemap. Les fichiers d'index Sitemap ne peuvent pas compter plus de 1 000 plans.


enfi, tout est disponible à l'adresse https://www.google.com/webmasters/sitem ... tocol.html et en français en plus!

Maintenant, tu n'as plus d'excuses.... :wink:


Aquarius
WRInaute impliqué
WRInaute impliqué
 
Messages: 447
Inscription: Lun Nov 08, 2004 19:37

Message le Ven Nov 25, 2005 1:02

fandecine a écrit:je pense que tu confond avec le clustering!

Lorsque google trouve deux pages d'un même site dans une page de resultats, il procéde de la sorte. Mais cela n'a rien à voir avec le fichier sitemap dont la seule utilité est de faciliter le travail du robot d'indexation de Google.


Ou plutôt avec les nouveaux liens qui sont apparus depuis le mois d'août pour certains sites et dont on parle ici : http://www.webrankinfo.com/forums/viewtopic.php?t=34323&postdays=0&postorder=asc&start=0

Sinon je vais tester ton script Fandecine, il me plait bien (du moins le côté "automatisé" du script)

franck05
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 110
Inscription: Dim Nov 30, 2003 23:05

Message le Dim Nov 27, 2005 20:48

Bonjour,

Je mexcuse de m'incruster dans la conversation mais je voudrais savoir si avec le fichier sitemap.xml dont on parle plus haut on peut générer un plan de site affichable dans une page web comme par exemple le plan du site de webrankinfo (voir lien bas de cette page)

merci d'avance pour vos réponses... :)


magic
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 137
Inscription: Lun Nov 18, 2002 16:23

Message le Sam Déc 10, 2005 16:02

Merci pour ces scripts :)

[script] Génération Google sitemap dynamique sans BDD [script] Génération Google sitemap dynamique sans BDD

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités