Si has intentado hacer scraping con Puppeteer y tus requests se bloquean después de unas pocas peticiones, el problema casi siempre es el mismo: usas una IP de datacenter que cualquier sistema anti-bot reconoce en milisegundos. La configuración de proxy 4G en Puppeteer resuelve ese problema de raíz. En esta guía aprenderás exactamente cómo conectar un proxy móvil real a Puppeteer, qué opciones de rotación tienes, cómo verificar que todo funciona y qué errores evitar desde el principio. Esto es lo que cubrimos:
- Por qué los proxies 4G superan a los de datacenter para scraping
- Cómo pasar credenciales de proxy a Puppeteer en 3 formas distintas
- Cómo rotar IPs automáticamente durante una sesión
- Cómo comprobar que tu IP real nunca se expone
In this guide, you will learn everything you need to run Puppeteer through a real 4G mobile proxy without getting blocked.

Por qué los proxies 4G son distintos para el scraping con Puppeteer
Cuando Puppeteer hace una petición desde una IP de datacenter, los sistemas anti-bot como Cloudflare, PerimeterX o el propio Google lo detectan en menos de un segundo. ¿La razón? Esas IPs tienen un ASN (número de sistema autónomo) asociado a un proveedor de hosting, no a un operador móvil.
Los proxies 4G funcionan de otra manera. Tu tráfico sale a través de un módem físico con una SIM real de un operador polaco. Desde fuera, pareces un usuario normal navegando desde su teléfono. Eso cambia todo.
Además, los proxies móviles usan CGNAT (Carrier-Grade NAT), lo que significa que la misma IP pública la comparten cientos de usuarios reales simultáneamente. Intentar bloquear esa IP implicaría bloquear a miles de clientes legítimos del operador. Por eso los sitios web simplemente no lo hacen.
Key takeaway: Una IP 4G de un operador real tiene una tasa de detección del 0% en la mayoría de plataformas. Una IP de datacenter puede estar en listas negras antes de que hagas tu primera petición.
- ASN de operador móvil polaco, no de hosting
- CGNAT: la IP es compartida por usuarios reales
- Geolocalización en Polonia, útil para scraping de precios locales en Allegro u otros mercados polacos
- Compatible con HTTP, SOCKS5 y OpenVPN
Requisitos previos antes de empezar la configuración
Antes de escribir una sola línea de código, necesitas tener tres cosas listas. Sin ellas, cualquier configuración fallará o dará resultados incorrectos.
Node.js y Puppeteer instalados
Necesitas Node.js 18 o superior. Instala Puppeteer con:
npm install puppeteer
Si prefieres usar Puppeteer sin descargar Chromium (porque ya tienes Chrome instalado), usa puppeteer-core y apunta al ejecutable manualmente.
Un puerto de proxy 4G activo
Necesitas un proxy con estas características mínimas: protocolo HTTP o SOCKS5, host y puerto del servidor proxy, usuario y contraseña de autenticación. En Proxy Poland cada puerto usa un módem LTE 4G/5G físico en Polonia. Puedes cambiar la IP en 2 segundos mediante llamada a la API o desde el panel de control.
Acceso a la API de rotación (opcional pero recomendado)
Si vas a hacer scraping a gran escala, querrás rotar la IP entre sesiones. Para eso necesitas la URL de la API de rotación que te proporciona tu proveedor de proxy. La tendrás disponible en tu panel de control.
Key takeaway: Anota el host, puerto, usuario y contraseña de tu proxy antes de continuar. Los necesitarás en cada uno de los métodos siguientes.
Método básico: pasar el proxy como argumento de lanzamiento
La forma más simple de conectar un proxy 4G a Puppeteer es pasarlo directamente como argumento al lanzar el navegador. Este método funciona para HTTP y SOCKS5.
Aquí tienes el código completo para HTTP:
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({
args: ['--proxy-server=http://TU_HOST:TU_PUERTO']
});
const page = await browser.newPage();
await page.goto('https://example.com');
Para SOCKS5, solo cambia el prefijo:
args: ['--proxy-server=socks5://TU_HOST:TU_PUERTO']
Este método lanza todo el navegador con el proxy. Todas las páginas que abras en esa instancia usarán automáticamente el proxy configurado. Es perfecto para sesiones de scraping cortas donde no necesitas rotar la IP.
- Funciona con HTTP y SOCKS5
- Se aplica a todas las pestañas del navegador
- No requiere librerías adicionales
- El proxy se define una sola vez en el lanzamiento

Autenticación con credenciales en Puppeteer
El método anterior lanza el proxy, pero no pasa las credenciales. Si tu proxy requiere usuario y contraseña (y casi todos los proxies de calidad los requieren), necesitas un paso más.
Puppeteer expone el método page.authenticate() para esto:
await page.authenticate({
username: 'TU_USUARIO',
password: 'TU_CONTRASEÑA'
});
Llama a este método después de crear la página pero antes de navegar a cualquier URL. Si navegas primero, recibirás un error 407 (Proxy Authentication Required) y el script fallará.
Estructura completa con autenticación
Un script funcional y completo tiene esta estructura:
- Lanzar el navegador con
--proxy-server - Abrir una nueva página con
browser.newPage() - Autenticar con
page.authenticate() - Navegar a la URL objetivo con
page.goto() - Extraer datos con
page.evaluate() - Cerrar el navegador con
browser.close()
En nuestras pruebas con proxies 4G de Proxy Poland, este flujo completo tarda menos de 800ms en establecer la conexión y cargar la primera página. La latencia media de los módems LTE es de unos 40-80ms, lo que es perfectamente aceptable para scraping.
Key takeaway: Siempre llama a page.authenticate() antes de page.goto(). El orden importa y es uno de los errores más frecuentes entre los que empiezan con esta configuración.
Rotar la IP 4G durante una sesión activa en Puppeteer
Aquí es donde los proxies 4G realmente brillan frente a otras opciones. Puedes cambiar tu IP en 2 segundos sin interrumpir tu script, simplemente llamando al endpoint de la API de rotación de tu proveedor.
Rotación manual entre peticiones
El flujo básico es este:
- Hacer scraping de la primera página
- Llamar al endpoint de rotación de IP (GET request a la URL de tu panel)
- Esperar 2-3 segundos para que el módem asigne una nueva IP
- Continuar con la siguiente página usando la nueva IP
Para hacer la llamada de rotación desde Node.js puedes usar fetch nativo (Node 18+) o axios:
await fetch('https://api.tuproveedor.com/rotate?port=XXXX&token=TU_TOKEN');
await new Promise(r => setTimeout(r, 3000)); // esperar 3 segundos
Rotación automática
Si no quieres gestionar la rotación manualmente, Proxy Poland ofrece rotación automática configurable directamente desde el panel de control. Puedes fijar intervalos desde 2 minutos hasta varias horas según tus necesidades. Para scraping intensivo en plataformas como Amazon o Google Shopping, una rotación cada 10-15 peticiones funciona muy bien.
Con más de 50.000 rotaciones de IP al día en nuestra infraestructura de módems, el sistema está diseñado para manejar cargas de trabajo de producción sin interrupciones.
Verificar que tu proxy funciona correctamente
Configurar el proxy no es suficiente. Necesitas confirmar que realmente estás saliendo por la IP 4G y que tu IP real no se filtra en ningún punto.
Verificar la IP desde dentro de Puppeteer
La forma más directa es navegar a un servicio de detección de IP desde dentro de tu script y leer el resultado:
await page.goto('https://proxypoland.com/es/tools/what-is-my-ip');
Puedes ver tu IP actual y verificar que corresponde a un ASN de operador móvil polaco. También puedes usar nuestra herramienta de detección de IP directamente desde el navegador para comprobarlo antes de lanzar tu script.
Comprobar velocidad y latencia del proxy
La velocidad importa en scraping. Un proxy lento convierte un job de 30 minutos en 3 horas. Usa la herramienta de test de velocidad de proxy para medir la latencia real antes de empezar.
Detectar fugas DNS
Esto es crítico. Aunque tu IP de salida sea la del proxy 4G, si hay una fuga DNS, tus peticiones DNS revelan tu ubicación real. Comprueba si tienes fugas con la herramienta de test de fuga DNS antes de ejecutar cualquier campaña de scraping seria.
- Navega a un checker de IP desde Puppeteer para confirmar la IP del proxy
- Verifica que el ASN corresponde a un operador móvil, no a un datacenter
- Comprueba la latencia real con un speed test antes de empezar
- Haz un test de fuga DNS para asegurarte de que no expones tu IP real

