Clicky

Cómo optimizar los sitios de una sola página para los buscadores

Cómo optimizar los sitios de una sola página para los buscadores

Personalización de contenidos para los rastreadores

Cuando Google y otros motores de búsqueda indexan sitios web, no ejecutan JavaScript. Esto parece poner a los sitios de una sola página - muchos de los cuales se basan en JavaScript - en una tremenda desventaja en comparación con un sitio web tradicional.

No estar en Google podría significar la muerte de un negocio, y este desalentador escollo podría tentar a los desinformados a abandonar por completo los sitios de una sola página.

Sin embargo, los sitios de una sola página en realidad tienen una ventaja sobre los sitios web tradicionales en optimización para los motores de búsqueda (SEO), ya que Google y otros han reconocido el desafío. Ellos han creado un mecanismo para los sitios de una sola página, no sólo para tener indexadas sus páginas dinámicas, sino también para optimizar sus páginas específicamente para los rastreadores.

En este artículo nos centraremos en Google, pero otros grandes motores de búsqueda como Yahoo y Bing soportan el mismo mecanismo.

Cómo rastrea Google un sitio de una sola página

Cuando Google indexa un sitio web tradicional, su rastreador web (llamado Googlebot) explora primero los índices del contenido de la URL de nivel superior (por ejemplo, www.mihome.com). Una vez completado esto, entonces sigue todos los enlaces en esa página y también los índices de esas páginas. A continuación, sigue los enlaces en las páginas siguientes, y así sucesivamente. Con el tiempo indexa todo el contenido del sitio y dominios asociados.

Cuando el Googlebot intenta indexar un sitio de una sola página, todo lo que ve en el HTML es un recipiente vacío (por lo general un div o etiqueta del cuerpo vacía), así que no hay nada para indexar y sin vínculos que rastrear y ¿qué indexa del sitio en consecuencia? (en la "carpeta" circular redonda sobre el suelo al lado de tu escritorio).

Si ese fuera el final de la historia, sería el final de los sitios de una sola página para muchas aplicaciones web y sitios. Afortunadamente, Google y otros motores de búsqueda han reconocido la importancia de los sitios de una sola página y proporcionan herramientas para permitir a los desarrolladores aportar información de búsqueda al rastreador que puede ser mejor que los sitios web tradicionales.

Cómo hacer una página web fácil de rastrear

La primera clave para que nuestro sitio de un sola página sea rastreable es darse cuenta de que nuestro servidor puede saber si una solicitud se formula por un crawler o por una persona que utiliza un navegador web y responder en consecuencia. Cuando nuestro visitante es una persona que utiliza un navegador web, responde de forma normal, pero para un rastreador devuelve una página optimizada para mostrar al rastreador exactamente lo que queremos, en un formato que el rastreador puede leer fácilmente.

Para la página principal de nuestro sitio ¿qué optimizamos para que el crawler lo pueda ver?. Lo que nos gustaría que apareciese en los resultados de búsqueda probablemente será el logotipo u otra imagen principal. Algunos SEO optimizan texto explicando lo que es o hace el sitio, y una lista de enlaces HTML a sólo aquellas páginas que deseamos que Google indexe. Lo que no tiene la página es algún estilo CSS o una compleja estructura HTML que aplicar. Tampoco tiene ningún JavaScript o enlace a áreas del sitio que no queremos que indexe Google (como páginas Nota legal u otras páginas a las que no queremos que la gente entre a través de una búsqueda en Google). La siguiente imagen muestra cómo puede ser presentada una página en un navegador (a la izquierda) y al rastreador (a la derecha).

Cómo optimizar los sitios de una sola página para los buscadores

Personalización de contenidos para los rastreadores

