Page 1 sur 1

Sitemap

Posté : 12 oct. 2015, 18:23
par yoann38
Bonjour à tous.
Je m'adresse à vous car je suis en pleine optimisation de site et j'arrive à la phase du sitemap.
J'aimerais avoir vos retour dessus.
Faut il passer par un générateur de sitemap ?
Tout faire soit même ( environ 30.000 Pages )...

Merci à vous par avance ;)

Re: Sitemap

Posté : 12 oct. 2015, 18:25
par or 1
si tu as su faire un site dynamique, tu sauras faire un sitemap, qui n'est qu'une liste des urls du site.

Re: Sitemap

Posté : 12 oct. 2015, 18:31
par Ryle
Les générateurs de sitemap gratuits sont généralement limités à un certain nombre d'url (de 30 à 100 en moyenne). Et il n'est effectivement pas bien compliqué en php de réaliser un générateur pour produire dynamiquement un plan du site et/ou le sitemap associé (certains trouverons même l'exercice amusant ... sont pas nets ces développeurs ;))

Re: Sitemap

Posté : 12 oct. 2015, 18:56
par yoann38
Re.
Bon bah du coup j'ai fait un truc très simple avec un while pour parcourir mes entrées du genre:
Juste j'aimerais affiches les balise <url> et <loc> mais du coup tel quel ça ne marche pas ....
PS: Auriez vous fait comme ça ?
merci encore
<?php
	$pub = "SELECT * FROM `mabase`";
    $req = $bdd->query($pub);
	if($req->rowCount() > 0) {
			
		while($ligne = $req->fetch(PDO::FETCH_ASSOC)){ 
		
		echo ' 
				<url><br>
  					 <loc><br>
					  http://monsite.fr/annonce?id='.$ligne['id'].'</loc><br>
					  <changefreq>weekly</changefreq><br>
					  <priority>0.9</priority><br>
					 </url><br>

				</li>
    		'."\n";

		}  
		
	} else {
		echo 'Aucune annonce enregistrée ';
	}  
	?>

Re: Sitemap

Posté : 13 oct. 2015, 09:18
par Ryle
Bonjour,

Attention, le sitemap n'est pas une page html à destination d'un utilisateur qui la consultera via le navigateur, mais un fichier xml qui est exclusivement destiné aux moteurs de recherche. Il doit donc être constitué comme un fichier xml et respecter la structure attendu pour les fichiers sitemap :
- Pas de balises <br> ou <li> destinées à l'affichage sur le navigateur, les retours à la ligne éventuels se font avec "\n"
- Ton fichier doit impérativement contenir la ligne <?xml version="1.0" encoding="UTF-8"?>
- Tes balises url doivent se trouver à l'intérieur d'une balise <urlset>

En fonction de la fréquence à laquelle des pages sont ajoutées/retirées sur ton site, il peut être préférable de générer un fichier physique sur le serveur de façon régulière plutôt que de générer un flux de façon dynamique à chaque appel du script.
<?php
  $pub = "SELECT id FROM `mabase`"; // pas besoin de faire un SELECT * si tu as juste besoin de l'id :)
  $req = $bdd->query($pub);

  $xml = '<?xml version="1.0" encoding="UTF-8"?>';
  $xml.= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

  while ($ligne = $req->fetch(PDO::FETCH_ASSOC)) {
    $xml.= '<url>' . "\n";
    $xml.= '   <loc>http:// ... /annonce?id=' . $ligne['id'] . '</loc>' . "\n";
    $xml.= '   <changefreq>weekly</changefreq>' . "\n";
    $xml.= '   <priority>0.9</priority>' . "\n";
    $xml.= '</url>' . "\n";
  }  
  $xml.= '</urlset>';

  echo $xml; // tu peux aussi utiliser cette variable pour coller le contenu dans un fichier au lieu de l'afficher

?>