Errores comunes y cómo solucionarlos
En nuestra experiencia ayudando a usuarios a configurar proxies 4G con Puppeteer, hay un conjunto de errores que aparecen una y otra vez. Aquí están los más frecuentes y su solución.
Error 407: Proxy Authentication Required
Causa: llamaste a page.goto() antes de page.authenticate(). Solución: invierte el orden. La autenticación siempre va primero.
El proxy se conecta pero sigue devolviendo la IP real
Causa: estás usando puppeteer-core y el argumento --proxy-server no se está pasando correctamente, o estás abriendo el navegador con un perfil de usuario que ignora la configuración del proxy. Solución: usa siempre args: ['--proxy-server=...'] en las opciones de lanzamiento y verifica que no tienes extensiones de proxy activas en el perfil.
Timeout en la conexión al proxy
Causa: el host o puerto son incorrectos, o el proxy tiene restricciones de IP de acceso (whitelist de IP). Solución: verifica los datos en tu panel de control. Si tienes whitelist de IP, añade tu IP de salida actual a la lista permitida.
El scraping funciona pero sigue siendo bloqueado
Causa: el proxy funciona pero el navegador delata otras señales fingerprint: user-agent genérico, resolución de pantalla inusual, ausencia de cookies, etc. Solución: configura un user-agent de móvil real, usa page.setViewport() para simular una pantalla de smartphone y añade delays aleatorios entre acciones.
- Siempre autentica antes de navegar
- Verifica la configuración con un checker de IP externo
- Añade tu IP a la whitelist si tu proxy lo requiere
- Combina el proxy 4G con buenas prácticas de fingerprinting
Preguntas Frecuentes
¿Puedo usar el mismo proxy 4G para múltiples instancias de Puppeteer en paralelo?
Sí, pero con matices. Puedes lanzar varias instancias de Puppeteer usando el mismo puerto de proxy. Todas compartirán la misma IP 4G hasta que hagas una rotación. Si necesitas IPs distintas simultáneamente, necesitas un puerto de proxy diferente por cada IP. En Proxy Poland cada puerto corresponde a un módem físico independiente.
¿Cuál es la diferencia entre usar HTTP y SOCKS5 con Puppeteer?
HTTP es suficiente para la mayoría de casos de scraping web. SOCKS5 es más versátil porque funciona a nivel TCP, lo que significa que puede manejar cualquier tipo de tráfico, no solo HTTP/HTTPS. Para Puppeteer, ambos funcionan bien. Si tienes problemas de compatibilidad con HTTP, prueba SOCKS5 con el prefijo socks5://.
¿Con qué frecuencia debo rotar la IP para evitar bloqueos?
Depende del sitio objetivo. Para Google, rotar cada 10-20 peticiones es una práctica segura. Para Instagram o Amazon, donde las sesiones tienen más peso que las IPs individuales, a veces es mejor mantener una IP estable durante toda una sesión de usuario simulada y rotar solo entre sesiones. No hay una regla universal, pero en nuestras pruebas, rotar cada 5 minutos ofrece un buen equilibrio.
¿Los proxies 4G funcionan con Playwright además de Puppeteer?
Sí. La configuración es casi idéntica. Playwright también acepta el argumento proxy en las opciones de lanzamiento del navegador, con campos server, username y password. La lógica de rotación via API es exactamente la misma independientemente del framework que uses.
Conclusión
La configuración de proxy 4G en Puppeteer no es complicada cuando tienes las piezas correctas en su lugar. Necesitas un proxy con una IP de operador móvil real, pasar las credenciales correctamente con page.authenticate(), verificar que no hay fugas de IP o DNS, y planificar tu estrategia de rotación según el sitio que vas a raspar. Los proxies 4G eliminan el problema de fondo del scraping moderno: las IPs de datacenter son demasiado fáciles de detectar y bloquear. Con una IP móvil real en CGNAT, tu tráfico se mezcla con el de miles de usuarios legítimos y los sistemas anti-bot no tienen una señal clara para bloquearte.
Si quieres probar esto sin riesgo, Proxy Poland ofrece una prueba gratuita de 1 hora sin tarjeta de crédito. Tienes acceso a un puerto real sobre un módem LTE 4G/5G en Polonia, con protocolo HTTP y SOCKS5, rotación de IP en 2 segundos y ancho de banda ilimitado. Consulta los planes y empieza tu prueba gratuita ahora.
