La principale speranza quando si apre un sito Internet è quella di essere ben indicizzati nei motori di ricerca, ovvero che questi siano in grado di presentare il nostro sito tra i risultati delle ricerche degli utenti.
Sono due i passi fondamentali per poter essere trovati dai motori di ricerca.
Innanzi tutto concedere l’accesso al sito. Questo lo si configura tramite il file robots.txt
inserire queste tre righe permette di consentire accesso ai crawler al nostro sito:
User-agent: *
Disallow: /cgi-bin/
Crawl-delay: 720
Il secondo passo è quello di generare un file di sitemap e inviarlo ai motori di ricerca per comunicare l’elenco delle pagine del sito ogni volta che vengono effettuate modifiche al sito.
Per la generazione, possiamo appoggiarci a tools disponibili come add-ins per i più diffusi CMS (WordPress, joomla, drupal hanno plugin open source e gratuiti che permettono la generazione).
Solitamente la generazione del file avviene dinamicamente (esiste un url dinamico che genera al volo il sitemap) o tramite la produzione di un file.
In entrambi i casi abbiamo un URL del nostro sito che continene la mappa.
Questa URL è l’indirizzo da comunicare ai motori di ricerca. A mano? Anche, ma meglio utilizzare il PHP e inserirlo nel cron del CMS per fare tutto automaticamente:
function pingGoogleSitemaps( $url_xml )
{
$status = 0;
$google = 'www.google.com';
if( $fp=@fsockopen($google, 80) )
{
$req = 'GET /webmasters/sitemaps/ping?sitemap=' .
urlencode( $url_xml ) . " HTTP/1.1\r\n" .
"Host: $google\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite( $fp, $req );
while( !feof($fp) )
{
if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
{
$status = intval( $m[1] );
break;
}
}
fclose( $fp );
}
return( $status );
}
Questo è il codice da utilizzare. Possiamo inserire a mano il codice tra le funzioni nel cron, oppure abbinare l’esecuzione a qualche hook di creazione dell’articolo. In questo modo effettuiamo una sottomissione ad ogni reale modifica del contenuto.