Por lo general, sitios de una sola página enlazan con contenido diferente mediante un golpe de almohadilla (#!). Estos enlaces no se siguen de la misma manera por la gente y los rastreadores.

Por ejemplo, si en nuestra web de una sola página un enlace a la página de usuario se parece a /index.htm#!page=user:id,123, el rastreador vería la #! y sabrá que tiene buscar una página web con la URL /index.htm?_escaped_fragment_=page=user:id,123 . Sabiendo que el rastreador seguirá el patrón y buscará esta URL, podemos programar el servidor para responder a esta solicitud con una instantánea HTML de la página que normalmente se representa mediante JavaScript en el navegador.

Esa instantánea será indexada por Google, pero cualquier persona al hacer click en nuestro anuncio en los resultados de búsqueda de Google será llevado a la página /index.htm#!page=user:id,123 . La web de una sola página JavaScript tomará allí el relevo y representará la página como se esperaba.

Esto proporciona a los desarrolladores web de una sola página la oportunidad de adaptar su sitio específicamente para Google y específicamente para los usuarios. En lugar de tener que escribir un texto que sea a la vez legible y atractivo para una persona y comprensible por un rastreador, las páginas pueden ser optimizadas para cada uno sin tener que preocuparse por el otro. El camino del rastreador a través de nuestro sitio se puede controlar, lo que nos permite dirigir a la gente a partir de resultados de búsqueda de Google a un conjunto específico de páginas de entrada. Esto requiere más trabajo por parte del ingeniero de desarrollo, pero puede tener grandes ventajas en términos de la posición en el resultado de búsqueda y retención de clientes.

Detección del web crawler de Google

En el momento de escribir esto, el robot de Google se anuncia como un rastreador en el servidor al hacer peticiones con una cadena de agente de usuario como Googlebot/2.1 (+http://www.googlebot.com/bot.html). Una aplicación Node.js puede comprobar esta cadena de agente de usuario en medio del software y enviar de vuelta al rastreador la página principal optimizada si coincide con la cadena de agente de usuario. De lo contrario, podemos manejar la solicitud normalmente.

Esta situación parece que sería complicada de probar, ya que no somos dueños de un Googlebot. Sin embargo, Google ofrece un servicio a disposición del público para hacer esto para los sitios web en producción como parte de las Herramientas para webmasters, pero una manera más fácil de probar es reemplazar nuestra cadena de agente de usuario. Esto solía requerir algún hackery de línea de comandos, pero Chrome Developer Tools hace que sea tan fácil como pulsar un botón y marcar la casilla:

1. Abre las Herramientas para desarrolladores de Chrome, haz clic en el botón con tres líneas horizontales a la derecha de la barra de herramientas de Google, y luego selecciona Herramientas en el menú y haz clic en las Herramientas para desarrolladores.

Chrome, Herramientas para desarrolladores

2. En la esquina inferior derecha de la pantalla hay un icono de engranaje: haz clic en eso y mira algunas opciones avanzadas para desarrolladores como la inhabilitación de caché y activar la anotación cronológica de XmlHttpRequests.

Chrome, Herramientas para desarrolladores, engranaje

3. En la segunda pestaña etiquetada Overrides, haz clic en la casilla de verificación al lado de la etiqueta del agente de usuario y selecciona cualquier número de aplicaciones de usuario en el menú desplegable como Chrome, Firefox, IE, iPads, y mucho más. El agente Googlebot no es una opción por defecto. Para usarlo, selecciona Other... y copia y pega la cadena de agente de usuario en la caja a la derecha.

Chrome, Herramientas para desarrolladores, overrides

4. Ahora esa ficha está reemplazada como un rastreador de Google, y cuando abrimos cualquier URL en nuestro sitio, se debería ver la página como la ve el rastreador.

En Conclusión

Obviamente, las diferentes aplicaciones tienen diferentes necesidades en cuanto a qué hacer con los rastreadores web, pero siempre después de haber regresado a una página como Googlebot no es probablemente suficiente. También tendrás que decidir qué páginas queremos exponer y ofrecer maneras para que nuestra aplicación asigne la URL _escaped_fragment_=key=value para el contenido que queremos mostrarle.

Puede conseguirse la suposición y fijar la respuesta del servidor en el marco de front-end, pero por lo general aquí se toma el enfoque más simple y se crean páginas personalizadas para el rastreador y se colocan en un archivo enrutador por separado para los rastreadores.

Hay también por ahí muchos más rastreadores legítimos, así que una vez hemos ajustado nuestro servidor para el rastreador de Google podemos ampliar para incluirlos.

Jesus_Caceres