Screaming Frog es una de las herramientas más utilizadas de cara a la optimización On Page de un sitio web. No obstante, esta tool va poco a poco ampliando sus funcionalidades y entrando en otros aspectos del SEO. Gracias a su API de GA4, nos permite saber cómo interactúa un usuario con nuestra web, con la API de Search Console podemos ver datos relativos al tráfico orgánico y con la de Ahrefs o Moz también podemos saltar a la parte Off Page.
Pero eso no es todo, pues recientemente Screaming Frog ha lanzado en su versión 20.0 la posibilidad de conectarnos con la inteligencia artificial para hacer análisis de nuestras páginas de manera granular.
Cómo funciona este nuevo sistema
En caso de que no conozcas esta herramienta, Screaming Frog es un crawler, es decir, un rastreador que analiza nuestra web, tal y como lo haría Google bot, con el objetivo de darnos información sobre el SEO On Page de nuestro sitio.
Dicho esto, con la nueva versión publicada en mayo del 2024 podemos ejecutar JavaScripts para realizar extracciones personalizadas (custom extractions) a partir del contenido de la web que analicemos. Y, no solo eso, pues dentro de dichas personalizaciones con JS, podemos conectarnos a diferentes modelos de inteligencia artificial para realizar análisis sobre nuestro contenido.
Comentar aquí que para usar esta funcionalidad, tenemos 2 opciones: podemos hacer uso de una biblioteca de prompts ya creada y con acciones predefinidas o podemos directamente crear nuestros propios scripts.
En este artículo vamos a ver las 2 posibilidades, con varios ejemplos de cada una.
No obstante, lo primero de todo es aprender a configurar dicha funcionalidad, por lo que vamos a ver este punto rápidamente.
Configuración de la extracción
La configuración de esta herramienta es muy sencilla. Por un lado, necesitamos tener una API del modelo de IA que vayamos a usar y por otro lado, necesitamos tener una licencia de Screaming Frog, pues no es suficiente con la versión gratuita.
Tras ello, solo tenemos que abrir esta herramienta y en la sección de Spider > Rendering, habilitar la opción de JavaScript del desplegable que encontrarás en la parte superior.
Tras ello, vamos a Configuración > Personalizado y seleccionamos JavaScript Personalizado (Custom JavaScript).
En este momento se nos abrirá una pantalla, como la que vemos abajo, para añadir nuestro código:
Ahora, si te fijas en la imágen superior encontrarás a la derecha del todo las 2 opciones que te comentaba al principio: podemos ejecutar prompts ya creados desde la opción de Añadir desde la biblioteca (Add from library) o podemos crear nuestro propio código personalizado, desde Añadir (Add).
Vamos, de entrada, con las opciones por defecto.
Ejecución de prompts de la librería JS
Para empezar a ejecutar los prompts de defecto debemos hacer clic en Añadir desde Biblioteca.
Y, tras ello, accederemos a todas las opciones que tenemos habilitadas:
Algunas de las opciones que tenemos by default son la creación de textos alternativos para imágenes (alt text), la comprensión de la intención de búsqueda, la extracción del idioma o el sentimiento del artículo, entre otros.
De todos ellos, vamos a ver, de entrada, el prompt que nos permite extraer la intención de búsqueda con ChatGPT. Para ello, basta con seleccionar esta opción y seleccionar insertar.
Ahora, nos aparecerá nuestra extracción personalizada cargada y lo tendremos casi listo para ejecutar. Digo casi listo porque recuerda que debemos incluir nuestra API.
Para indicar la API debemos hacer clic en el botón con el icono del lapicero y encontraremos el código a ejecutar:
Si no tienes una base técnica puede que te asuste un poco pero la realidad es que solo tenemos que editar 3 valores:
- La API.
- El modelo del lenguaje.
- La temperatura.
Vamos a verlo paso a paso.
Empezamos con la API de Open AI, en caso de que no tengas una te explico cómo conseguirla. Debes crear una cuenta de Open AI (openai.com) y, en la barra lateral izquierda, seleccionar la opción de API Keys.
En la pantalla que se abre, haz clic en Create new secret key, dale un nombre a tu API y asígnale un proyecto:
En el momento de crearla, te aparecerá el código de dicha API, cópialo:
Una vez obtenida dicha API, sólo tenemos que ir a nuestro Custom JavaScript para incluirla.
Aprovecho para comentarte que si prefieres usar la IA de Google, debes generar la API de Gemini desde aistudio.google.com/app/apikey, tal y como te muestro abajo:
Volviendo a nuestro prompt, te comento que además de indicar la API puedes también cambiar el modelo de IA, en caso de que prefieras usar alguno en concreto.
Aquí ten presente que, a finales del año 2024, GPT-4o es el modelo multimodal más avanzado, con un precio de $2.5 / 1M input tokens. En cambio, GPT-4o mini es una alternativa más básica pero rentable ($0.15 / 1M input tokens), más aún que GPT-3.5 Turbo, por lo que resulta bastante interesante dependiendo de la acción a realizar.
Finalmente, el último parámetro que podemos ajustar es la temperatura, es decir, el nivel de aleatoriedad o creatividad que queramos en las respuestas generadas. Para que te hagas una idea, un valor cerca de 0 genera respuestas más predecibles mientras que un valor cerca de 1, da respuestas más creativas o innovadoras.
Una vez aplicadas nuestras 3 configuraciones (API, modelo y temperatura) ya tenemos nuestro script listo para correr en toda la web.
Lo bueno es que aquí Screaming Frog ha pensado en algo que es muy de agradecer, el hecho de poder testear el prompt antes de lanzarlo en todas las URLs.
Y es que, fíjate que abajo de nuestra pantalla, tenemos la opción de realizar una prueba con una URL y evitar así malgastar dinero en caso de que no funcione.
Una vez probado y confirmado ya podemos ejecutarlo en toda la web.
Y el resultado, como ves abajo, no está nada mal pues ha sabido diferenciar aquellas intenciones informacionales de las comerciales.
Ciertamente podemos decir que parece que el resultado ha sido positivo. No obstante, aquí he de decirte que otros prompts que vienen por defecto considero que son un poco malos.
Sin ir más lejos, el scripts que nos genera los textos alternativos de las imágenes automáticamente deja un poco que desear:
Por suerte, podemos editar dichos códigos para realizar los ajustes que deseemos e incluso crear los nuestros, totalmente personalizados.
Vamos con ello.
Creación de scripts JS con IA personalizados
Para crear nuestros propios scripts vamos a recuperar el código que antes te he mostrado.
Y si te fijas, ahora te he marcado en verde una sección en concreto, aquella en la que debemos incluir nuestro prompt.
Vamos a olvidarnos de variables y temas de programación, simplemente quédate con que el prompt que quieras incluir debe ir entre las comillas simples que siguen a la palabra question:
const question = ’Prompt’
Para comprender esto mejor y familiarizarnos con ello, vamos a ver un par de ejemplos.
Caso práctico 1: generación de metas
Como ya te he comentado antes, uno de los puntos fuertes que tiene Screaming Frog es que podemos usar sus APIs para salirnos del On Page. Y de todas ellas, Search Console nos da información bastante valiosa.
Gracias a ella, podemos ver el tráfico que recibimos, junto con nuestro posicionamiento y CTR (entre otras opciones). Pues bien, justamente podemos buscar las URLs que peor CTR tienen y generar nuevas metas con la IA.
Para ello, podemos crear un prompt como el que te muestro a continuación:
Después, solo tenemos que ejecutarlo junto a la API de Search Console y ya lo tenemos.
Aquí la clave está en ordenar por CTR creciente para encontrar las URLs con peor tasa de clics y ya tendríamos el resultado:
Aprovecho para comentarte que podemos guardar nuestro resultado en Excel para trabajar más cómodos a partir de este punto.
Así mismo, te aconsejo filtrar por la posición de tus URLs para que, como mínimo, tengas en cuenta sólo las URLs que estén en una posición 12 o menor ya que, si la posición es más alta, de poco va a servir optimizar las metas.
Caso práctico 2: extracción de correos
Yo uso Screaming Frog para extraer los correos de aquellas webs que he sacado haciendo outreach con el objetivo de contactarlos. Y para eso, aplico extracciones personalizadas con REGEX (expresiones regulares), como las que te muestro abajo:
No obstante, si no estás familiarizado con este tipo de expresiones, ahora podemos crear un script para que nos extraiga dichas cuentas de emails.
Para ello, tenemos que configurar un prompt como el siguiente:
Y una vez configurado, tenemos que ejecutar Screaming Frog en modo lista y pegar nuestras URLs:
Como resultado, obtenemos nuestro listado siguiente de correos para cada web:
Caso práctico 3: generación de datos estructurados
Los datos estructurados son cada vez más importantes ya que ayudan a Google comprender mejor de qué trata una página. El problema es que cada vez hay más tipos y yo personalmente no los conozco todos.
Así pues, podemos crear un prompt que analice nuestro contenido y nos proponga ideas de schemas.
Para ello, podemos usar un prompt como el que te muestro abajo:
Y si probamos ahora con una página en la que hablo de un curso, vemos que nos propone varios esquemas incluído el de tipo curso:
Explotando las API de Inteligencia Artificial
Ahora que ya sabemos cómo incluir extracciones personalizadas con IA, te comento que también puedes incluir los scripts de JS desde la configuración de Screaming Frog > Conectar con API > IA.
Desde este menú, podemos elegir entre OpenAI, Gemini y Ollama, incluir tu API y añadir los prompts a ejecutar.
Eso sí, aquí la API se incluye directamente en la sección de Información de la Cuenta.
Y una vez incluida, debemos ir a Configuración de los avisos para incluir desde la biblioteca, aquellas extracciones personalizadas que queramos ejecutar.
De este forma, podemos configurar, por ejemplo, las APIs de OpenAI y Gemini para ejecutar un mismo comando y comparar resultados, tal y como te muestro abajo:
Así mismo, también podemos crear nuestras propias extracciones, y mucho más fácil que como lo hacíamos anteriormente.
Fíjate en la imagen de abajo, para crear una extracción personalizada ahora, ya que no debemos tocar código, basta con rellenar los campos relativos al nombre de la extracción, tipo y modelo de IA, más el prompt.
En este caso, a modo de ejemplo, lo que vamos a hacer es crear un prompt que analice el contenido de una URL y proponga un párrafo con un enlace interno hacia una página, de la que queramos reforzar el Page Rank. Eso sí, sólo si aplica, encaja de manera natural y es viable que el usuario vaya a hacer clic.
Tras ello, aceptamos y ejecutamos.
Como encontramos arriba, en algunos casos, vemos que la creación de dicho enlace no aplica, mientras que en otros parece que sí.
Por ejemplo, para una URL en la que hablamos de Google Analytics 4, nos ofrece el siguiente resultado:
El contenido proporcionado se centra principalmente en un curso sobre Google Analytics 4, que incluye una sección sobre la vinculación de Google Analytics y Google Search Console. Dado que el curso menciona específicamente la vinculación con Google Search Console, incluir un enlace a un tutorial sobre Google Search Console podría ser relevante y útil para los usuarios interesados en aprender más sobre esta herramienta. Aquí tienes una oración que incorpora el enlace de manera natural:
«Para obtener más detalles sobre cómo aprovechar al máximo Google Search Console después de vincularlo con GA4, puedes consultar este [tutorial detallado](https://sergiocanales.com/google-search-console/) sobre Google Search Console.»
Por lo tanto, podemos validarlo como una propuesta más que correcta para trabajar nuestro enlazado interno.
Creación de nuestra propia biblioteca
Imagina que el prompt anterior nos ha gustado mucho y queremos tenerlo siempre disponible. Podemos guardarlo desde Añadir desde la biblioteca, haciendo clic en Usuario y después en el botón de más (+).
De hecho, podemos ir un poco más lejos y exportar o importar dichas customizaciones en formato Json para llevarlas a otra sesión de Screaming Frog o incluso editarlas.
De esta forma, y poco a poco, iremos creando nuestra biblioteca de comandos propios y hechos a medida de las necesidades que tengan nuestros proyectos.
Notas finales
Como hemos visto, la combinación de Screaming Frog junto a la IA resulta en una herramienta bastante potente con las que hacer procesados de nuestro contenido y reducir tiempos de análisis que antes haríamos manualmente.
En lo que al precio se refiere, el gasto es bastante bajo y es un buen punto positivo el hecho de poder testear nuestros scripts antes de lanzarlos a todas las URLs de los proyectos.
Así pues, te invito a explorar esta tool y crear tus propias customizaciones ya que aquí lo que realmente brilla es la creatividad de cada uno.
Screaming frog prompts
Generador de Meta titles y descripciones
// Este es un custom extraction para generar Meta Titles y Meta Descriptions
const OPENAI_API_KEY = 'API';
const question = 'Analyze the H1 and the first paragraph of the provided URL. Based on the content, generate: 1) A compelling meta title (maximum 60 characters) that grabs attention in spanish. 2) A descriptive meta description in spanish (maximum 150 characters) that encourages clicks and highlights the key value. Here are some emojis you can use 《 , 》, ▷,➡️ , ✅, |⮕';
const userContent = document.body.innerText;
function chatGptRequest() {
return fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${OPENAI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "gpt-4o",
"messages": [
{
role: "user",
content: `${question} ${userContent}`
}
],
"temperature": 0.7
})
})
.then(response => {
if (!response.ok) {
return response.text().then(text => {throw new Error(text)});
}
return response.json();
})
.then(data => {
return data.choices[0].message.content.trim();
});
}
return chatGptRequest()
.then(intent => seoSpider.data(intent))
.catch(error => seoSpider.error(error));console.log( 'Code is Poetry' );
Extractor de correos electronicos
// Intent of page content using ChatGPT
//
//
// This script demonstrates how JavaScript Snippets can communicate with
// APIs, in this case ChatGPT.
//
// This script also shows how the Spider will wait for JavaScript Promises to
// be fulfilled i.e. the fetch request to the ChatGPT API when fulfilled
// will return the data to the Spider.
//
// IMPORTANT:
// You will need to supply your API key below on line 20 which will be stored
// as part of your SEO Spider configuration in plain text. Also be mindful if
// sharing this script that you will be sharing your API key also unless you
// delete it before sharing.
//
// Also be aware of API limits when crawling large web sites with this snippet.
//
const OPENAI_API_KEY = 'API';
const question = 'Analyze the content of the provided website and extract any email address explicitly mentioned in the text or source code. Return only the email address if found. If no email is available, respond with No email address found';
const userContent = document.body.innerText;
function chatGptRequest() {
return fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${OPENAI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "gpt-4o",
"messages": [
{
role: "user",
content: `${question} ${userContent}`
}
],
"temperature": 0.7
})
})
.then(response => {
if (!response.ok) {
return response.text().then(text => {throw new Error(text)});
}
return response.json();
})
.then(data => {
return data.choices[0].message.content.trim();
});
}
return chatGptRequest()
.then(intent => seoSpider.data(intent))
.catch(error => seoSpider.error(error));
Generador schema markup
// Este es un código personalizado para
const OPENAI_API_KEY = 'API';
const question = 'Analyze the content of the provided URL and suggest the most appropriate structured data types (e.g., Schema.org, JSON-LD, Microdata, RDFa) to implement based on the page purpose and content, respond with No structured data found';
const userContent = document.body.innerText;
function chatGptRequest() {
return fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${OPENAI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "gpt-4o",
"messages": [
{
role: "user",
content: `${question} ${userContent}`
}
],
"temperature": 0.7
})
})
.then(response => {
if (!response.ok) {
return response.text().then(text => {throw new Error(text)});
}
return response.json();
})
.then(data => {
return data.choices[0].message.content.trim();
});
}
return chatGptRequest()
.then(intent => seoSpider.data(intent))
.catch(error => seoSpider.error(error));
Sergio Canales
Ingeniero industrial y experto en nichos digitales
Actualmente vive de sus blogs y proyectos digitales, con más de una década de experiencia como ingeniero y desarrollador. Su pasión por la creación y monetización de páginas web lo llevó a transformar su carrera y alcanzar ingresos superiores a los 4.000€ mensuales.
Gracias a la Mentoría SEO de Dean Romero, Jesús Roldán y Dani Llamazares, aprendió a identificar nichos rentables y optimizarlos para crecer de manera sostenible.
Colabora en diversos proyectos junto a sus mentores, aprendiendo y perfeccionando estrategias cada día.
- Este autor no ha escrito más artículos.