Acerca de los Sitemaps

Como ya hemos platicado antes, los sitemaps son archivos xml que permiten a los motores de busqueda indexar mas facilmente nuestros sitios web, la verdad es, que aunque el tema no es muy complejo la mayoria tenemos aun algunas cosas por aprender acerca de los sitemaps, para esto les traigo los puntos mas importantes acerca de ellos:

¿Que es un sitemap?

Un sitemap es un archivo XML el cual es utilizado por los motores de busqueda para indexar mas facilmente un sitio web, basicamente el archivo contiene una lista con todas las url de un sitio web, el sitio web http://www.sitemaps.org contiene informacion muy importante acerca de los sitemaps y su formato.

¿Como se usan los sitemaps?

Cuando un motor de busqueda esta indexando un sitio web y esncuentra un archivo sitemap, este es usado para ayudar en la indexacion del sitio web, tambien es posible enviar manualmente un sitemap a los motores de busqueda, es posible hacerlo mediante un “ping” y con herramientas como Google Webmaster Tools.




¿Tengo que reenviar mi sitemap cada vez que actualizo mi sitio web?

Los motores de busqueda verificaran tus sitemaps regularmente, sin embargo, si es recomendable reenviar un sitemap despues de actualizar un sitio web.

¿Existe alguna regla sobre el nombre del sitemap?

No, el sitemap se puede nombrar como sea, ni siquiera es necesario que tenga extension xml, sin embargo debes asegurarte de que el tipo de archivo (mime type) sea correcto, debe ser “text/xml”.

Sitemaps y robots.txt

Es posible usar el archivo robots.txt para informar a los motores de busqueda donde se encuentra tu sitemap, simplemente agregaremos una linea extra dentro de nuestro archivo robots.txt como la siguiente:

Sitemap: http://www.example.com/sitemap.xml

Sitemaps y Google

Google cuenta con un servicio llamado Google Webmaster Tools el cual permite dar de alta sitemaps y ademas nos da algunas estadisticas de las paginas enviadas contra las indexadas entre otras cosas.

¿Necesito una cuenta de Google para enviar mis sitemaps?

No necesariamente, sin embargo es muy recomendable el uso de Webmaster Tools, en caso de que no tengas cuenta con Google puedes usar el servicio de ping para enviar un sitemap.

¿Cual es el tamaño maximo de un sitemap en Google?

Un sitemap puede contener hasta 50,000 direcciones o pesar 10 MB, sin embargo es posible dividir tu sitio en varios sitemaps mas pequeños que administren seccion del sitio web.

¿Puedo usar un RSS como sitemap con Google?

Si, Google acepta RSS 2.0 y Atom 0.3 como sitemaps validos, sin embargo la idea de un sitemap es tener todas las paginas de un sitio web y no solo las ultimas 10 o 20.

¿Como puedo saber si un sitemap es correcto?

De nuevo la recomendacion es usar Webmaster Tools, cuando un sitemap es enviado mediante esta herramienta, Google te dira si es que existe algun error con el. Tambien es buena idea usar algun validador de XML para revisar la estructura del sitemap.

Los mensajes de error mas frecuentes son los siguientes:

“This url is not allowed for a sitemap at this location”

Este error indica que tu sitemap contiene url’s no validas para su contexto, es decir, un sitemap solo puede contener url’s dentro del mismo dominio y dentro del mismo directorio(o subdirectorios del directorio), un sitemap ubicado en el directorio raiz podria contener todas las url’s del sitio pero un sitemap dentro de un directorio no podria contener url’s de nivel superior.

“Invalid date”

Este error indica que alguna de tus url’s contiene una fecha de modificaciòn invalida, los sitemaps requiren el uso de fechas en formanto ISO-8601 encoding el cual tiene 2 variantes, aunque para facilitar las cosas yo les recomiendo usar este formato:

2010-02-24 (YYYY-MM-DD)

“We couldn’t find your verification file.”

Cuando ligas un sitio web con Webmaster Tools, Google te pide que verifiques la propiedad del sitio, es importante que mantengas el metodo de verificacion activo para que Google verifique que sigues siendo el propietario del sitio web.

En caso de que aun tengan dudas les dejo estos sitios web de referencia:

JQuery: Manejadores de eventos y callbacks en OOP

Dos cosas basicas al momento de programar con JQuery son el usar diversos manejadores de eventos (event handler) y llamar funciones en repuesta a algo, los llamados callback, muchos son los usos que tenemos para estas 2 cosas, desde controlar clicks hasta realizar acciones en respuesta a un llamado ajax, esto es algo muy comun en JQuery, sin embargo, cuando estamos programando con objetos, debemos tener en cuenta como funciona el contexto dentro de JQuery.




