¿Qué es GSCWizard-Bot?
GSCWizard-Bot es el rastreador que impulsa el informe de SEO on-page dentro de GSC Wizard. Se ejecuta solo cuando un usuario con la sesión iniciada abre el informe de una propiedad de Google Search Console que le pertenece: no rastrea la web abierta, no sigue enlaces ni construye ningún tipo de índice.
Si ves este user agent en tus logs de acceso, significa que un propietario verificado de tu sitio (o alguien con acceso a tu propiedad de Search Console) abrió el verificador de SEO on-page en GSC Wizard y le pidió que analizara tus páginas.
El mismo user agent se usa cuando un propietario con la sesión iniciada pide a GSC Wizard (o al servidor MCP de GSC Wizard) que lea uno de tus sitemaps XML, por ejemplo en el informe de rendimiento de sitemaps, que cruza las URLs de un sitemap con sus clics e impresiones de Search Console. Es una única petición del propio archivo del sitemap (más sus sitemaps hijos si es un índice de sitemaps), nunca un rastreo de las URLs que lista.
Por eso también puedes ver a GSCWizard-Bot solicitar archivos como robots.txt y sitemap.xml. El bot lee robots.txt para descubrir las directivas Sitemap: que contiene (y usa /sitemap.xml si no hay ninguna) para poder comprobar cuáles de tus páginas están incluidas en tu sitemap XML.
Qué comprueba el rastreador
De cada página que descarga, GSCWizard-Bot extrae tres elementos HTML y los compara con la consulta con más impresiones por la que esa página ya tiene ranking en Google Search Console en los últimos 28 días.
1 Título de la página: <title>
Lee el contenido de la etiqueta <title> y comprueba si todas las palabras significativas (de 3 o más caracteres) de la consulta principal de GSC aparecen en ella. Muestra el title actual tal cual, junto con un indicador de aprobado o suspendido.
2 Meta description: <meta name="description">
Lee el atributo content de la meta description y comprueba la misma cobertura de palabras clave. También registra su longitud actual en caracteres.
3 Encabezados H1: <h1>
Extrae todos los <h1> de la página y comprueba si alguno contiene las palabras clave objetivo.
Eso es todo. GSCWizard-Bot no ejecuta JavaScript, no renderiza páginas, no descarga hojas de estilo ni scripts, no sigue enlaces dentro de tus páginas y no recopila ningún otro dato. Para las comprobaciones de páginas lee únicamente la respuesta HTML sin procesar. La única excepción es la auditoría de feeds: cuando un comerciante conecta su propia cuenta de Google Merchant Center, el bot descarga las imágenes de producto a las que hace referencia el feed de ese comerciante para medir sus dimensiones en píxeles. Cada petición de imagen solicita solo los primeros 64 KB (una petición por rangos), el bot conserva el ancho y el alto y descarta los bytes. Lee antes el robots.txt del host de la imagen, igual que hace con las páginas, y omite cualquier imagen que ese robots.txt no permita. Nunca descarga imágenes que encuentre dentro de una página.
Comportamiento de rastreo
En una misma ejecución cada URL se descarga una vez, con un tiempo límite estricto de 10 segundos. Se siguen las redirecciones (hasta cinco saltos, cada uno verificado de nuevo). La misma URL puede descargarse otra vez en una ejecución posterior, por ejemplo cuando se repite una auditoría programada o el propietario de un sitio vuelve a ejecutar un informe, así que puedes ver peticiones repetidas de la misma URL con el tiempo.
Las URLs rastreadas con éxito se guardan y las ejecuciones programadas en segundo plano las reutilizan hasta 7 días. Cuando un usuario vuelve a ejecutar el informe siempre se lanza un rastreo nuevo, así que los cambios en un title, una meta description o un H1 se ven de inmediato; por eso puedes ver peticiones repetidas de la misma URL cuando el propietario del sitio está trabajando en ella.
Un rastreo de páginas (las comprobaciones on-page y el rastreo de enlaces internos) abarca como máximo 1000 páginas por ejecución, siempre páginas de la propia propiedad, elegidas entre las URLs que Search Console informa para ella. Una auditoría de feeds abarca cada URL de producto distinta del propio feed de Merchant Center del comerciante y las imágenes a las que hacen referencia esas entradas del feed; no tiene un tope fijo de páginas y se limita por cortesía: un número reducido de peticiones en paralelo por host, que se reducen cuando tu servidor responde 429 o 503, y las reglas de robots.txt que se describen más abajo.
Antes de descargar cualquier página real o imagen de un feed, el rastreador descarga tu robots.txt (una vez por sitio y ejecución) y evalúa sus reglas Allow / Disallow para GSCWizard-Bot (con * como alternativa), incluidos los comodines * y los anclajes $. Las URLs no permitidas nunca se descargan; se indican al usuario en el informe. Un robots.txt inexistente o inaccesible se trata como "permitir todo".
Para las comprobaciones de cobertura de sitemaps, el rastreador solicita /robots.txt para encontrar directivas Sitemap:, usa /sitemap.xml si no hay ninguna y sigue un índice de sitemaps un nivel de profundidad (como máximo 50 archivos de sitemap / 50.000 URLs). Las URLs del sitemap se usan solo para comparar; nunca se ponen en cola para rastrearlas.
Envía Accept: text/html y analiza directamente el cuerpo de la respuesta. Sin navegador headless, sin ejecución de scripts y sin descarga de recursos.
Las URLs que se resuelven a rangos de IP privados, internos o de loopback se bloquean antes de hacer cualquier petición de red.
Cómo permitir GSCWizard-Bot
La mayoría de los sitios no necesita ningún cambio. Si usas un WAF, una capa de gestión de bots o un firewall restrictivo y el informe de SEO on-page sale vacío (o con errores HTTP 403 / 429), añade el user agent a la lista de permitidos.
robots.txt (permiso explícito)
User-agent: GSCWizard-Bot
Allow: /
Cloudflare WAF y Bot Fight Mode
Para tus propias reglas personalizadas (bloqueos por país, reglas de ASN y similares), añade una regla en Security → WAF → Custom rules y colócala por encima de las reglas que bloquean:
(http.user_agent contains "GSCWizard-Bot")
Action: Skip → All remaining custom rules
(Pro plans and above: also All Super Bot Fight Mode rules)
Esto no funciona con Bot Fight Mode, la protección contra bots del plan gratuito de Cloudflare. Cloudflare la ejecuta fuera del WAF, así que las acciones Skip y Allow y las Page Rules no le afectan. Salvo desactivarla, la única excepción que respeta es una IP Access Rule que coincida primero con la petición; escríbeme para pedirme la dirección actual de mi servidor. GSCWizard-Bot es ahora un bot verificado de Cloudflare (consulta Cómo verificar el user agent), al que los ajustes de bots por defecto de Cloudflare no molestan, así que prueba primero sin la regla. Una IP Access Rule además deja pasar esa dirección por el resto de tus controles de seguridad, así que añade una solo si las peticiones siguen siendo desafiadas.
Nginx
if ($http_user_agent ~* "GSCWizard-Bot") {
set $allow_bot 1;
}
# use $allow_bot to bypass rate limits / challenges
Apache
SetEnvIfNoCase User-Agent "GSCWizard-Bot" allow_bot
<RequireAll>
Require all granted
Require env allow_bot
</RequireAll>
Cómo bloquear GSCWizard-Bot
GSCWizard-Bot comprueba tu robots.txt antes de descargar cada página y respeta sus reglas. Añade la siguiente regla para impedir que GSCWizard-Bot descargue cualquier página de tu sitio: las URLs bloqueadas se omiten y se marcan como "Bloqueada por robots.txt" en el informe en lugar de rastrearse:
User-agent: GSCWizard-Bot
Disallow: /
Si prefieres un bloqueo duro en el edge, sirve cualquier regla que rechace las peticiones cuya cabecera User-Agent coincida con GSCWizard-Bot: invierte las reglas de permiso anteriores.
Cómo verificar el user agent
Mi rastreador envía una de tres cadenas de user agent. El verificador de SEO on-page (comprobaciones de title, meta description y H1, y lecturas de sitemaps) usa la primera; la auditoría técnica ampliada (que también hace las peticiones de robots.txt y de descubrimiento de sitemaps) usa la segunda; la auditoría de feeds de Merchant Center usa la tercera cuando mide las dimensiones de las imágenes de producto a las que hace referencia el propio feed de un comerciante:
GSCWizard-Bot/1.0 (On-Page SEO Checker)
GSCWizard-Bot/1.0 (Full On-Page Checker)
GSCWizard-Bot/1.0 (Feed Audit image probe)
Las tres comparten el prefijo GSCWizard-Bot, así que una única regla de subcadena las cubre. Las peticiones de páginas llevan Accept: text/html y proceden de mis servidores de aplicación. Aun así, una cadena de user agent no prueba nada por sí sola: cualquiera puede copiarla. Si quieres certeza, comprueba la firma que se describe a continuación.
Verificación criptográfica (Web Bot Auth)
Cada petición de GSCWizard-Bot está firmada con una clave Ed25519 mediante HTTP Message Signatures (RFC 9421), el mismo esquema Web Bot Auth que usa Cloudflare para identificar bots verificados. Una petición firmada lleva tres cabeceras adicionales:
Signature-Agent: "https://tool.gscwizard.com/.well-known/http-message-signatures-directory"
Signature-Input: sig1=("@authority" "signature-agent");created=...;keyid="...";alg="ed25519";expires=...;nonce="...";tag="web-bot-auth"
Signature: sig1=:...:
Mi clave pública está publicada como JSON Web Key Set en tool.gscwizard.com/.well-known/http-message-signatures-directory. Verifica la firma con esa clave y sabrás que la petición viene de mí y que no se reenvió a un host distinto: la firma cubre el host al que se envió y caduca a los cinco minutos.
GSCWizard-Bot figura en el directorio de bots verificados de Cloudflare con esta clave, así que en un sitio con Cloudflare la firma se comprueba por ti. Cloudflare deja fuera de sus ajustes de bots por defecto a los bots verificados, y puedes identificarlos en reglas personalizadas con el campo Known Bots, cf.client.bot.
Si ves una petición que dice ser GSCWizard-Bot sin una firma válida, no soy yo; trátala en consecuencia y, por favor, avísame.
Preguntas o denuncias de abuso
Si crees que GSCWizard-Bot se comporta mal, rastrea más de lo descrito arriba o quieres que deje de rastrear tu sitio por completo, ponte en contacto conmigo: