Acabo de terminar de programar, testear y poner en servicio un pequeño script en php, que me permitire generar un archivo xml para que el robot de google lo procese, y así, indexar las páginas de una web mucho más rápido.

No lo utilizo en el blog, por la sencilla razón de que tengo un plugin que lo realiza automáticamente:http://wordpress.org/extend/plugins/google-sitemap-generator/. Este script sirve para webs o bien hechas desde cero sin cms de ningún tipo, o bien para cms modificados que requieran un sitemap especial.

La estructura que el archivo sitemap.xml debe tener es el siguiente:


< ?xml version="1.0" encoding="UTF-8"?>
< urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
< url>
< loc>http://www.example.com/
< lastmod>2005-01-01
< changefreq>monthly
< priority>0.8

Aunque recomiendo la siguiente cabecera:


< ?xml version='1.0' encoding='UTF-8'?>


< loc>http://www.example.com/
< lastmod>2005-01-01
< changefreq>monthly
< priority>0.8


Las etiquetas , y son opcionales.

Hay carácteres que deben ser formateados a código ascii:

  • Símbolo de unión (&) sustituido por &
  • Comillas simples () sustituido por '
  • Comillas () sustituido por "
  • Mayor que (>) sustituido por >
  • Menor que (< ) sustituido por <

Las rutas deben ser siempre absolutas del tipo: http://www.midominio.com

El archivo sitemap.xml debe estar en la raiz del sitio, si lo que quieres es mostrar todas las urls del sitio, sino puedes guardarlo en una carpeta, pero los links que tengan una ruta distinta a la de esa carpeta generarán un error, ya que google considerará que no tienes permiso para acceder a esa carpeta.

Muy importante es la codificación del archivo, debe ser UTF-8, sino google no lo leerá correctamente.

Ejemplo:


< ? $file = fopen("../sitemap.xml", "wb"); fwrite($file, '');
fwrite($file, '');

fwrite($file, '');
fwrite($file, 'http://www.midominio.com');
fwrite($file, '
');
fwrite($file, '');

fclose($file);

?>

Más información: