Cómo optimizar sitios de una sola página para motores de búsqueda
Cuando Google y otros motores de búsqueda indexan sitios web, no ejecutan JavaScript. Esto parece colocar a los sitios de una sola página, muchos de los cuales dependen de JavaScript, en una tremenda desventaja en comparación con un sitio web tradicional.
No estar en Google podría significar fácilmente la muerte de una empresa, y este peligro abrumador 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 tienen una ventaja sobre los sitios web tradicionales en la optimización de motores de búsqueda (SEO) porque Google y otros han reconocido el desafío. Han creado un mecanismo para que los sitios de una sola página no solo tengan sus páginas dinámicas indexadas, sino que también optimicen 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 admiten 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) primero escanea e indexa el contenido del URI de nivel superior (por ejemplo, www.myhome.com). Una vez que se completa, sigue todos los enlaces de esa página y también las indexa. Luego sigue los enlaces de las páginas siguientes, y así sucesivamente. Finalmente, indexa todo el contenido del sitio y los dominios asociados.
Cuando el robot de Google intenta indexar un sitio de una sola página, todo lo que ve en el HTML es un único contenedor vacío (generalmente un div vacío o una etiqueta de cuerpo), por lo que no hay nada que indexar ni enlaces que rastrear, e indexa el sitio en consecuencia ( en la “carpeta” circular redonda en el piso junto a su escritorio).
Si ese fuera el final de la historia, sería el final de los sitios de una sola página para muchas aplicaciones y sitios web. Afortunadamente, Google y otros motores de búsqueda han reconocido la importancia de los sitios de una sola página y han proporcionado herramientas para permitir que los desarrolladores proporcionen información de búsqueda al rastreador que puede ser mejor que los sitios web tradicionales.
Cómo hacer que un sitio de una sola página sea rastreable
La primera clave para hacer que nuestro sitio de una sola página sea rastreable es darse cuenta de que nuestro servidor puede saber si un rastreador o una persona que usa un navegador web está realizando una solicitud y responder en consecuencia. Cuando nuestro visitante es una persona que usa un navegador web, responda como de costumbre, pero para un rastreador, devuelva una página optimizada para mostrarle al rastreador exactamente lo que queremos, en un formato que el rastreador pueda leer fácilmente.
Para la página de inicio de nuestro sitio, ¿cómo es una página optimizada para rastreadores? Probablemente sea nuestro logotipo u otra imagen principal que nos gustaría que apareciera en los resultados de búsqueda, algún texto optimizado para SEO que explique qué es o qué hace el sitio, y una lista de enlaces HTML a solo aquellas páginas que queremos que Google indexe. Lo que la página no tiene es un estilo CSS o una estructura HTML compleja aplicada. Tampoco tiene JavaScript ni enlaces a áreas del sitio que no queremos que Google indexe (como páginas de exención de responsabilidad legal u otras páginas en las que no queremos que la gente ingrese a través de una búsqueda de Google). La siguiente imagen muestra cómo se puede presentar una página a un navegador (a la izquierda) y al rastreador (a la derecha).
Personalización de contenido para rastreadores
Por lo general, los sitios de una sola página se vinculan a contenido diferente mediante un hash bang (#!). Estos enlaces no son seguidos de la misma manera por personas y rastreadores.
Por ejemplo, si en nuestro sitio de una sola página, un enlace a la página del usuario parece /index.htm#!page=user:id,123, el rastreador vería el #! y saber buscar una página web con la URI /index.htm?_escaped_fragment_=page=user:id,123. Sabiendo que el rastreador seguirá el patrón y buscará este URI, podemos programar el servidor para que responda a esa solicitud con una instantánea HTML de la página que normalmente sería representada por JavaScript en el navegador.
Esa instantánea será indexada por Google, pero cualquier persona que haga clic en nuestra lista en los resultados de búsqueda de Google será dirigida a /index.htm#!page=user:id,123. El JavaScript del sitio de una sola página se hará cargo de allí y representará la página como se esperaba.
Esto brinda a los desarrolladores de sitios 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 texto que sea legible y atractivo para una persona y comprensible para un rastreador, las páginas se pueden optimizar para cada una sin preocuparse por la otra. La ruta del rastreador a través de nuestro sitio se puede controlar, lo que nos permite dirigir a las personas desde los resultados de búsqueda de Google a un conjunto específico de páginas de entrada. Esto requerirá más trabajo por parte del ingeniero para desarrollarlo, pero puede tener grandes beneficios en términos de posición en los resultados de búsqueda y retención de clientes.
Detectando el rastreador web de Google
En el momento de escribir este artículo, Googlebot se anuncia a sí mismo como un rastreador para el servidor al realizar solicitudes con una cadena de usuario-agente de Googlebot / 2.1 (+ http: //www.googlebot.com/bot.html). Una aplicación Node.js puede verificar esta cadena de agente de usuario en el middleware y devolver la página de inicio optimizada para el rastreador si la cadena de agente de usuario coincide. De lo contrario, podemos manejar la solicitud con normalidad.
Este arreglo parece complicado de probar, ya que no tenemos un robot de Google. Sin embargo, Google ofrece un servicio para hacer esto para los sitios web de producción disponibles públicamente. como parte de sus Herramientas para webmasters, pero una forma más fácil de probar es falsificar nuestra cadena de agente de usuario. Esto solía requerir algo de piratería en la línea de comandos, pero las Herramientas para desarrolladores de Chrome hacen que esto sea tan fácil como hacer clic en un botón y marcar una casilla:
-
Abra las Herramientas para desarrolladores de Chrome haciendo clic en el botón con tres líneas horizontales a la derecha de la barra de herramientas de Google y luego seleccionando Herramientas en el menú y haciendo clic en Herramientas de desarrollo.
-
En la esquina inferior derecha de la pantalla hay un ícono de engranajes: haga clic en él y vea algunas opciones avanzadas para desarrolladores, como deshabilitar el caché y activar el registro de XmlHttpRequests.
-
En la segunda pestaña, etiquetada Anulaciones, haga clic en la casilla de verificación junto al Agente de usuario etiqueta y seleccione cualquier número de agentes de usuario en el menú desplegable de Chrome, Firefox, IE, iPads y más. El agente de Googlebot no es una opción predeterminada. Para usarlo, seleccione Otro y copie y pegue la cadena de agente de usuario en la entrada proporcionada.
-
Ahora esa pestaña se está falsificando como un robot de Google, y cuando abrimos cualquier URI en nuestro sitio, deberíamos ver la página del rastreador.
En conclusión
Obviamente, diferentes aplicaciones tendrán diferentes necesidades con respecto a qué hacer con los rastreadores web, pero tener siempre una página devuelta al Googlebot probablemente no sea suficiente. También tendremos que decidir qué páginas queremos exponer y proporcionar formas para que nuestra aplicación mapee el _escaped_fragment_ = clave = valor URI al contenido que queremos mostrarles.
Es posible que desee ser elegante y vincular la respuesta del servidor al marco de la interfaz de usuario, pero generalmente adopto el enfoque más simple aquí y creo páginas personalizadas para el rastreador y las pongo en un archivo de enrutador separado para los rastreadores.
También hay muchos más rastreadores legítimos, por lo que una vez que hayamos ajustado nuestro servidor para el rastreador de Google, podemos expandirnos para incluirlos también.
¿Construye sitios de una sola página? ¿Cómo se comportan los sitios de una sola página en los motores de búsqueda? Háganos saber sus pensamientos en los comentarios.
Imagen destacada / miniatura, imagen de búsqueda a través de Shutterstock.