Hacer ping a buscadores en php

Hacer ping a buscadores en php

Una manera sencilla de facilitar el trabajo de los buscadores, es actualizar el sitemap y realizar un ping cuando actualizamos o modificamos el contenido de nuestra web. En el caso de utilizar wordpress, tenemos plugins específicos que realizan esta función.

Pero vamos a ver un sencillo método que podemos incluir en nuestras propias paginas web desarrolladas en php.

El script consta de dos partes:

La primera, es la encargada de generar nuestro fichero sitemap.xml, y se ejecutara cuando modifiquemos el contenido de la web desde el panel de control (por ejemplo, insertamos, editamos o eliminamos una noticia).

La segunda, se encarga de realizar los ping a los buscadores, indicando la ruta del fichero sitemap.xml.

Generación del sitemap.xml

// Cargamos la clase de acceso a la BD
@include_once("include/MySQL.class.php");

// Cargamos el ficheros con los datos de configuracion
@include_once("include/config.inc.php");

// Creamos objeto Base de datos
$BD= & new MySQL($servidor,$usuario,$pass,$bd);		

$BD->conectarBD();

// Consulta a la Base de Datos
$res=$BD->consultaSQL("SELECT * FROM noticias ORDER BY fecha DESC LIMIT 10"); 

while ($fila=$res->extraeFila()){
	$noticias[]=$fila;
}

// Instanciamos las etiquetas y valores en una sola variable
$sitemap ="< ?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
$sitemap .="<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\r\n";
$sitemap .="<url>\r\n";
$sitemap .="<loc>http://www.midominio.com</loc>\r\n";
$sitemap .="<changefreq>daily</changefreq>\r\n";
$sitemap .="<lastmod>".$noticias[0]['fecha']."</lastmod>\r\n";
$sitemap .="<priority>1.0</priority>\r\n";
$sitemap .="</url>\r\n";

foreach($noticias as $noticia){
	$sitemap .="<item>\r\n";
	$sitemap .="<url>\r\n";
	$sitemap .="<loc>http://www.midominio.com/noticias/".$noticia['id']."</loc>\r\n";
	$sitemap .="<lastmod>".$noticia['fecha']."</lastmod>\r\n";
	$sitemap .="<priority>0.8</priority>\r\n";
	$sitemap .="</url>\r\n";
	$sitemap .="</item>\r\n";
}
$sitemap .="</urlset>\r\n";

//escribimos el archivo sitemap.xml en el directorio raíz
$fichero= fopen("sitemap.xml" , "w");

// escribimos la variable creada en el fichero sitemap.xml
fwrite($fichero, $sitemap); 

// cerramos el fichero sitemap.xml
fclose($fichero);

$BD->cierraBD();

Realizar ping a los buscadores
Hacemos una llamada a los servicios de ping de los buscadores, indicándole la ruta del sitemap.xml de nuestro dominio (cambiar http://www.midominio.com/sitemap.xml por nuestra propia ruta).

//Hacemos un ping a las las url de los buscadores para avisar Google, Yahoo y Ask
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=http://www.midominio.com/sitemap.xml');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/webmasters/sitemaps/ping?sitemap=http://www.midominio.com/sitemap.xml');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec();
curl_close($ch); 				

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://submissions.ask.com/ping?sitemap=http%3A//www.midominio.com/sitemap.xml');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec();
curl_close($ch);

Con este código daremos un toque a los principales buscadores, indicándoles que se ha modificado nuestra web, y dandole la ruta del sitemap.xml para facilitarle la indexación de los nuevos contenidos.

Contenidos Relacionados

Tags: PHP, snippets