Bots de SWPanel

SWPanelBot-Code

Averigua si el CMS, los plugins y los temas de la web están al día, para el análisis y la auditoría de código.

User-Agent Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)

Función: Análisis de código Operador: DeepThink Software SLU Contacto: [email protected] Versión: 1.1 Revisado el: 17 de octubre de 2026

Ficha técnica

Todo lo que hace SWPanelBot-Code

Sacado del código del módulo. Si el bot cambia lo que hace, cambia esta ficha y su versión.

Identidad

Nombre
SWPanelBot-Code. También es su nombre para robots.txt.
Familia
SWPanelBot: el nombre común de todos los bots de SWPanel.
Versión
1.1, la que va en el User-Agent. Los cambios de cada versión están más abajo.
Tipo
Directo: lo ejecuta y lo controla SWPanel, siempre por encargo del propietario del servicio.
Categoría
Otros
Operador
DeepThink Software SLU, titular de SWPanel. Información legal.
Contacto
[email protected]
Nombres anteriores
SWPanel-CodeAnalyzer/2026 SWPanel/SEOAnalyzer/1.0; headless

Cuándo y cuánto

Cuándo entra
Al pedir un análisis o una auditoría de código, y en los análisis del SOC.
Frecuencia
Una vez por análisis.
Por análisis
Una consulta a las APIs por cada componente (CMS, plugin o tema) y, en el análisis en vivo, hasta 20 páginas de la web.
En paralelo
Nunca. Una página cada vez.

Cómo pide

El código
Se lee en el propio servidor, con el agente de SWPanel. No pasa por la web.
Versiones
Consulta api.wordpress.org, api.github.com y endoflife.date. Espera 10 segundos para conectar y 25 para la respuesta.
Análisis en vivo
Abre hasta 20 páginas: la portada, las más visitadas según los logs del servidor y las del sitemap.
El navegador
Un Chromium sin ventana (Playwright), con una pantalla de 1920 × 1080. Ejecuta JavaScript y carga todo lo que pide la página: imágenes, estilos, scripts y servicios de terceros.
Nombre del navegador
Cumple Se presenta como SWPanelBot-Code.
Aviso de cookies
Cumple No lo toca: ni lo acepta ni lo rechaza, así que no carga la analítica de la web ni deja un consentimiento que nadie ha dado.
Esperas
Hasta 25 segundos por página, a que la red quede en calma. Si un script propio falla, lo vuelve a pedir, con 8 segundos de espera, para leer el fragmento del error.
Origen
En preparación Desde los servidores de SWPanel. Estamos reservando unas IP de salida solo para los bots; cuando estén, las publicaremos aquí en un fichero JSON.
DNS inverso
En preparación Cada IP tendrá un nombre bajo bots.swpanel.com que vuelva a la misma IP.

Normas que aplica

robots.txt
Exento, con motivo No lo consulta. El análisis en vivo lo pide el propietario, como los «fetchers activados por el usuario» de Google, y las APIs no tienen robots.txt que aplicar.
A qué webs va
Cumple Solo visita webs de servicios activos de SWPanel y deja de pasar en cuanto el servicio se da de baja: lo comprueba antes de cada petición.
Si la web pide frenar
Pendiente El navegador del análisis en vivo todavía no frena con 429 y 503. Lo compensa yendo despacio: una página cada vez y 20 como mucho.
Caché HTTP
No aplica Cada análisis tiene que ver la página como la ve hoy un visitante.
Firma
Pendiente El navegador del análisis en vivo todavía no firma. Las consultas de versiones van a APIs públicas, no a tu web.
Contacto en la petición
Pendiente El navegador del análisis en vivo todavía no lleva From: [email protected].

Qué hace con los datos

Qué lee
Las versiones del CMS, los plugins y los temas y, en vivo, los errores de JavaScript, las peticiones que fallan y una captura de la página.
Qué guarda
Las versiones encontradas y los errores, con el fragmento del código propio donde falla cada uno.
Cuánto tiempo
Con el informe del análisis, en el SWPanel del propietario.
Para qué
Para el análisis y la auditoría de código del propietario del servicio.
Privacidad
Política general de privacidad de SWPanel.

