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.
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&desc=vacation_hawaii</loc>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.yoursite.com/catalog?item=73&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
- 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. - El archivo sitemap.xml debe de crearse en el directorio raíz de tu site.
- 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 articulo! necesitaba una breve explicacion de como hacer un sitemap.
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
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.
Estoy realizando un proyecto art
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
Tengo el mismo problema y duda de Silvia, adem
el fichero conBD.php supongo q lo
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
Brinda, inicia sesión y luego regresa a este post para descargar el script.
Saludos.
se te agradece muy buena la expliaion muy bueno felicitaciones sigue así¡¡¡ ..
tu nombre en el lugar de el logo de Google,Simpsons,Futbol,Juanes,Shakira,Tekken,Juanes,y 500 logos más
miralos en el siguiente enlace:
http://www.googlemanias.webcindario.com/esp/name.htm
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 ??
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.
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
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 ..
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
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
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!!
Muy bien esquematizado y explicado. Me va a ser de mucha utilidad. Gracias!!!
gracias por esta útil información, muy bien explicado, justo lo que buscaba.
Muchas gracias me sirvió mucho, no era exactamente lo que necesitaba pero me sirvió de base.
no veo donde descargarlo . Graciassssss