IA

Identificar páginas semánticamente similares con Screaming Frog

Clasificar Embeddings en Screaming Frog

Identificar páginas semánticamente similares con Screaming Frog
Autor
Carlos Sánchez
Temática
IA Rastreo
Publicado
Revisado

En junio de 2025 Juan González Villa dio una clase en mi máster de SEO técnico sobre una de las novedades de la versión 22 de Screaming Frog: generar embeddings de cada página durante el propio rastreo y usarlos para encontrar páginas que hablan de lo mismo, páginas que no pintan nada en la web y hasta hacer búsquedas "conversacionales" dentro de tu propio sitio.

Hasta ahora esto se podía hacer, pero sacando los embeddings y trabajándolos fuera de la herramienta. Ahora está todo dentro del rastreo, así que lo dejo por escrito con las capturas de la clase para que lo puedas replicar paso a paso.

Clase completa de Juan González Villa (USEO) en el máster, junio de 2025.

Qué es un embedding

Lo que hace aquí Screaming Frog no es contar palabras, que para eso ya estaba la función de N-grams. Un embedding es la representación numérica de un texto: el modelo parte el contenido en tokens (una unidad más pequeña que la palabra; en español una palabra puede tener dos o tres tokens) y lo convierte en una ristra de números muy larga. Cada número es una dimensión, y los modelos buenos de hoy manejan miles.

Al final cada página acaba siendo un punto en un espacio de muchísimas dimensiones. Dos textos que hablan de lo mismo quedan cerca y dos que no tienen nada que ver quedan lejos, aunque no compartan ni una palabra. Por eso funciona igual con un post en español y su traducción al inglés: el embedding va al significado, no al idioma.

De esa idea salen las tres cosas que usa la herramienta:

Configurar el rastreo

Todo esto necesita la versión 22 o superior de Screaming Frog y licencia de pago. Juan lo hizo con Gemini, pero vale cualquiera de los proveedores.

1. Conectar un proveedor de IA

En Config › API Access están, debajo de las integraciones de siempre (Analytics, Search Console, Ahrefs…), las de inteligencia artificial: OpenAI, Gemini, Ollama y Anthropic. Para los embeddings sirven OpenAI, Gemini y Ollama (este último para modelos en local).

Config › API Access de Screaming Frog con OpenAI, Gemini, Ollama y Anthropic debajo de las integraciones de siempre

Metes la clave de la API en Account Information y, ojo, le das a Connect. En el directo Juan pasó por aquí corriendo, no le dio a conectar y hubo que repetir el rastreo entero: no vale con relanzar el análisis, porque los embeddings se generan durante el rastreo.

2. El prompt de los embeddings

En la pestaña Prompt Configuration del proveedor, Add from Library y eliges Extract Semantic Embeddings from Page (en Gemini usa la tarea SEMANTIC_SIMILARITY). Ya viene hecho; lo único que se decide aquí es sobre qué parte de la página se calcula el embedding: el texto de toda la página, que es lo que hace por defecto, o el resultado de una extracción propia. También podrías hacerlo solo con los títulos o solo con las FAQ de cada página.

Prompt Configuration de Gemini en Screaming Frog con el prompt de embeddings

3. Guardar el HTML

En Config › Spider › Extraction hay que marcar Store HTML y Store Rendered HTML. Si no, no hay texto del que sacar nada. Usa el HTML sin renderizar en modo texto y el renderizado si rastreas con JavaScript. Juan prefiere rastrear en modo JavaScript aunque tarde más, por lo del punto siguiente.

Como solo interesa el texto, quita del rastreo imágenes, CSS, JavaScript y demás recursos. Y si en modo JavaScript te siguen entrando imágenes enlazadas con un href, exclúyelas con una regla en Exclude.

4. Quedarte solo con el contenido principal

Este es el truco de la clase. Si haces el embedding de la página entera metes menú, pie, sidebar, comentarios y el "suscríbete", y todo eso es ruido que se repite en todas las URLs y hace que se parezcan más de lo que se parecen. En una web minimalista entra poco, pero en la mayoría entra un chorizo.

Juan usa un Custom JavaScript (Config › Custom › Custom JavaScript) de tipo Extraction que carga la librería Readability.js de Mozilla, la misma del modo lectura de Firefox, y devuelve solo el texto del artículo. Lo tiene explicado, con el código para copiar, en su post sobre cómo crear un Custom JS para Screaming Frog.

Editor de Custom JavaScript de Screaming Frog con el snippet que carga Readability.js y devuelve el contenido principal

Pruébalo con el botón Test sobre una URL antes de rastrear: el resultado tiene que empezar donde empieza el artículo de verdad y acabar donde acaba, sin comentarios ni enlaces relacionados. Después, en el prompt de los embeddings (punto 2), le dices que use la salida de esa extracción en vez de Page Text.

5. Activar los embeddings

En Config › Content › Embeddings:

Config › Content › Embeddings de Screaming Frog con Semantic Similarity a 0,8 y Low Relevance a 0,5

6. Excluir lo que ya sabes y lanzar

Antes de rastrear, excluye los patrones que sabes que van a salir parecidos entre sí y que no te aportan nada (en el caso de Juan, el archivo de su newsletter). Si no, te llenan el informe. En Crawl Analysis › Configure marca Auto-Analyse at End of Crawl para no tener que lanzarlo a mano, conecta el sitemap por si hay huérfanas y a rastrear.

Cuando termine, fíjate en que la barra de la API también llegue al 100 %. Si no ha llegado, algo ha fallado en la conexión.

Qué sacas del rastreo

Búsqueda semántica

La pestaña Semantic Search (en la ventana de la derecha) es lo que a Juan le parece más práctico. Escribes una consulta, amplia o conversacional, y te devuelve las páginas más cercanas con su puntuación. No busca las palabras en la página: compara el embedding de la consulta con el de cada URL.

Pestaña Semantic Search de Screaming Frog con la consulta marketing de contenidos y las URLs más cercanas

Dos ejemplos de la clase. Buscando "efectos del update de contenido útil", por coincidencia de términos no salía el post que hablaba justo de eso y por embeddings sí, con un 0,56. Y con "patentes de Google que hablan de predecir la calidad de una página por el tráfico que recibe" salieron dos posts al 0,78 y al 0,72 que no contienen esa frase en ningún sitio.

¿Para qué lo usamos? Si tienes un post nuevo y quieres saber a cuáles enlazar internamente, los primeros de la lista son los candidatos naturales, donde el enlace no va a quedar forzado. Y todo lo que esté por debajo de 0,55, más o menos, lo puedes descartar directamente. Es lo que antes se hacía a mano buscando términos, sinónimos y erratas, con un montón de falsos positivos porque la palabra aparecía de pasada al final de un post que no tenía nada que ver.

Páginas semánticamente similares

En la pestaña Content, el filtro Semantically Similar lista las páginas que superan el umbral, y en Duplicate Details (abajo) ves con cuáles se parece cada una y la puntuación. Se exportan todas de golpe desde Bulk Export › Content › Semantically Similar.

No confundir con Exact Duplicates y Near Duplicates, que llevan años en la herramienta: esos trabajan con un hash de trozos de texto y buscan páginas iguales. Esto busca páginas que hablan de lo mismo aunque estén escritas con otras palabras, o en otro idioma: en la web de Juan el mismo post en español y en inglés salió con una puntuación altísima.

También hay que leer los resultados con cabeza. Le marcó como muy parecidos un post sobre bases de datos de backlinks y otro sobre bases de datos de keywords: los dos tienen poco texto y una tabla de dominios, y para un sistema que solo ve números eso es casi lo mismo.

Contenido de baja relevancia

El filtro Low Relevance Content saca las páginas más alejadas del centroide del sitio. Son las que menos tienen que ver con el resto: a veces es contenido que sobra y a veces es una sección que se ha quedado sin contexto. Eso ya lo tienes que decidir tú.

Diagrama de clústeres

En Visualisations › Content Cluster Diagram se pintan hasta 10.000 páginas agrupadas por color según su similitud. Es lo que hacía Safecont, aquella herramienta española que dejó de existir, y que Juan usaba en la primera toma de contacto con cualquier web que no fuera pequeña: ver de un vistazo los grandes temas que toca y dónde hay duplicidades.

Content Cluster Diagram de Screaming Frog con las 125 URLs de useo.es agrupadas por colores

En la web de Juan salieron a la primera: las paginaciones del blog, los posts de WordPress de los inicios, los de Core Web Vitals (con los de JavaScript pegados, porque al hablar de velocidad se habla mucho de JavaScript) y algún punto suelto en rojo que era justamente un outlier. Desde la rueda dentada se cambia el número de clústeres, el muestreo y los colores (se pueden colorear por segmentos), y con el botón derecho ves los enlaces internos dentro de cada clúster.

Para qué sirve en el día a día

Consejos y límites

Y como dije al cerrar la clase: probadlo vosotros, que es como se aprende. La primera vez saldrá mal (a Juan se le olvidó darle a Connect en directo y tocó repetir el rastreo), pero luego se pilla y es muy útil.

Bibliografía

Si te gusta este artículo, me ayudarías un montón compartiendo mi contenido:
Formación
No se te da mal el SEO técnico

Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de web.

Accede al Máster de SEO Técnico
Tal vez te interesen otros artículos:
Artículos de SEO