Cómo funciona

Una pasada, paso a paso

  1. Lee el código

    El agente de SWPanel lee en el servidor qué CMS, plugins y temas hay, y en qué versión.

  2. Consulta versiones

    Pregunta a las APIs públicas cuál es la última versión de cada uno y si sigue teniendo soporte.

  3. Elige páginas

    La portada, las más visitadas según los logs y las del sitemap, hasta 20.

  4. Las abre

    Una cada vez, en un navegador sin ventana, y espera a que termine de cargar. No toca el aviso de cookies.

  5. Recoge los errores

    Errores de JavaScript, excepciones y peticiones que fallan, y separa los de la propia web de los de terceros.

  6. Deja el informe

    Con lo que hay que actualizar y cada error con su fragmento de código.

En tus logs

Así se ve SWPanelBot-Code

Un ejemplo en formato combinado de Apache y Nginx. La IP y el dominio son de documentación: los tuyos serán otros.

203.0.113.40 - - [17/Oct/2026:12:30:10 +0200] "GET / HTTP/1.1" 200 48211 "-" "Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)" 203.0.113.40 - - [17/Oct/2026:12:30:10 +0200] "GET /wp-content/themes/tema/style.css HTTP/1.1" 200 18320 "https://example.com/" "Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)" 203.0.113.40 - - [17/Oct/2026:12:30:11 +0200] "GET /wp-content/themes/tema/js/app.js HTTP/1.1" 200 9120 "https://example.com/" "Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)" 203.0.113.40 - - [17/Oct/2026:12:30:12 +0200] "GET /wp-content/uploads/2026/10/portada.webp HTTP/1.1" 200 88450 "https://example.com/" "Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)" 203.0.113.40 - - [17/Oct/2026:12:30:36 +0200] "GET /tienda/ HTTP/1.1" 200 30554 "-" "Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)"

El análisis en vivo carga cada página con todo lo que lleva, como un navegador. Las consultas de versiones van a las APIs y no aparecen en tus logs.

Comprobar

¿Es de verdad SWPanelBot-Code?

Un User-Agent se puede copiar. Por eso hay que mirarlo junto con lo demás. Los ejemplos usan una IP de documentación.

DNS inverso En preparación

$ host 203.0.113.10 10.113.0.203.in-addr.arpa domain name pointer crawl-203-0-113-10.bots.swpanel.com. $ host crawl-203-0-113-10.bots.swpanel.com crawl-203-0-113-10.bots.swpanel.com has address 203.0.113.10

La IP tiene que resolver a un nombre de bots.swpanel.com, y ese nombre a la misma IP. Si solo se cumple la primera parte, no es nuestro.

Lista de IP En preparación

$ curl -s https://www.swpanel.com/bots/ips.asp {"formatVersion": "1.0", "creationTime": "…", "prefixes": [{"ipv4Prefix": "203.0.113.0/28", "service": "SWPanelBot"}]}

Un fichero JSON con el formato JAFAR que propone el IETF, enlazado desde esta página.

Firma de la petición Pendiente

Signature-Agent: "https://www.swpanel.com" Signature-Input: sig1=("@authority" "signature-agent"); created=1792224000;expires=1792224300; keyid="…";alg="ed25519";tag="web-bot-auth" Signature: sig1=:…:

Cabeceras de Web Bot Auth. La clave pública está en /.well-known/http-message-signatures-directory de www.swpanel.com: con ella, cualquier cortafuegos que entienda Web Bot Auth comprueba que la petición es nuestra.

Lo que pide Disponible

Compara lo que ves con la ficha: las rutas, la frecuencia y el volumen. Un bot que se llama SWPanelBot-Code y hace otra cosa no es nuestro.

Si dudas de una visita, escríbenos a [email protected] con el dominio, la hora con su zona horaria, la IP y la línea del log, y lo comprobamos.

Pararlo

Lo pide el propietario. Él lo apaga.

Nuestros bots solo visitan webs de servicios activos de SWPanel, solo para las funciones que su propietario tiene activas, y dejan de pasar en cuanto el servicio se da de baja.

Si eres el propietario

