Generare una sitemap dinamica in PHP
Una sitemap è un file XML che viene utilizzato dai motori di ricerca per permettere una indicizzazione più intelligente anche i siti dinamici fornendo URL corretti.
Benchè esistano diversi servizi online che permettono di crearne una la soluzione migliore potrebbe essere quella di generarsene una autonomamente, interrogando un database, facendo in modo che la sitemap risulti sempre aggiornata.
Per capire meglio analizziamo prima la struttura di una sitemap statica:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.example.com/</loc> <lastmod>2005-01-01</lastmod> <changefreq>monthly</changefreq> <priority>0.8</priority> </url> </urlset>
Per avere una sitemap dinamica, occorre creare una pagina php che interroghi un database, la struttura base sarà la seguente:
<?php
$query = mysql_query ( "SELECT * FROM tabella ORDER BY id DESC" );
$row = mysql_fetch_assoc ( $query );
echo '<?xml version="1.0" encoding="utf-8"?>' . "
";
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
############# BEGIN LOOP ############
do {
$link = 'http://www.vostrosito.com/articolo.php?id=' . $row['id'];
$lastmod = ( $row['date_updated'] ) ? $row['date_updated'] : $row['date_added'];
$priority = 0.5;
$changefreq = 'monthly';
?>
<url>
<loc><?=$link?></loc>
<lastmod><?=$lastmod?></lastmod>
<priority><?=$priority?></priority>
<changefreq><?=$changefreq?></changefreq>
</url>
<?php
} while ( $row = mysql_fetch_assoc ( $query ) );
############# END LOOP ############
?>
</urlset>
Qui è stata impostata la priorità di ogni articolo a 0.5 e viene presa come data quella corrispondente all'ultima modifica (se presente). E' stata inoltre impostata a "monthly" la frequenza di aggiornamento.
I dati sopra indicati sono da editare a seconda delle esigenze, ma lo schema logico rimane sempre lo stesso.
E voi vi affidate a qualche buon plugin oppure preferite sperimentare e scrivere del vostro codice?
grazie a : webmasterpoint
Continua a leggere
|
|
|
|
|








