[script] Génération Google sitemap dynamique sans BDD
64 messages • Page 1 sur 5 • 1, 2, 3, 4, 5
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[script] Génération Google sitemap dynamique sans BDD
J'avais promis dans un post précédant de publier mon script PHP de génération dynamique de fichier sitemap.xml, alors voila.
Le principe consite à faire générer les données du fichier sitemap par les visiteurs de votre site (bien pratique pour les sites ayant de nombreuses pages générées dynamiquement). A chaque visite, on génére un petit fichier (s'il n'existe pas) contenant l'url de la page et la date courante:
Maintenant on fait un script que l'on place par exemple à la racine du site sous le nom monsitemap.php:
Maintenant on ajoute une regle dans le .htaccess:
Je vous laisse le soin d'intégrer le script nécéssaire à l'effacement des fichiers du repertoire sitemaps dans votre backoffice pour gerer les mises à jour!
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....
Le principe consite à faire générer les données du fichier sitemap par les visiteurs de votre site (bien pratique pour les sites ayant de nombreuses pages générées dynamiquement). A chaque visite, on génére un petit fichier (s'il n'existe pas) contenant l'url de la page et la date courante:
- Code: Tout sélectionner
<?php
$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.html";
$fichierSitemaps="sitemaps".$urldemandee;
$fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
// on teste si le fichier existe déjà
if(file_exists("/cheminabsolut/sitemaps/ ".$fichierSitemaps)==false) {
$fd = fopen("sitemaps/".$fichierSitemaps, "w"); //on ouvre le fichier
if ($fd) {
if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
$sitemapsContent="<url>\n\t<loc>http://www.domaine.com".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m: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
}
}
?>
Maintenant on fait un script que l'on place par exemple à la racine du site sous le nom monsitemap.php:
- Code: Tout sélectionner
<?
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
';
foreach (glob("/cheminabsolut/sitemaps/*.*") as $filename) {
$filename = str_replace("/cheminabsolut/','',$filename);
include ($filename);
}
echo"</urlset>";
?>
Maintenant on ajoute une regle dans le .htaccess:
- Code: Tout sélectionner
RewriteRule ^sitemap\.xml$ /monsitemap.php [QSA,L]
Je vous laisse le soin d'intégrer le script nécéssaire à l'effacement des fichiers du repertoire sitemaps dans votre backoffice pour gerer les mises à jour!
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....
Dernière édition par fandecine le Jeu Juin 30, 2005 14:26, édité 1 fois.
stp je suis tres interessé par ton script tu peux m'expliquer comment ca marche!!
esque c possible d'interdire des url de pages comme robots??
je suis pas tres intéligent je te l'accorde
le 1er script je le place sur toutes mes pages
le 2emme je change cheminabsolut en /home/www...
esque c possible d'interdire des url de pages comme robots??
je suis pas tres intéligent je te l'accorde
le 1er script je le place sur toutes mes pages
le 2emme je change cheminabsolut en /home/www...
Il y a 2 erreurs de progra dans ton code fandecine :
A enlever les deux fois
Pas encore testé le script.
---------
Edit :
Encore 2 erreurs :
- Code: Tout sélectionner
<?php
$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.html";
$fichierSitemaps="sitemaps".$urldemandee;
$fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
// on teste si le fichier existe déjà
if(!==false) {
$fd = fopen("sitemaps/".$fichierSitemaps[color=red]"[/color], "w"); //on ouvre le fichier
if ($fd) {
if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
$sitemapsContent="<url>\n\t<loc>http://www.domaine.com".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m: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
}
}
?>
A enlever les deux fois
Pas encore testé le script.
---------
Edit :
Encore 2 erreurs :
- Code: Tout sélectionner
<?
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
';
foreach(glob("/cheminabsolu/*.*") as $filename) {
$filename = str_replace("/cheminabsolu/[color=red]',''[/color],$filename);
include ($filename);
}
echo "</urlset>";
?>
J'ai testé le script après avoir modifié les erreurs que je t'ai donné plus haut.
Voici le script après correction
ç'a l'air de bien fonctionner maintenant :
/** URL editée par Jaunalgi - sitemap hors ligne **/
Petit bémol : je ne veux pas indexer index.html pour éviter le conflit avec le domaine seul.
Voici le script après correction
- Code: Tout sélectionner
<?php
$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.html";
$fichierSitemaps="sitemaps".$urldemandee;
$fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
// on teste si le fichier existe déjà
if(!file_exists("//cheminabsolu/sitemaps/".$fichierSitemaps)!==false) {
$fd = fopen("sitemaps/".$fichierSitemaps,"w"); //on ouvre le fichier
if ($fd) {
if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
$sitemapsContent="<url>\n\t<loc>http://www.grandprix4.org".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m: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
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">
';
foreach(glob("/cheminabsolu/sitemaps/*.*") as $filename) {
$filename = str_replace("/cheminabsolu/","",$filename);
include ($filename);
}
echo "</urlset>";
?>
- Code: Tout sélectionner
RewriteRule ^sitemap\.xml$ /monsitemap.php [QSA,L]
ç'a l'air de bien fonctionner maintenant :
/** URL editée par Jaunalgi - sitemap hors ligne **/
Petit bémol : je ne veux pas indexer index.html pour éviter le conflit avec le domaine seul.
Dernière édition par Jaunalgi le Mar Sep 19, 2006 11:54, édité 1 fois.
Bonjour à toutes et à tous,
à ce propos, j'ai trouvé un petit site bien pratique :
http://www.autositemap.com
Il permet, en affichant un marqueur sur les pages d'un site, de générer dynamiquement le sitemap d'un site.
Le principe est simple, chaque requête à l'image en question contient (du moins pour la majorité des personnes visitant le site) le referer de cette image. Donc, il ne reste plus qu'à extraire d'une base de données tous les réfèrants, de formater l'affichage et hop
Olivier
à ce propos, j'ai trouvé un petit site bien pratique :
http://www.autositemap.com
Il permet, en affichant un marqueur sur les pages d'un site, de générer dynamiquement le sitemap d'un site.
Le principe est simple, chaque requête à l'image en question contient (du moins pour la majorité des personnes visitant le site) le referer de cette image. Donc, il ne reste plus qu'à extraire d'une base de données tous les réfèrants, de formater l'affichage et hop
Olivier
Jaunalgi a écrit:Petit bémol : je ne veux pas indexer index.html pour éviter le conflit avec le domaine seul.
d'ou l'interet de ce bout de code:
- Code: Tout sélectionner
if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
SiteMap google
Salut Fandcine
je suis trés intéréssé par ce script, par contre je sais comment l'installer :
le 1er bloc, ou ?
2em ou ?
les deux blocs de codes dans le meme page sitemap.php ?
j'ai essayé, mais une erreur : (j pense problem de chemin )
Parse error: parse error, unexpected T_IF in /home/besthoteu/www/spain/monsitemap.php on line 5
Merci par avance
je suis trés intéréssé par ce script, par contre je sais comment l'installer :
le 1er bloc, ou ?
2em ou ?
les deux blocs de codes dans le meme page sitemap.php ?
j'ai essayé, mais une erreur : (j pense problem de chemin )
Parse error: parse error, unexpected T_IF in /home/besthoteu/www/spain/monsitemap.php on line 5
Merci par avance
le premier bloc de code doit être inserré dans toutes les pages du site.
Le second est un script php (fichier sitemap.php) permettant de générer les données du fichier sitemap. Si on inserre le troisième le bloc de code dans le fichier htacces, l'appel de sitemap.xml affichera le fichier sitemap!
voila!
Le second est un script php (fichier sitemap.php) permettant de générer les données du fichier sitemap. Si on inserre le troisième le bloc de code dans le fichier htacces, l'appel de sitemap.xml affichera le fichier sitemap!
voila!
Bjr,
Merci beaucoup pour ce très pratique script fandecine !
Après quelques tests cela me génere bien monsitemap.php
Par contre comme je lisais la notice de google et voyais les autres tags : du syle <changefreq> et <priority>, ceux si sont optionnels d'accord, mais je me demandais si cela était vraiment nécessaire de les créer ???
Si cela apportais quelques choses pour le référencement, la rapidité de ref, etc.. ?
Merci d'avance
JY
PS: je modifie mon post pour ajouter les quelques lignes de code pour ces 2 tags:
Et plus qu'a executer http://www.votresite.com/monsitemap.php
Plus qu'a faire une fonction de tout ça, pour faire plus beau
Merci beaucoup pour ce très pratique script fandecine !
Après quelques tests cela me génere bien monsitemap.php
Par contre comme je lisais la notice de google et voyais les autres tags : du syle <changefreq> et <priority>, ceux si sont optionnels d'accord, mais je me demandais si cela était vraiment nécessaire de les créer ???
Si cela apportais quelques choses pour le référencement, la rapidité de ref, etc.. ?
Merci d'avance
JY
PS: je modifie mon post pour ajouter les quelques lignes de code pour ces 2 tags:
- Code: Tout sélectionner
// la fréquence de renouvellement de la page
$changefreq=array(0=>'always',
1=>'hourly',
2=>'daily',
3=>'weekly',
4=>'monthly',
5=>'yearly',
6=>'never');
// 0.0 to 1.0, The default priority of a page is 0.5
$priority='0.4';
$sitemapsContent="<url>\n\t<loc>http://www.votresite.com".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m:s+00:00')."</lastmod>\n<changefreq>".$changefreq[2]."</changefreq>\n<priority>".$priority."</priority>\n</url>\n"; //on formate les infos pour le XML
Et plus qu'a executer http://www.votresite.com/monsitemap.php
Plus qu'a faire une fonction de tout ça, pour faire plus beau
jyl a écrit:Par contre comme je lisais la notice de google et voyais les autres tags : du syle <changefreq> et <priority>, ceux si sont optionnels d'accord, mais je me demandais si cela était vraiment nécessaire de les créer ???
Personnellement, je n'ais pas assez de recul sur l'utilisation de GGSitemap pour dire si ces tags apportent quelquechose ou pas. J'ai choisi la simplicité en les ignorant... pour l'instant.
64 messages • Page 1 sur 5 • 1, 2, 3, 4, 5
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 :
- Google Sitemap Generator version 1.3
- Contraintes d'emplacement du Sitemap
- Déclarer son fichier sitemap dans le fichier robots.txt
- Suivre le parcours de la flamme Olympique 2008 dans Google Earth
- Nouvelle version de Yahoo Site Explorer (août 2008)
- La terre vue par satellite : accord entre Google et Spot Image
- Où placer son fichier Sitemap ? A la racine ?
- Comment gérer simplement les sitemaps de plusieurs sites au même endroit
- Référencement de vidéos avec les fichiers sitemaps vidéo
- Les albums web Picasa passent à 1 Go de stockage
- script sitemap google
- Génération de sitemap dynamique
- site dynamique et mauvais référencement : sitemap??
- Sitemap pour un grand site dynamique
- Rch script avec bdd pour agence immobillière sur le web
- Aide à trouver un script pour menu dynamique
- Script sitemap
- Script Sitemap vidéo automatique
- je cherche un script sitemap pour yourphpannuaire!!
- Bug script perso générateur sitemap
- sitemap execution script chez ovh mutualisé
- Index sitemap + sitemap déclarés à google
- script PHP de sitemap pour des pages dynamiques et htm
- Google Crawl et BDD momentanément HS
- peut on supprimer son site de la bdd de google?
Consultez la description détaillée des produits ou services de Google suivants : Google Sitemaps
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités







le forum