Por ejemplo aqui tenemos un manejador de eventos muy simple:

google.load("jquery", "1");

function OnLoad(){
$('#content').html('Click aqui');
$('#content').click(function() {
alert('Manejador del evento .click()');
});
}

google.setOnLoadCallback(OnLoad);

Muy bien, este ejemplo fue muy sencillo y funciona en caso de que queramos usar funciones para manejar eventos, ahora, si en lugar de funciones quisieramos usar metodos de un objeto, probablemente intentariamos usar algo como esto:

google.load("jquery", "1");

function OnLoad(){
$('#content').html('Hola mundo');
c = new Class1();
$('#content').click(c.hi);
}

Class1 = function(){
this.text = "Hola";
this.hi = function() {
alert(this.text);
};
}

google.setOnLoadCallback(OnLoad);

Desafortunadamente este codigo no dara el resultado esperado, simplemente al dar click arrojara un alert que dice “undefined” y no el valor “Hola” que esperabamos, esto sucede debido a que el manejador de evento esta ligado al metodo de la clase en si y no al metodo de la instancia que creamos para este proposito, es decir, al activar el manejador del evento, el contexto ya no es el esperado…

Afortunadamente JQuery 1.4 ya tiene una solucion para este problema y es el uso de la funcion jQuery.proxy (ó $.proxy) la cual nos permite corregir esta perdida de contexto, uno de los usos de esta funcion consiste en enviar en el primer parametro el metodo que queremos disparar y en el segundo el objeto que sera utilisado como “this” cuando el metodo manejador sea disparado.

Este ejemplo debe funcionar correctamente:

google.load("jquery", "1");

function OnLoad(){
$('#content').html('Hola mundo');
c = new Class1();
$('#content').click($.proxy(c.hi, c));
}

Class1 = function(){
this.text = "Hola";
this.hi = function() {
alert(this.text);
};
}

google.setOnLoadCallback(OnLoad);

Esto funciona tanto para manejadores de eventos, como para callbacks, los ejemplos que tenemos aqui pueden ser probados en Google Code Playground, espero sea de ayuda… saludos

Usar un “Ping” para actualizar tu Sitemap en Google, Yahoo y Bing

Los sitemaps te ayudan a informar a los motores de busqueda cuales son las paginas que deben rastrear en tu sitio web, los sitemaps mejoran la manera en la que los motores de busqueda indexan un sitio web al dar informaciòn explicita acerca de un sitio web, por ejemplo, si existen url’s nuevas o si algunas han sido actualizadas.

Sabemos que no hay forma de garantizar si un sitio web sera indexado, o en que tiempo sera indexado, sin embargo el uso de sitemaps incrementa la probabilidad de ser indexado y tambien la velocidad de indexaciòn de un sitio web.

Cuando publicamos contenido nuevo en nustro sitio web o blog, seria una excelente idea poder avisar a los motores de busqueda lo mas pronto posible que nuestro sitio web ha sido actualizado y les tengo una excelente noticia, esto es posible mediante un metodo llamado “ping” el cual esta implementado en la mayoria de los motores de busqueda.

En este post nos enfocaremos en los 3 motores de busqueda principales y como realizar un ping de sitemaps a ellos, en los 3 casos es posible simplemente escribir la url en un navegador y al dar enter el sitemap sera enviado, en caso de que tengas control de tu aplicacion web podrias automatizar esto con algun curl o algo asi, las url de pings son las siguientes:

Bing:




http://www.bing.com/webmaster/ping.aspx?siteMap=[your sitemap web address].
Ejemplo para este sitio web:

http://www.bing.com/webmaster/ping.aspx?siteMap=http://blog.hectorbenitez.com/sitemap.xml

Google

http://www.google.com/webmasters/sitemaps/ping?sitemap=http://www.example.com/sitemap-file.xml

Ejemplo para este sitio web:

http://www.google.com/webmasters/sitemaps/ping?sitemap=http://blog.hectorbenitez.com/sitemap.xml

Yahoo

http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=YahooDemo&url=http://www.domain.com/sitemap.xml

Ejemplo para este sitio web:

http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=YahooDemo&url=http://blog.hectorbenitez.com/sitemap.xml

