Indexación en Ajax

Para alguien que me lo pregunto hace poco, una aclaración rápida sobre los términos indexación y Ajax.

Ajax es una solución excelente para añadir dinamismo y usabilidad en nuestras aplicaciones Web, pero tiene un gran problema: La indexación.

Si queremos conseguir muchas páginas vistas, lo primero que tenemos que hacer es tener un buen número de páginas indexadas por los buscadores (aka google). Y para que ésto suceda tenemos que poder asociar una URL a un contenido diferente.

Por ejemplo, si en un blog tuvieramos una única dirección index.php, que mediante Ajax, manipulando el DOM de la página va cambiando el contenido (cosa que he visto), google solamente se va a enterar de que tenermos una portada con unos contenidos estáticos y poco más. Sin embargo, si asociamos una URL (aunque sean parámetros con GET) a un contenido, tendremos una página distinta.

index.php?item=331 será distinta página que index.php?item=41

Esto es lo habitual en CMSs, o aplicaciones en general. Sin embargo con ajax, tendríamos un index.php, y todas las peticiones irían con el XMLHttpRequest
De esta forma, si desarrollamos una aplicación en Ajax que requiera de indexación, siempre tendremos que ofrecer el mismo contenido mediante el formato habitual de la petición GET con parámetros.

Otro factor a tener en cuenta es que los parámetros no son muy buenos amigos de los buscadores, entonces tenemos que encontrar una forma de cambiar la ristra de parámetros por una dirección estática y acabada en .htm ¿Cómo conseguimos esto?

Opción 1:

Indexación con mod_rewrite

: Mod rewrite es un modulo del servidor web apache, que permite tener una dirección “pseudoestática” que se convierte en una dirección con parámetros.
id est: miweb.com/ajax-y-la-indexacion-123.htm será convertida en miweb.com/index.php?post=123
Un pequeño manual para trabajar con mod rewrite.
Opción 2:

Indexación con páginas de error Error404.

El mod rewrite está bastante bien, y soporta incluso expresiones regulares, pero en ciertas ocasiones se puede quedar un poco corto, sobre todo si trabajamos con algún servidor donde no tenemos acceso a todas las funcionalidades. ¿Qué podemos hacer entonces?

El error404 es la página que devuelve un servidor cuando no encuentra el documento solicitado, y esta página puede ser personalizable. Es decir, que podríamos crear una página e404.php que gestiona los parámetros y redirige a donde toca.

id est: Solicitamos miweb.com/ajax-y-la-indexacion-123.htm. Esa página no existe, ergo el servidor devuelve un error 404. Busca en su configuración dónde está la página de error a mostrar, y la abre. Abre en el servidor una página php (e404.php) que interpreta. Entonces aquí, podemos desde hacer consultas a la BD, hasta “parsear” la URL que no existe, y sacar el número (123 en este caso) y convertirlo si hacer las búsquedas pertinentes con esos parámetros.

Esta segunda opción es algo más complicada, pero admite una lógica más extensa y un mayor control si nuestra aplicación es grande.

Nota: Se que este post es bastante básico y hay mucha información de esto por ahí, pero normalmente prefiero escribir un post aquí, que enviar un mail explicandolo.

Artículos relacionados