Miércoles, 7 de octubre de 2009
Hoy nos entusiasma proponer un nuevo estándar para que los sitios web basados en AJAX sean rastreables. Esto beneficiará a los webmasters y a los usuarios al hacer que el contenido de los sitios web ricos e interactivos basados en AJAX sea universalmente accesible a través de los resultados de búsqueda en cualquier buscador que decida participar. Creemos que poner este contenido a disposición para el rastreo y la indexación podría mejorar significativamente la Web.

Aunque los sitios web basados en AJAX son populares entre los usuarios, los motores de búsqueda tradicionalmente no pueden acceder a ninguno de sus contenidos. La última vez que lo comprobamos, casi el 70 % de los sitios web que conocemos utilizan JavaScript de una forma u otra. Por supuesto, la mayor parte de ese JavaScript no es AJAX, pero cuanto mejor puedan los motores de búsqueda rastrear e indexar AJAX, más podrán los desarrolladores añadir funciones más ricas a sus sitios web y seguir apareciendo en los motores de búsqueda.
Algunos de los objetivos que queríamos lograr con esta propuesta eran:
- Se requieren cambios mínimos a medida que crece el sitio web
- Los usuarios y los motores de búsqueda ven el mismo contenido (sin encubrimiento o cloaking)
- Los motores de búsqueda pueden enviar a los usuarios directamente a la URL de AJAX (no a una copia estática)
- Los propietarios de sitios tienen una forma de verificar que su sitio web AJAX se procesa correctamente y, por lo tanto, que el rastreador tiene acceso a todo el contenido
Así es como los motores de búsqueda rastrearían e indexarían AJAX en nuestra propuesta inicial:
- Modificar ligeramente los fragmentos de URL para páginas AJAX con estado
Las páginas AJAX con estado muestran el mismo contenido cuando se accede a ellas directamente. Estas son páginas a las que se podría hacer referencia en los resultados de búsqueda. En lugar de una URL como
https://example.com/page?query#state
nos gustaría proponer la adición de un token para hacer posible el reconocimiento de estas URL:
https://example.com/page?query#[FRAGMENTTOKEN]state. Basándonos en una revisión de las URL actuales en la Web, proponemos utilizar “!” (un signo de exclamación) como token para esto. La URL propuesta que se podría mostrar en los resultados de búsqueda sería entonces:
https://example.com/page?query#!state. - Utilizar un navegador sin interfaz gráfica (headless browser) que genere una captura HTML en su servidor web
El navegador sin interfaz gráfica se utiliza para acceder a la página AJAX y genera código HTML basado en el estado final del navegador. Solo las URL etiquetadas especialmente se pasan al navegador sin interfaz gráfica para su procesamiento. Al hacer esto en el lado del servidor, el propietario del sitio web tiene el control del código HTML que se genera y puede verificar fácilmente que todo el JavaScript se ejecuta correctamente. Un ejemplo de dicho navegador es
HtmlUnit, un “navegador sin interfaz gráfica de usuario para programas Java” de código abierto. - Permitir que los rastreadores de los motores de búsqueda accedan a estas URL omitiendo el estado (escape)
Dado que los fragmentos de URL nunca se envían con solicitudes a los servidores, es necesario modificar ligeramente la URL utilizada para acceder a la página. Al mismo tiempo, esto le indica al servidor que utilice el navegador sin interfaz gráfica para generar código HTML en lugar de devolver una página con JavaScript. Otras URL existentes, como las utilizadas por el usuario, se procesarían normalmente, pasando por alto el navegador sin interfaz gráfica. Proponemos escapar la información de estado y añadirla a los parámetros de consulta con un token. Utilizando el ejemplo anterior, una de estas URL sería
https://example.com/page?query&[QUERYTOKEN]=state. Basándonos en nuestro análisis de las URL actuales en la Web, proponemos utilizar_escaped_fragment_como token. La URL propuesta se convertiría entonces en
https://example.com/page?query&_escaped_fragment_=state. - Mostrar la URL original a los usuarios en los resultados de búsqueda
Para mejorar la experiencia del usuario, tiene sentido remitir a los usuarios directamente a las páginas basadas en AJAX. Esto se puede lograr mostrando la URL original (como
https://example.com/page?query#!statede nuestro ejemplo anterior) en los resultados de búsqueda. Los motores de búsqueda pueden verificar que el texto indexable devuelto a Googlebot sea el mismo o un subconjunto del texto que se devuelve a los usuarios.

En resumen, comenzando con una URL con estado como
https://example.com/dictionary.html#AJAX, podría estar disponible tanto para los rastreadores como para los usuarios como https://example.com/dictionary.html#!AJAX la cual podría ser rastreadada como
https://example.com/dictionary.html?_escaped_fragment_=AJAX la cual a su vez se mostraría a los usuarios y se accedería a ella como https://example.com/dictionary.html#!AJAX
Actualmente estamos trabajando en una propuesta y una implementación de prototipo. Sus comentarios son muy bienvenidos; por favor, añada sus comentarios a continuación o en nuestro
Foro de ayuda para webmasters. ¡Gracias por su interés en hacer que la web basada en AJAX sea accesible y útil a través de los motores de búsqueda!
Entrada de blog por
John Mueller, analista de tendencias de webmasters, Google Zúrich
Cómo lo aplicamos
Google announcements age. We keep this post here for the record, and we note for clients whether the behaviour it describes still applies today or has since been superseded.
Servicios relacionados