En todos los casos, no es estrictamente necesario reenviar los sitemaps cada vez que cambie tu sitio web ya que los buscadores actualizan automaticamente los sitemaps, sin embargo, es una buena recomendacion para tratar de que tus paginas sean indexadas mas rapidamente.

En WordPress podemos automatizar el envio de los sitemaps usando los servicios de actualizacion agregando las url en la seccion Ajustes->Escritura->Servicios de Actualizacion, existen otros muchos servicios a los que puedes hacer ping para informar que tu sitio web a sido actualizado como pingomatic, feedburner o technorati, pero esto sera material para otro post, Saludos…

Global State and Singletons by GoogleTechTalks

Les dejo aqui un excelente video de Google Tech Talks el cual habla sobre el uso de globales y el patron de diseño singleton, esta muy interesante, saludos a todos…

Cuanto falta para año nuevo? Google te lo dice…

En esta ocacion les quiero platicar de un detalle muy simpatico que Google tiene para nosotros, es un pequeño “huevo de pascua” que se activa al apretar el boton “I´m feeling lucky” dejando en blanco el campo de busqueda, aparecera un contandor que nos indica cuantos segundos faltan para el proximo año 2010, aunque esto solo funciona en Google.com en ingles es un buen detalle de Google…

Prueba la nueva interfaz de Google

Recientemente hubo noticias acerca de que Google planeba cambiar la interfaz de su motor de busquedas, ya existian por ahi algunas impresiones de pantalla que mostraban resultados de las busquedas con una nueva barra lateral similar a la que ya usa Bing, tambien existen algunos cambios con los iconos y los botones que le dan una vista diferente a Google…

google-0911

Para probar esta nueva cara de Google tienes que hacer lo siguiente:

1. Visita www.google.com
2. Ingresa el siguiente codigo de javascript en la barra de direcciones y presiona enter:


javascript:void(document.cookie="PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com");

3.Regresa a www.google.com y tendras la nueva interfaz de Google, en caso de que te lleve a alguna version de Google de tu pais, por ejemplo www.google.com.mx da click en el link que dice “Google.com in English”

Ahora si, ya puedes probar el nuevo Google y dar tu opinion al respecto… saludos

Google wave: teoria contra practica

Nada lo explica mejor…
wave

Incrustar documentos en la web, gracias a Google

Recientemente google puso a nuestra disposición un visor de presentaciones y documentos PDF, es un servicio orientado a Google Docs obviamente, pero en este caso ellos nos permiten usar cualquier archivo que este en la web, es algo muy simple, solamente necesitamos incrustar el siguiente código en nuestra web:

<iframe src="http://docs.google.com/gview? url=http://infolab.stanford.edu/pub/papers/google.pdf &embedded=true" style="width:600px; height:500px;" frameborder="0"></iframe>

La verdad es que esto no es un servicio nuevo, pero siempre es interesante el ver que características podría agregar google. Saludos.

Respuesta de la comunidad PHP a Google: Hagamos mas rapida la web…

Despues de que google publicara su articulo “Hagamos mas rapida la web” del cual ya hablamos en un post anterior, resulta que un grupo de la comunidad de PHP contesta que varios de los consejos para acelerar aplicaciones en PHP que ofrece Google ya no son efectivos…

Entre las respuetas mas interesantes se encuentra una explicación acerca de la funcion “copy-on-write” de PHP y algunas caracteristicas del uso de comillas en strings, la verdad resulta interesante, no dejen de leerlo…

google-groups-logo

Para ser sincero, la mayoria de los tips resultan mas notorios dependiendo de la aplicación, muchos de estos se convierten en tips de micro-aceleración de PHP que resultan insignificantes en un gran numero de aplicaciones, sin embargo les recomiendo que los pongan en practica en medida de sus posibilidades (aunque no deberian perder mucho tiempo cambiando el tipo de comillas que usan en sus aplicaciones existentes, por ejemplo)…

Volviendo al tema de las respuetas, lo mejor que podria pasar seria que Zend(los creadores del motor de PHP), nos resolviera estas dudas y nos aclarara los detalles acerca de esta controversia…

Pagina de la respuesta

Experimentando con Google Chrome…

Pues google nos presenta esta extraña pagina que nos permite jugar con javascript, mueves el navegador, arrastras y das click en una pagina que si bien no sirve de mucho se ve muy interesante, supongo que originalmente esta planeada para demostrar el motor de javascript de su navegador, aunque en realidad funciiona con otros browsers, la neta no sirve de nada pero esta buena para perder unos 5 minutos de tu dia…

chrome-ex

Link: Chrome Experiments