Codeigniter generazione Google Sitemap xml

martedì, gennaio 27, 2009 12:06 scritto da neryo

In questo articolo voglio mettere i riflettori su un plugin per il framework Codeigniter che ritengo molto interessante. Si tratta del plugin “Google Sitemap”, basato sulla classe Google sitemap di Svetoslav Marinov.

Questo plugin per Codeigniter con scopo SEO (Search engine optimization) ci consente di creare la sitemap del nostro sito, e notificarla tramite un ping a Google ed a eventuali altri motori di ricerca.. in questo modo ci permette di abbattere i tempi di indicizzazione, senza dover aspettare che un crawler passi per caso sul nostro sito!

Sappiamo tutti l’importanza che ha l’indicizzazione e il posizionamento oggi, e di rendere subito noti i nostri cambiamenti al motore numero uno, quindi diventa indispensabile su ogni sito dinamico avere strumenti come questo, altrimenti ad ogni cambiamento dovremmo appoggiarsi a siti come www.xml-sitemaps.com e rigenerare il nostro file sitemap.xml, figuriamoci se dovessimo farlo per decine/centinaia di inserimenti giornaglieri! :)

Sul wiki di Codeigniter è possibile scaricare il plugin da inserire nella cartella system/plugin del framework ecco qui un esempio di utilizzo su codegniter:

  1. class My_controller extends Controller
  2. {
  3.     function My_controller()
  4.     {
  5.         parent::Controller();
  6.         $this->load->helper(array(‘text’,‘url’));
  7.         $this->load->plugin(‘google_sitemap’); //Load Plugin
  8.     }
  9.  
  10.     function index()
  11.     {
  12.         $sitemap = new google_sitemap; //Create a new Sitemap Object
  13.         $item = new google_sitemap_item(base_url()."MY_WEBSITE_URL",date("Y-m-d"), ‘weekly’, ‘0.8′ ); //Create a new Item
  14.         $sitemap->add_item($item); //Append the item to the sitemap object
  15.         $sitemap->build("./sitemap.xml"); //Build it…
  16.  
  17.          //Let’s compress it to gz
  18.         $data = implode("", file("./sitemap.xml"));
  19.         $gzdata = gzencode($data, 9);
  20.         $fp = fopen("./sitemap.xml.gz", "w");
  21.         fwrite($fp, $gzdata);
  22.         fclose($fp);
  23.  
  24.         //Let’s Ping google
  25.         $this->_pingGoogleSitemaps(base_url()."/sitemap.xml.gz");
  26.     }
  27.  
  28.     function _pingGoogleSitemaps( $url_xml )
  29.     {
  30.        $status = 0;
  31.        $google = ‘www.google.com’;
  32.        if( $fp=@fsockopen($google, 80) )
  33.        {
  34.           $req =  ‘GET /webmasters/sitemaps/ping?sitemap=’ .
  35.                   urlencode( $url_xml ) . " HTTP/1.1\r\n" .
  36.                   "Host: $google\r\n" .
  37.                   "User-Agent: Mozilla/5.0 (compatible; " .
  38.                   PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
  39.                   "Connection: Close\r\n\r\n";
  40.           fwrite( $fp, $req );
  41.           while( !feof($fp) )
  42.           {
  43.              if( @preg_match(‘~^HTTP/\d\.\d (\d+)~i’, fgets($fp, 128), $m) )
  44.              {
  45.                 $status = intval( $m[1] );
  46.                 break;
  47.              }
  48.           }
  49.           fclose( $fp );
  50.        }
  51.        return( $status );
  52.     }
  53.  
  54. }

Ricordando che attraverso il metodo della classe del plugin add_item,  possiamo utilizzarlo in cicli per poter aggiungere tutte le pagine dinamiche delle nostre sezioni, e di default inserire quelle statiche.

Riferimenti:

http://codeigniter.com/wiki/Google_Sitemaps/

http://www.phpclasses.org/browse/package/2612.html

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (1 voti, media: 5,00 di 5)
Loading ... Loading ...

Una risposta a “Codeigniter generazione Google Sitemap xml”

  1. Link Building Service  dice:

    31-07-2009 alle 12:51

    Thanks for providing valuable information on the topic. Keep posting

Lascia una commento

(*) campi obbligatori

Spam protection by WP Captcha-Free