Google SiteMap personalizado con PHP y MySQL

baluart26 Junio 2005 - 12:00am 22 comentarios
Enviar por Email Imprimir

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 al final de este artículo 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.

Comentarios

Imagen de Carlos Trinidad

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

Imagen de Amancio
Imagen de Orkut.etc.br

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.

Imagen de David

Estoy realizando un proyecto art

Imagen de silvia

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

Imagen de Jaime

Tengo el mismo problema y duda de Silvia, adem

Imagen de txuki

el fichero conBD.php supongo q lo

Imagen de Brinda

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

Imagen de baluart
baluart

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

Saludos.

Imagen de Augusto Cando

se te agradece muy buena la expliaion muy bueno felicitaciones sigue así¡¡¡ ..

Imagen de Richard Olives
Imagen de softmaster
softmaster

Hola que tal.. muy bueno el script !!!

Ahora hay alguna manera automatica de ejecutar el script sitemap.php para actualizar el sitemap.xml..
Me refiero a que sea automatico tambien la ejecusion del sitemap.php .. no se cada 2 horas que se ejecute el sitemap.php .. Me explico ??

Imagen de Milton

Hola amigos pues he leido el comentario pero no soy tan experto para entenderlo si alguien me puede ayudar a indexar mi pagina, es mi primer proyecto web aun me falta mucho por aprender pues la he hecho empiricamente pero porfa ayudenme a indexarla por lo menos en el buscador de google.

Imagen de AlanB
AlanB

Gracias por el script, por la explicacion que diste es impresionante como te facilita las cosas...
El tema es que lo estoy probando y no logro dar con la configuracion, lo que deduzco es lo siguiente...

require_once('Connections/connBD.php');

Esta linea es la que hace conneccion con la base de datos, mejor dicho ejecuta el archivo connDB.php, el cual tiene la informacion de la UserDB, HostDB y PassDB... Necesarios para la conexion...

Si alguien me puede ayudar estare muy agradecido... mi mail es el siguiente alanbi86@gmail.com

Imagen de galax13a

hey amigo no nos cumpliques la vida, tu aporte es bueno pero deberias de dejarnos un link limpio si tener k registrarnos ni nada o por lo menos publique el codigo aqui , de todos modos gracias por tomarte la molestia ..

Imagen de galax13

si alguien es tan amable que suba este scrip a rapishare o algo, ya que al momenton de mi registro no permite que mi correo sea .es que gran error

Imagen de Carlos Dk

Muchas gracias por la explicación.

Estaba desarrollando un generador de sitemap.xml, pero en vez de llamar al script cuando el usuario lo desee, prefiero hacer la llamada cuando guarde algún registro, de esa manera siempre estará actualizado, sin faltas.

http://www.dkreativo.es

Imagen de segma
segma

SI en vez de crear un fichero XML, se pone como sitemap, en herramientas de google, el archivo que genera este XML "sitemap.php" y que haga un echo del xml, ¿Esto no supondría el no tener que clicar manualmente el sitemap en este apartado? ya que el google boot lo ejecutaría y le mostraría el sitemap, puede ser así?
Saludos!!

Imagen de vicentesabuco

Muy bien esquematizado y explicado. Me va a ser de mucha utilidad. Gracias!!!

Imagen de francisco cardoza

gracias por esta útil información, muy bien explicado, justo lo que buscaba.

Imagen de xava
xava

Muchas gracias me sirvió mucho, no era exactamente lo que necesitaba pero me sirvió de base.

Imagen de emuleteca
emuleteca

no veo donde descargarlo . Graciassssss

Tutoriales

Cómo descargar videos de VK.com
En este artículo voy a explicar como descargar videos y películas...
Descargar Facebook Móvil Gratis
Por si aún no lo han hecho, es posible descargar Facebook Móvil...
Cómo generar tráfico web con las redes sociales - Paso a Paso
Muchas empresas están publicando contenidos como la forma de crear...

Artículo Recomendado

3 Tips cruciales para recuperar archivos eliminados
¿Te imaginas perder el trabajo de toda una semana en tan solo unos segundos? Todos hemos pasado por este problema. Quizás eliminamos por error un archivo importante o lo borramos sin pensar que era valioso para otro... más