¿Qué diferencia hay entre rastreo e indexación?

La indexación y el rastreo por parte de un motor de búsqueda como Google son dos términos que se usan muy ampliamente en el mundo del SEO, sobre todo si tenemos en cuenta la eterna discusión de que si Google es o no capaz de indexar/rastrear el contenido dentro de Javascript.

En muchísimo artículos (incluso del propio Google) se suele confundir mucho la indexación con el rastreo, pero, antes de empezar a discutir la diferencia entre ambos y si Google es capaz de indexar o no el Javascript hay que entender como funciona un motor de búsqueda.

Procesos de un motor de búsqueda

Cuando hablamos de SEO en Javascript, tenemos que tener en cuenta que un motor de búsqueda cuenta con 3 procesos (simplificando mucho):

1. Rastreo
2. Indexación
3. Posicionamiento (rankeo me suena muy mal)

Si nos centramos en Javascript, los dos primeros procesos son los importantes, no hace falta decir que sin rastreo es imposible que algo se indexe y ni mucho menos que algo posicione.

Dentro de Google, el rastreo se lleva a cabo por Googlebot y el proceso de indexación es Caffeine. Son dos procesos muy distintos que llevan a cabo funciones muy distintas y que es conveniente que no confundamos.

Lo “único” que hace Googlebot es descubrir nuevas páginas. Intenta encontrar todas las URLs y las rastrea, la gran mayoría de las veces analizando el contenido HTML de las páginas y extrae todas las URLs que están dentro de un etiqueta <a href=””…””> . Googlebot no renderiza el contenido, de ahí la importancia de que todos los enlaces estén en HTML plano.

Cuando Googlebot detecta URLs nuevas o que se han actualizado, este las manda a indexar. Aquí es donde entra Caffeine, que intenta darle sentido a la URL, analizando su contenido y su relevancia con una serie de subprocesos.

Uno de estos subprocesos es ejecutado por el WRS (Web Rendering Service), que se encarga de renderizar y ejecutar el Javascript dentro de una URL. Si este encuentra nuevas URLs dentro del Javascript, las enviare a Googlebot para que este las rastree.

Googlebot o Caffeine

El problema está al usar el término rastrear cuando nos debemos, que lo hace hasta Google en sus documentos oficiales:

robot de google

Barry Adams preguntó directamente a Gary Illyes precisamente por eso. Googlebot solo extrae URLs del código pero no ejecuta Javascript, eso es trabajo del WRS, que es parte de Caffeine, ¿no?.

respuesta twitter de Gary Illyes

¿Cual es el problema entonces?

El problema viene cuando contestamos “sí” a la pregunta de que si Googlebot puede indexar Javascript. Lo cierto es que Google si que puede indexar Javascript (normalmente), pero a través del WRS, que es parte de Caffeine, el “indexador”.

Y aunque efectivamente Google puede indexar Javascript, a nivel SEO es terrible usar Javascript ya que hace que el proceso de rastreo e indexación se alargue y se consuma el Crawl Budget (tiempo que Googlebot tiene para rastrear tu web) antes de que se rastree toda nuestra web, ya que Googlebot tiene que esperar a que WRS le envíe los enlaces que están dentro del Javascript.

¿Pero por qué el Javascript es tan malo para el SEO?

Rastrear e indexar HTML plano es muy simple ya que todo el contenido está dentro del propio HTML y el único paso extra es que Google se descarga el CSS.

Ejecutar HTML

1. Googlebot descargar el HTML< 2. Googlebot extrae todos los enlaces del código y los visita de manera simultánea
3. Googlebot descarga los archivos CSS
4. Googlebot envía todos los recursos descargados a Caffeine
5. Caffeine indexa la página

Ejecutar Javascript

1. Googlebot descarga el HTML
2. Googlebot descarga los archivos CSS y Javascript
3. El WRS tiene que ejecutar los archivos Javascript
4. El WRS tiene que esperar a que le lleguen todas las peticiones que ha tenido que hacer a elementos externos
5. Por fin, Caffeine puede indexar el contenido
6. Googlebot recibe los nuevos enlaces descubiertos en el Javascript y los pone en la cola de rastreo

Me encanta esta animación de Elephate para explicar este proceso:

javascript vs html

Como veis todo el proceso se complica bastante cuando metemos Javascript de por medio, haciendo que el tiempo que se tarda en indexar un web se multiplique por varios motivos

Parsear, compilar y ejecutar archivos Javascript ocupa mucho tiempo.
Con las web que tienen mucho Javascript, Google tiene que esperar hasta que se ejecuta todo el Javascript para indexar la página.
Si hay enlaces dentro del Javascript, Googlebot tiene que esperar a que se renderiza toda la página para poder rastrear esos enlaces (así que por dios no hagáis menús desplegables con Javascript).

Y ahora teniendo en cuenta que hasta un 70% de las visitas a las webs desde hoy en día son desde dispositivos móviles, hacer que el usuario tenga que descargarse archivos de varios megas en su móvil (sin Wi-Fi), además de llevar mucho tiempo, hace que le cueste dinero ver tu web :)

Como último punto del artículo, si quieres saber si Google puede indexar (o como lo hace) tu página llena de Javascript, puedes usar estas dos herramientas:

1. Herramienta de Explorar como Google de Google Search Console
2. Probador de datos estructurados de Google. En la parte de la izquierda puedes ver el DOM de la página definitivo, ya con el Javascript ejecutado.


Como todas estas cosas yo no me las saco de la manga, aquí os dejo los artículos que han hecho que me haya decidido a escribir esto:

La guía definitiva de SEO para Javascript de Elephate.
Todo lo que sabías de la indexación de Javascript está mal de Elephate.
Diferencias entre indexar y rastrear de Barry Adams.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.