Google SiteMap personalizado con PHP y MySQL

Hace aproximadamente 3 semanas Google sacó un nuevo método o
sistema, para poder comunicar a su robot (googlebot) en que momento y
que páginas se han actualizado, cual es la importancia de la página,
cual es su frecuencia de actualización, y otros detalles más.

Google Sitemap con PHP y MySQL

El archivo que Google tiene que interpretar es de extensión .xml, muy simple y fácil de entender, su nombre es Sitemap.xml y su estructura es la siguiente:


<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
   <url>
      <loc>http://www.yoursite.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
 <loc>http://www.yoursite.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
 <loc>http://www.yoursite.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
</urlset>

Como ven, se trata de un fichero con muy pocas etiquetas, las cuales
se repiten por cada página. La etiqueta principal es el tag urlset, padre de todas las demás, luego una etiqueta url, que es el padre de las demás etiquetas que identifican a cada página, dentro de esta encontramos las etiquetas loc (dirección url de la página), lastmod (última fecha de actualización), chanfreq (frecuencia con que se actualiza la página), priority
(la prioridad de esa página con respecto a las demás). Debemos dejar en
claro que sólo las etiquetas padres y la loc son obligatorias, las
demás se recomiendan para optimizar la actualización de nuestras
páginas, pero son opcionales.

Conociendo esta estructura, lo que debemos hacer es crear un fichero
php, que a su vez nos cree el archivo "sitemap.xml" siguiendo las
pautas mostradas.

Un poco de PHP

Para distintos cms, como ya lo hemos comentado, se han publicado
scripts que crean el sitemap.xml, casos como wordpress o Movible Type
no tienen problemas. Pero, ¿Qué sucede con quienes no utilizamos estos
cms preconstruidos, sino por el contrario nos hemos creado uno? Pues
muy simple, nosotros debemos de creárnoslo. No sabes como empezar… no
te preocupes, que si gustas puedes ir a la sección descargas
y bajarte el código que he creado para este sitio, realmente recomiendo
usarlo, con tan sólo unos días de utilizarlo he recibido constantes
visitas de googlebot escaneando todos los ficheros que le indico.

No olvides

  1. Que después de descargar el código, tienes que adaptarlo a tu site,
    es algo tan simple como cambiar: la ruta al fichero que se contacta a
    la BD y la consulta propiamente dicha.
  2. El archivo sitemap.xml debe de crearse en el directorio raíz de tu site.
  3. Debes asignarle a sitemap.xml, permiso de escritura CHMOD 666, para que el script php lo pueda modificar.

La Consulta a la BD MySQL

La consulta a la Base de datos, como te darás cuenta, te selecciona
todos los ids y fechas de la tabla artículos en orden de publicación
más reciente. Seguidamente mediante la función SPRINTF
le asignamos un limite: mostrar los 7 primeros artículos seleccionados
en la consulta a la BD, esto lo instanciamos en la variable 1, y
creamos un array de esta variable. Luego hacemos lo mismo para mostrar
los siguientes 7 artículos, y posteriormente para los restantes. El
motivo de este distingo es el poder asignarle a los 7 primeros una
mayor prioridad que a los más pasados.

Esta consulta la puedes modificar, por ejemplo si tu tabla contiene
información sobre cual artículo es de mayor importancia. O crearte más
consultas e incluirlas en este fichero.

Nuestro objetivo: Crear el XML

Escribimos el fichero sitemap.xml mediante las funciones fopen, fwrite y fclose.

Vamos a ir sumando cada una de las etiquetas (toda la información) a
una sola variable llamada $sitemap, recuerda que debes respetar la
estructura ya mostrada.

Ahora, basta con ejecutar el código PHP y se actualizará el Sitemap.xml.

Por lo que debes crear desde tu panel de control, un link al fichero
sitemap.php, para que cada vez que actualicemos alguna página, lo
ejecutemos. Y en este encontrarás un link al fichero sitemap.xml, para
comprobar su actualización.

Pero aquí no acaba todo

Luego, de actualizar tu sitemap.xml, debes comunicarlo a Google, para esto entra a esta web, y con los datos de tu correo gmail podrás
entrar sin problemas, luego deberás poner la dirección url del archivo sitemap.xml, creando en tu cuenta, un enlace a éste. De esta manera,
cada vez que actualices tu site, deberás entrar a tu cuenta y con presionar un clic le comunicas a google que visite tu sitemap. Algo muy
parecido con los directorios de weblogs. Si todavía no tienes tu cuenta gmail, ponte en contacto o deja tu comentario.

Para descargar el script deben registrarse e iniciar sesión en Baluart.NET y luego regresar a este post. En realidad es muy simple de entender y personalizar… además que te sirve para saber como crear archivos xml, rss 1, rss2, u otros, pues el procedimiento es el mismo.

Gracias por el artic

Gracias por el articulo! necesitaba una breve explicacion de como hacer un sitemap.

Enviado por Carlos Trinidad (no verificado) el Jue, 04/27/2006 - 04:59.
Muy bien, tambi&eacu

Muy bien, también he encontrado este otro ejemplo de Sitemap con php para personas con CMS:http://elmartin.org/?m=textos&t=crear-un-sitemap-para-ser-indexado-en-los-buscadores-con-php&op=v&id=10

Enviado por Amancio (no verificado) el Mar, 12/05/2006 - 09:13.
Muy explicativo y ut

Muy explicativo y util para los que usam CMS. Nosotros, en la Revista www.Orkut.etc.br, hemos hecho nuestro sitio con el drupal, por eso ahora buscamos una solucion adecuada... Gracias.

Enviado por Orkut.etc.br (no verificado) el Vie, 05/11/2007 - 18:29.
Estoy realizando un

Estoy realizando un proyecto art

Enviado por David (no verificado) el Jue, 07/12/2007 - 15:27.
de antemano muchas g

de antemano muchas gracias por la explicacion en vuestro articulo, es justamente lo que estaba buscando. Estoy tratando de modificar el script que habeis puesto para descargar, pero haceis un include a un fichero que me imagino teneis vosotros para conectar a la base de datos.// Nos conectamos a la Base de Datosrequire_once('Connections/connBD.php');// Consulta a la Base de Datosmysql_select_db($database_connBD, $connBD);$consulta = "SELECT id, date FROM blog_articulos ORDER BY id DESC"; // 7

Enviado por silvia (no verificado) el Jue, 08/02/2007 - 07:33.
Tengo el mismo probl

Tengo el mismo problema y duda de Silvia, adem

Enviado por Jaime (no verificado) el Dom, 12/02/2007 - 09:40.
el fichero conBD.php

el fichero conBD.php supongo q lo

Enviado por txuki (no verificado) el Dom, 01/06/2008 - 08:42.
Les agradezco toda la

Les agradezco toda la informacion de su web. Estoy tratando de aprender para resolver el tema de que los robots de Google tomen info de mi base de datos.
Esta roto el link de scripts hecho por Uds. ¿podrian facilitarmelo por favor?
Si es posible, lo intentare con el
Un abrazo
Brinda Mair

Enviado por Brinda (no verificado) el Sáb, 05/10/2008 - 16:28.
Brinda, inicia sesión y luego

Brinda, inicia sesión y luego regresa a este post para descargar el script.

Saludos.

Enviado por baluart el Sáb, 05/10/2008 - 20:42.

Deja tu comentario

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

Suscríbete

  • Suscribete a nuestro feed
  • Add to Google Reader or Homepage
  • Subscribe in NewsGator Online
  • Add to My AOL
  • Subscribe in Bloglines
  • Add to netvibes