Desactiva el análisis de código del servicio en tu SWPanel.

Si no lo eres

Si el dominio ya no está en SWPanel no debería llegarte ninguna visita programada. Si te llega, escríbenos a [email protected] y lo paramos.

En el cortafuegos

Para dejarlo pasar, usa el nombre junto con la IP o la firma, no solo el nombre. Cuidado con las reglas genéricas: un patrón como «bot» también alcanza a SWPanelBot.

Si lo bloqueas

El análisis en vivo no encontrará los errores de JavaScript.

robots.txt no lo para: lo explicamos en Normas. Lo para su propietario, desde SWPanel.

Normas

Lo que piden los estándares, y cómo está SWPanelBot-Code

Nuestra situación en cada punto, sin adornos.

Lo que piden los estándares, y cómo está SWPanelBot-Code
Un nombre propio en el User-Agent, con la dirección de su página RFC 9110, 10.1.5, y borrador IETF «Crawler best practices», 2.2 Cumple
Un nombre válido para robots.txt: letras, guiones y guion bajo RFC 9309, 2.2.1 Cumple
Visitar solo webs de servicios activos de SWPanel, y dejar de hacerlo en cuanto el servicio se da de baja Compromiso propio de SWPanel Cumple
Que el navegador sin ventana se presente con su nombre y no acepte cookies Mismas normas: identidad honesta y no actuar en nombre de un visitante Cumple
Leer y respetar robots.txt RFC 9309 y «Crawler best practices», 2.1. El borrador permite la exención documentada de los rastreadores que trabajan por encargo. Lo pide el propietario y es una comprobación puntual. Exento, con motivo
No entorpecer la web: una petición cada vez, límites de páginas y de tiempo, y esperas cortas «Crawler best practices», 2.3 Cumple
Frenar si la web contesta 429 o 503 «Crawler best practices», 2.3, y RFC 9110, 15.6. El navegador del análisis en vivo, todavía no. Pendiente
Respetar la caché HTTP «Crawler best practices», 2.4, y RFC 9111. Necesita la respuesta de ahora. No aplica
Un contacto en la petición: cabecera From RFC 9110, 10.1.2 Pendiente
Publicar las IP de salida en JSON, enlazadas desde esta página «Crawler best practices», 2.5, con el formato JAFAR En preparación
DNS inverso que se pueda confirmar Práctica de Google, Bing y Cloudflare para verificar bots En preparación
Firmar las peticiones (Web Bot Auth) Borrador IETF «HTTP Message Signatures for Bots», septiembre de 2026. Hoy firma las consultas a las APIs; el navegador del análisis en vivo, todavía no. Pendiente
Página pública con qué hace, qué guarda, contacto, cómo pararlo y las exenciones «Crawler best practices», 2.6 Cumple

En parte: cumple con una salvedad, que se explica en la fila. En preparación: depende de la red, como las IP propias y su DNS inverso. Pendiente: aún sin fecha.

Versiones

Qué ha cambiado

La versión va en el User-Agent. Cuando el bot cambia lo que hace, cambian la versión y esta ficha.

Qué ha cambiado
1.0 12-10-2026 Nombre nuevo, SWPanelBot-Code, en las consultas de versiones. Sustituye a SWPanel-CodeAnalyzer.
1.1 17-10-2026 Enlaza a esta ficha. El navegador del análisis en vivo se presenta como SWPanelBot-Code y ya no acepta el aviso de cookies. Solo visita servicios activos.
Próxima Sin fecha El navegador del análisis en vivo pasa a firmar, a frenar con 429 y 503 y a llevar la cabecera From.

Preguntas frecuentes

Dudas sobre SWPanelBot-Code

No. El código se lee en el propio servidor, con el agente de SWPanel. Por la web solo abre páginas públicas para buscar errores de JavaScript.

El análisis en vivo sí puede, porque es un navegador que ejecuta JavaScript. Son como mucho 20 páginas por análisis.

No. Hasta el 17-10-2026 pulsaba «Aceptar» para ver la página como un visitante; ahora no toca el aviso, así que no carga la analítica de la web ni deja un consentimiento que nadie ha dado.