Cuando pagas por cada gigabyte transferido, el tráfico deja de ser algo abstracto y se convierte en dinero real. Un script descuidado que descarga imágenes pesadas y videos puede consumir tu presupuesto mensual en una sola noche. La buena noticia es que puedes controlar el consumo, y no es difícil si entiendes la mecánica una vez.

Esta guía te enseñará a calcular el tráfico antes de comenzar una tarea, medir el consumo real y reducirlo drásticamente con técnicas sencillas. Hablamos solo de la economía del tráfico, aplicable a cualquier tarifa con pago por volumen, sin importar el tipo de proxy.

Introducción: por qué el tráfico debe calcularse con anticipación

Con el pago por gigabytes, cada solicitud tiene un costo. El problema es que ese costo es invisible hasta que llega la factura o se agota el saldo. La mayoría de los principiantes calculan el consumo después del hecho, pero debes hacer lo contrario: estimar el presupuesto antes de comenzar y dejar un margen.

Qué obtendrás al final

Después de leer la guía, podrás desglosar cualquier página web por peso de componentes, escribir un contador de tráfico simple en Python o Node, aplicar técnicas de ahorro que reducen el consumo entre un 70 y un 95 por ciento, y calcular correctamente el presupuesto del proyecto. También entenderás cuándo conviene pagar por volumen y cuándo es mejor un plan ilimitado.

Para quién es esta guía

  • Para quienes hacen scraping y recopilación de datos a través de proxies.
  • Para especialistas en automatización que envían solicitudes en lotes.
  • Para marketers y analistas que trabajan con fuentes externas.
  • Para todos los que quieran pagar menos por el mismo resultado.

Qué necesitas saber de antemano

Tener una comprensión básica de las solicitudes HTTP será una ventaja, pero no es obligatorio. Explicaremos los términos clave en lenguaje sencillo. Para la parte práctica necesitarás algo de experiencia ejecutando scripts en Python o Node.js, pero el código lo damos listo con comentarios.

Cuánto tiempo tomará

Leer y entender la teoría tomará unos 30 minutos. Configurar el contador de tráfico tomará entre 15 y 20 minutos. Implementar las técnicas de ahorro en tu proyecto depende de su complejidad, pero las cosas básicas las aplicarás en una hora.

Preparación previa: herramientas y accesos

Antes de calcular y ahorrar tráfico, reunamos un conjunto de herramientas. Todo es gratuito y funciona en Windows, macOS y Linux.

Herramientas necesarias

  • Python 3.10 o superior - para scripts de medición de tráfico.
  • Node.js 18 o superior - alternativa para quienes prefieren JavaScript.
  • Biblioteca requests para Python - se instala con el comando pip install requests.
  • Biblioteca Playwright - para trabajar con navegador headless, se instala con pip install playwright y playwright install.
  • Navegador con herramientas de desarrollo - cualquier moderno sirve; el panel Network integrado es necesario para analizar páginas manualmente.
  • Acceso al panel de control de tu servicio proxy - ahí verás las estadísticas reales de tráfico.

Requisitos del sistema

Cualquier computadora fabricada en los últimos diez años servirá. Con 4 GB de RAM es suficiente, pero para un navegador headless son más cómodos 8. Se necesitan alrededor de 2 GB de espacio en disco para los motores de navegador de Playwright.

Qué instalar y configurar

  1. Descarga e instala Python desde el sitio oficial; durante la instalación marca la casilla para agregarlo al PATH.
  2. Abre la terminal y verifica la instalación con el comando python --version.
  3. Instala la biblioteca requests con el comando pip install requests.
  4. Si planeas trabajar con el navegador, instala Playwright con pip install playwright y luego ejecuta playwright install chromium.
  5. Asegúrate de tener a mano los parámetros de conexión al proxy: dirección, puerto, usuario y contraseña.

Consejo: Crea una carpeta separada para experimentos con tráfico. Así no te enredarás con los archivos y podrás revertir los cambios fácilmente si algo sale mal.

⚠️ Atención: Nunca guardes el usuario y la contraseña del proxy directamente en el código que vayas a enviar. Usa variables de entorno o un archivo de configuración separado que no caiga en manos equivocadas.

✅ Verificación: Si los comandos python --version y pip --version devuelven números de versión sin errores, la preparación se completó correctamente.

Conceptos básicos en lenguaje sencillo

Antes de contar bytes, aclaremos los términos. Sin jerga, de forma sencilla.

Qué es el tráfico

El tráfico es la cantidad de datos que pasa por tu conexión. Se compone de lo que envías al servidor y de lo que el servidor te responde. Con el pago por gigabytes se cuentan ambas direcciones, pero el tráfico entrante (las respuestas del servidor) suele ser mucho mayor que el saliente.

De qué se compone una solicitud

Cuando abres una página, el navegador envía una solicitud y recibe una respuesta. La respuesta consiste en encabezados (información de servicio sobre tamaño, tipo, codificación) y el cuerpo (el contenido en sí: HTML, imagen, script). El cuerpo casi siempre pesa mucho más que los encabezados.

Términos clave

  • Solicitud GET - una solicitud normal para obtener contenido. Devuelve tanto encabezados como cuerpo.
  • Solicitud HEAD - solicitud solo de encabezados, sin cuerpo. Ahorra tráfico cuando no necesitas el cuerpo.
  • Content-Length - encabezado que indica el tamaño del cuerpo de la respuesta en bytes.
  • Accept-Encoding - encabezado con el que pides al servidor que comprima la respuesta.
  • gzip y brotli - algoritmos de compresión que reducen el peso de los datos textuales varias veces.
  • Redirección - redireccionamiento de una dirección a otra. Cada redirección es una solicitud adicional y tráfico.
  • Navegador headless - un navegador sin ventana gráfica, controlado mediante código. Carga todo lo que carga un navegador normal, incluidos los recursos pesados.

Principio principal del ahorro

No cargar lo que no necesitas para la tarea. Suena obvio, pero precisamente la violación de esta regla es lo que devora el dinero. Si necesitas el texto de una ficha de producto, no necesitas las fotos del producto, videos de reseñas, banners publicitarios ni rastreadores de analítica.

De qué se compone el peso de una página: análisis real

El objetivo de esta sección es mostrar con un ejemplo concreto que la mayor parte del peso de una página normalmente no la necesitas. Tomemos una página típica de una tienda en línea.

Componentes del peso y su proporción

Una página moderna promedio pesa entre 2 y 5 megabytes. El peso se distribuye aproximadamente así:

  • Imágenes - 50-70 por ciento del peso. Fotos de productos, banners, iconos en alta resolución.
  • Scripts de JavaScript - 15-25 por ciento. Lógica de interfaz, widgets, chats, contadores.
  • Fuentes - 5-10 por ciento. Las fuentes personalizadas se descargan en archivos separados.
  • Analítica y rastreadores - 5-15 por ciento. Píxeles, sistemas de estadísticas, scripts publicitarios.
  • Video y medios - desde cero hasta cantidades enormes. Los videos de reproducción automática arruinan el presupuesto.
  • Documento HTML - solo 1-5 por ciento. Aquí es donde suelen estar los datos que necesitas.

Conclusión práctica

Si necesitas datos textuales del HTML, puedes prescindir del 90-95 por ciento del peso de la página. Una página de cinco megabytes se convierte en 100-200 kilobytes de HTML útil. Esto no es una exageración, sino un panorama típico.

Cómo analizar una página manualmente

  1. Abre la página en el navegador.
  2. Presiona F12 para abrir las herramientas de desarrollo.
  3. Ve a la pestaña Network.
  4. Actualiza la página con F5.
  5. En la parte inferior del panel verás el tamaño total de los datos cargados y la cantidad de solicitudes.
  6. Ordena las solicitudes por la columna Size para ver los recursos más pesados.
  7. Observa la columna Type: img son imágenes, script son scripts, font son fuentes.

Consejo: En el panel Network hay filtros por tipo de recurso. Haz clic en el botón Img para ver el peso total de todas las imágenes. Normalmente esa cifra es impactante.

✅ Verificación: Deberías ver que el documento HTML pesa decenas de veces menos que la suma de imágenes y scripts. Esto confirma que el mayor margen de ahorro está en prescindir de los medios.

Paso 1: Mide el consumo real de tu tarea

Objetivo de esta etapa: aprender a calcular con precisión cuánto tráfico consume tu script, para controlar el gasto de manera consciente.

Medición de tráfico en Python

La biblioteca requests permite conocer el tamaño de cada respuesta. Sumaremos la longitud del cuerpo y el tamaño aproximado de los encabezados.

  1. Crea un archivo traffic_counter.py en tu carpeta de trabajo.
  2. Escribe en él la importación de la biblioteca: import requests.
  3. Configura los ajustes del proxy como un diccionario con las claves http y https.
  4. Antes del bucle de solicitudes, crea una variable total_bytes igual a cero.
  5. Después de cada solicitud, súmale la longitud del contenido response.content.
  6. Para mayor precisión, añade el tamaño de los encabezados calculando la longitud de su representación de cadena.
  7. Al final, divide total_bytes entre 1048576 para obtener megabytes.

La lógica es simple: len(response.content) devuelve el número de bytes en el cuerpo de la respuesta. Los encabezados se calculan como la suma de las longitudes de claves y valores. Para la mayoría de las tareas, el cuerpo de la respuesta es la parte principal del tráfico, así que incluso un cálculo simple con content da una precisión de alrededor del 95 por ciento.

Punto importante: response.content devuelve datos ya descomprimidos, si el servidor envió una respuesta comprimida. El tráfico real por la red podría ser menor gracias a la compresión. Para medir exactamente los bytes transferidos, mira el encabezado Content-Length de la respuesta; muestra el tamaño del cuerpo tal como viajó por la red.

Cálculo preciso de bytes transferidos

  1. Después de la solicitud, accede a response.headers.get('Content-Length').
  2. Si el valor existe, úsalo como el peso real del cuerpo en bytes.
  3. Si el encabezado no está (por ejemplo, en transferencias por streaming), guíate por la longitud de content, recordando que es el tamaño descomprimido.

Medición de tráfico en Node.js

En Node puedes usar el módulo integrado https o la biblioteca axios. El principio es el mismo: sumamos el tamaño de los datos recibidos.

  1. Crea un archivo traffic_counter.js.
  2. Conecta la biblioteca para las solicitudes.
  3. Crea una variable totalBytes con valor cero.
  4. Para cada respuesta, toma el encabezado content-length o calcula la longitud del buffer de datos.
  5. Añade ese valor a totalBytes.
  6. Al final, muestra totalBytes dividido entre 1048576 para obtener megabytes.

Consejo: Registra el peso de cada solicitud por separado, no solo el total. Así verás de inmediato qué URL consume más y podrás optimizarla específicamente.

Comparación con las estadísticas del panel de control

Tu propio contador y las estadísticas del servicio proxy pueden diferir un poco. Es normal. Razones de la discrepancia:

  • El servicio cuenta todo el tráfico de la conexión, incluidos los paquetes de servicio y el establecimiento del canal seguro.
  • Tu contador solo considera la carga útil de las respuestas.
  • Los encabezados de las solicitudes, el intercambio DNS y el restablecimiento de conexiones añaden una pequeña sobrecarga.
  1. Ejecuta tu script para 100 solicitudes y anota el resultado de tu contador.
  2. Entra al panel de control del servicio proxy antes y después de la ejecución.
  3. Registra la diferencia en las lecturas del panel.
  4. Compárala con tu contador. Una diferencia del 10-20 por ciento es normal; son los gastos generales de la conexión.

⚠️ Atención: Siempre incluye la sobrecarga de conexión en el presupuesto. El gasto real casi siempre es entre un 10 y un 20 por ciento mayor que lo que muestra el cálculo de la carga útil del lado del cliente.

✅ Verificación: Si tu contador muestra una cifra cercana a la diferencia en el panel de control, ajustada por la sobrecarga, entonces el cálculo está bien configurado y puedes confiar en tus mediciones.

Paso 2: Técnicas básicas para reducir el tráfico

Objetivo de esta etapa: aplicar técnicas simples que reducen el gasto sin código complejo. Empecemos con las más accesibles.

Técnica 1: habilitar la compresión con Accept-Encoding

Los datos textuales (HTML, JSON, scripts) se comprimen muy bien. Al pedirle al servidor que envíe una respuesta comprimida, reduces el tráfico entre 3 y 5 veces.

  1. En los encabezados de la solicitud, agrega Accept-Encoding con el valor gzip, br, deflate.
  2. La biblioteca requests en Python lo hace automáticamente y descomprime la respuesta por ti.
  3. Asegúrate de no haber desactivado esta opción manualmente.
  4. Verifica el encabezado de respuesta Content-Encoding: si dice gzip o br, la compresión está funcionando.

Aquí br significa brotli, un algoritmo más moderno que comprime mejor que gzip. La mayoría de los servidores lo admiten. Para que brotli funcione en Python, instala el paquete brotli con el comando pip install brotli.

Consejo: La compresión es gratis en términos de tráfico y casi gratis en carga de CPU. Mantenla siempre activada. Es lo primero que debes revisar si el consumo es alto.

Técnica 2: usar HEAD en lugar de GET

Cuando solo necesitas los encabezados (por ejemplo, verificar si una página existe, conocer su tamaño o fecha de modificación), usa una solicitud HEAD. Esta devuelve los encabezados sin el cuerpo.

  1. En lugar de requests.get, llama a requests.head.
  2. Verifica los encabezados que necesitas en response.headers.
  3. El cuerpo no se transfiere, el ahorro alcanza el 99 por ciento en este tipo de verificaciones.

Escenarios típicos para HEAD: verificar el estado de los enlaces, determinar el tamaño de un archivo antes de descargarlo, verificar la fecha de última modificación para caché.

Técnica 3: eliminar redirecciones innecesarias

Cada redirección es una solicitud y respuesta completas adicionales. Si el sitio redirige constantemente de http a https o de una dirección a otra, pagas por vueltas innecesarias.

  1. Usa directamente la dirección final: con https y sin barras extra.
  2. Si sabes que la dirección redirige a www, accede directamente a la versión www.
  3. En la biblioteca, puedes desactivar el seguimiento de redirecciones con el parámetro allow_redirects igual a False, para controlar el proceso manualmente.
  4. Crea un mapa de redirecciones una vez y luego ve directamente a las direcciones finales.

Técnica 4: desactivar la carga de imágenes y medios en solicitudes simples

Cuando trabajas con la biblioteca requests, y no con un navegador, ya no cargas imágenes automáticamente. requests solo descarga el URL que especificaste. Esta es una gran ventaja frente al navegador.

Si solo necesitas el HTML, requests.get te devolverá el HTML sin imágenes, porque las imágenes se cargan por separado mediante solicitudes a los enlaces dentro del HTML. La biblioteca no hace esto, a menos que se lo pidas.

Consejo: Para tareas de recopilación de datos textuales, prefiere bibliotecas HTTP simples en lugar del navegador. El ahorro de tráfico se produce automáticamente en varias ocasiones, porque no cargas medios, fuentes ni rastreadores.

✅ Verificación: Compara el peso de la misma página cargada con requests y con un navegador. La diferencia suele ser de 10 a 30 veces a favor de la solicitud simple.

Paso 3: Trabajar con navegador headless y bloqueo de recursos

Objetivo de esta etapa: aprender a bloquear los tipos de recursos pesados en el navegador. Esta es la mayor ganancia en tráfico cuando el navegador es realmente necesario.

Cuándo es necesario el navegador

A veces no puedes prescindir del navegador: los datos se cargan mediante scripts después de abrir la página, existe protección contra solicitudes simples o el contenido se genera dinámicamente. En este caso, el navegador carga todo indiscriminadamente y el tráfico se dispara. La solución es interceptar y bloquear los tipos de recursos innecesarios.

Bloqueo de recursos en Playwright

Playwright permite interceptar cada solicitud del navegador y decidir si la dejas pasar o la cancelas. Cancelaremos imágenes, fuentes, medios y estilos.

  1. Crea un archivo browser_saver.py.
  2. Importa sync_playwright desde playwright.sync_api.
  3. Inicia el navegador en modo headless.
  4. Crea un contexto con la configuración del proxy mediante el parámetro proxy.
  5. Configura el manejador de rutas con page.route en todos los URL.
  6. Dentro del manejador, verifica el tipo de recurso con request.resource_type.
  7. Si el tipo está en la lista de bloqueados, llama a route.abort.
  8. De lo contrario, llama a route.continue_.

Lista de tipos para bloquear en una tarea típica de recopilación de texto: image, media, font, stylesheet. A veces también puedes bloquear parte de los scripts, pero con cuidado: sin ellos el contenido podría no cargarse.

Ejemplo de lógica del manejador

El manejador recibe un objeto de solicitud. Toma request.resource_type y lo compara con la lista de bloqueados. Si el recurso es una imagen o una fuente, lo cancelas y el navegador no gasta tráfico en él. Si es un documento o un script necesario, lo dejas pasar.

Punto importante: Bloquear image, media y font casi nunca rompe la recopilación de datos textuales, pero ahorra la mayor parte del tráfico. Empieza con estos; añade el bloqueo de scripts y estilos solo después de comprobar que la página sigue entregando los datos necesarios.

Bloqueo de recursos en Puppeteer en Node

  1. Activa la intercepción de solicitudes con page.setRequestInterception con valor true.
  2. Suscríbete al evento request.
  3. En el manejador, verifica request.resourceType.
  4. Para imágenes, fuentes y medios, llama a request.abort.
  5. Para el resto, llama a request.continue.

⚠️ Atención: Bloquear los estilos a veces interfiere con el contenido dinámico que depende de la visibilidad de los elementos. Si después de bloquear los estilos los datos desaparecen, vuelve a permitir stylesheet en la lista.

Consejo: Agrega un contador de solicitudes bloqueadas y permitidas. Verás en números que se bloquean entre el 80 y el 90 por ciento de las solicitudes, y eso es ahorro directo de dinero.

Ahorro adicional en el navegador

  • Desactiva la carga de imágenes a nivel de configuración del contexto, si el motor lo admite.
  • No abras pestañas innecesarias; cada una carga su propio conjunto de recursos.
  • Cierra la página en cuanto obtengas los datos, no la mantengas abierta.
  • Reutiliza el mismo contexto del navegador para una serie de páginas en lugar de reiniciarlo.

✅ Verificación: Ejecuta el navegador con y sin bloqueo en la misma página y compara el tráfico con tu contador. El ahorro debería ser del 70 al 90 por ciento. Si es menor, verifica que el manejador de rutas realmente se esté ejecutando.

Paso 4: Caché y deduplicación de solicitudes

Objetivo de esta etapa: dejar de ir dos veces por lo mismo. Las solicitudes repetidas por datos que no han cambiado son dinero tirado.

Por qué ocurren las repeticiones

En tareas grandes, el mismo recurso se solicita muchas veces: un script común en todas las páginas, enlaces repetidos, reinicio de un script caído desde el principio. Cada repetición es tráfico por el que pagas nuevamente.

Caché simple de respuestas

  1. Crea un diccionario o una base local donde la clave sea el URL y el valor sea la respuesta.
  2. Antes de hacer la solicitud, verifica si el URL está en el caché.
  3. Si está, toma los datos del caché sin hacer una solicitud de red.
  4. Si no está, haz la solicitud y guarda la respuesta en el caché.
  5. Para un caché persistente entre ejecuciones, guarda las respuestas en archivos o en una base local.

Este tipo de caché es especialmente efectivo si estás depurando el script y lo ejecutas muchas veces seguidas. La segunda y siguientes ejecuciones toman los datos del disco y no gastan ni un byte de tráfico de red.

Deduplicación de la lista de URL

  1. Antes de comenzar, reúne todos los URL en una sola lista.
  2. Convierte la lista en un conjunto para eliminar duplicados.
  3. Normaliza las direcciones: elimina parámetros innecesarios, unifica el formato con barras.
  4. Procesa solo las direcciones únicas.

Consejo: A menudo los duplicados están disfrazados con diferentes parámetros al final de la dirección que no cambian el contenido. Recorta las etiquetas de seguimiento y orden antes de comparar, y el número de URL únicos se reducirá notablemente.

Solicitudes condicionales para ahorrar

Si revisas periódicamente las mismas páginas, usa solicitudes condicionales. El servidor enviará la respuesta completa solo si los datos han cambiado.

  1. En la primera solicitud, guarda los encabezados ETag y Last-Modified de la respuesta.
  2. En las solicitudes posteriores, envíalos de vuelta en los encabezados If-None-Match e If-Modified-Since.
  3. Si los datos no han cambiado, el servidor devolverá una respuesta corta con el estado 304 sin cuerpo.
  4. Ahorras el peso de todo el cuerpo, pagando solo por un encabezado diminuto.

✅ Verificación: Después de implementar el caché, una segunda ejecución del script con los mismos datos debería mostrar un tráfico cercano a cero. Si el tráfico sigue siendo grande, verifica que la comprobación del caché esté antes de la solicitud de red, no después.

Paso 5: Cálculo del presupuesto de tráfico

Objetivo de esta etapa: aprender a proyectar el consumo y dejar un margen para no quedarte sin saldo a mitad de la tarea.

Fórmula básica

La fórmula principal es simple: el tráfico total es igual al número de páginas multiplicado por el peso promedio de una página. Pero el diablo está en los detalles, y los tendremos en cuenta.

  1. Determina el peso promedio de una página procesada después de todas las optimizaciones.
  2. Multiplica por la cantidad planeada de páginas.
  3. Añade la sobrecarga de conexión: alrededor del 15 por ciento adicional.
  4. Añade un margen para repeticiones y errores: otro 20 por ciento.
  5. El número resultante es tu presupuesto de tráfico realista.

Cómo medir el peso promedio

  1. Ejecuta tu script optimizado en una muestra de 50-100 páginas.
  2. Calcula el tráfico total con tu contador.
  3. Divide entre el número de páginas para obtener el peso promedio de una página.
  4. Usa ese número en la fórmula, no suposiciones teóricas.

Ejemplo de cálculo

Supongamos que después de bloquear los medios, el peso promedio de la página es de 150 kilobytes. Necesitas procesar 100 000 páginas. Calculamos: 150 kilobytes por 100 000 es igual a 15 000 000 de kilobytes, es decir, aproximadamente 14,3 gigabytes. Añadimos un 15 por ciento de sobrecarga y un 20 por ciento de margen, un total de unos 19,5 gigabytes. Ese es el volumen que debes considerar al elegir un plan.

Compáralo con la situación sin optimización: si cada página pesara 3 megabytes, las mismas 100 000 páginas darían 300 gigabytes. La diferencia es de quince veces, literalmente la diferencia en la factura.

Consejo: Siempre haz una prueba en una muestra pequeña antes de una ejecución grande. El peso promedio medido es más honesto que cualquier suposición y te evitará una sorpresa desagradable en la factura.

⚠️ Atención: No olvides el margen. Las tareas reales siempre traen sorpresas: algunas páginas resultarán más pesadas, algunas solicitudes deberán repetirse. Un presupuesto sin margen se agota en el peor momento.

Tabla de técnicas de ahorro

A continuación, un resumen de las técnicas principales: cuánto ahorra cada una y qué pagas por ello.

  • Compresión gzip y brotli - ahorra 60-80 por ciento en datos textuales - pagas con una carga menor de CPU al descomprimir.
  • Prescindir del navegador en favor de una biblioteca HTTP - ahorra 90-95 por ciento - pagas con la imposibilidad de obtener datos cargados por scripts.
  • Bloqueo de imágenes y medios en el navegador - ahorra 50-70 por ciento - pagas con la configuración de la intercepción de solicitudes, el riesgo es mínimo.
  • Bloqueo de fuentes - ahorra 5-10 por ciento - pagas casi nada, las fuentes no son necesarias para los datos.
  • Bloqueo de scripts y estilos - ahorra 15-25 por ciento - pagas con el riesgo de que el contenido no cargue; requiere verificación.
  • HEAD en lugar de GET - ahorra hasta 99 por ciento en solicitudes de verificación - pagas con la ausencia del cuerpo de la respuesta.
  • Eliminación de redirecciones - ahorra 10-30 por ciento en sitios con redirecciones - pagas con tiempo único para mapear las direcciones.
  • Caché de respuestas - ahorra hasta 100 por ciento en repeticiones - pagas con espacio en disco para el caché.
  • Deduplicación de URL - ahorra 10-40 por ciento si hay duplicados - pagas con una normalización única de la lista.
  • Solicitudes condicionales con ETag - ahorra hasta 99 por ciento si los datos no cambian - pagas guardando las marcas de versión.

✅ Verificación: Calcula el presupuesto con la fórmula y compáralo con el saldo de tu plan. Si el margen entra, puedes comenzar. Si no, vuelve a las técnicas de ahorro y reduce el peso promedio de la página.

Paso 6: Cuándo conviene el ilimitado y cuándo pagar por volumen

Objetivo de esta etapa: elegir honestamente el plan según tu tarea concreta, no pagar de más por un modelo de tarificación incorrecto.

Cuándo conviene pagar por gigabytes

  • La tarea es única o esporádica, con volúmenes pequeños.
  • Has optimizado bien el tráfico y sabes exactamente cuánto consumes.
  • El peso promedio de la página es bajo gracias al bloqueo de medios.
  • Los picos de carga son raros; la mayor parte del tiempo hay poco tráfico.
  • Valoras la transparencia: pagas exactamente por lo que usas.

Cuándo conviene el ilimitado con precio fijo

  • La tarea es constante, con volúmenes grandes y estables.
  • Te ves obligado a trabajar con el navegador y a cargar páginas pesadas.
  • Necesitas imágenes, videos u otros medios pesados como parte de la tarea.
  • El consumo es impredecible y podría aumentar bruscamente.
  • Valoras la tranquilidad psicológica: un pago fijo sin riesgo de excedente.

Cómo calcular el punto de transición

  1. Toma el precio por gigabyte de la tarifa por volumen.
  2. Toma el precio del plan ilimitado para el mismo período.
  3. Divide el precio del ilimitado entre el precio por gigabyte y obtendrás el volumen en gigabytes en el que las tarifas se igualan.
  4. Si tu proyección de consumo supera ese volumen, elige el ilimitado.
  5. Si es menor, elige pagar por volumen.

Por ejemplo, el ilimitado cuesta lo mismo que 50 gigabytes en la tarifa por pieza. Entonces, si gastas más de 50 gigabytes, el ilimitado es más barato. Si gastas menos, te conviene pagar por volumen. Tu presupuesto medido en el paso 5 te da la respuesta de inmediato.

Consejo: Primero optimiza el tráfico y luego elige el plan. Una buena optimización suele moverte de la zona del ilimitado a la zona donde conviene pagar por pieza, y te ahorra una cantidad sustancial.

Estrategia combinada

A veces lo óptimo es mantener dos enfoques: las tareas ligeras de texto con tarifa por pieza, y las tareas pesadas con navegador con ilimitado. Dividir por tipo de tarea suele ser más rentable que un solo plan para todo.

✅ Verificación: Calcula ambas opciones en dinero para tu proyección real. Deberías obtener una cantidad concreta de ahorro al elegir correctamente. Si la diferencia es mínima, elige el plan que sea más fácil de administrar.

Verificación del resultado: lista de verificación

Revisa la lista para asegurarte de que configuraste correctamente la medición y el ahorro de tráfico.

  • El contador de tráfico en Python o Node se ejecuta y muestra números sin errores.
  • Las lecturas del contador coinciden con las estadísticas del panel de control, ajustadas por la sobrecarga.
  • La compresión está habilitada en las solicitudes; en las respuestas se ve Content-Encoding gzip o br.
  • Para tareas de verificación se usa HEAD en lugar de GET.
  • Vas directamente a las direcciones finales sin redirecciones innecesarias.
  • Para tareas de texto usas una biblioteca HTTP en lugar del navegador cuando es posible.
  • En el navegador está configurado el bloqueo de imágenes, medios y fuentes.
  • El caché de respuestas está configurado; una segunda ejecución casi no gasta tráfico.
  • La lista de URL está limpia de duplicados.
  • Se calculó el presupuesto con la fórmula, con un margen del 15 y 20 por ciento.
  • Se eligió un plan acorde a la proyección de consumo.

Cómo probar

  1. Ejecuta el script optimizado en una muestra de 100 páginas.
  2. Registra el tráfico antes y después en el panel de control.
  3. Divide entre el número de páginas y compara con el peso promedio del cálculo.
  4. Si coincide, el sistema funciona y puedes escalar.

✅ Verificación: Si la prueba con 100 páginas se mantuvo dentro del presupuesto proyectado, estás listo para la ejecución completa. Multiplica el resultado por la escala y asegúrate de que el saldo alcance.

Errores típicos y sus soluciones

Analicemos los problemas comunes al medir y ahorrar tráfico.

Error 1: el contador muestra menos que el panel

Causa: solo cuentas el cuerpo de las respuestas, mientras que el servicio considera todo el intercambio de red con sobrecarga. Solución: incluye un ajuste del 15-20 por ciento y considéralo normal, no un error.

Error 2: la compresión no funciona

Causa: no está instalado el paquete para brotli o Accept-Encoding está desactivado manualmente. Solución: instala el paquete brotli, verifica los encabezados de la solicitud y asegúrate de que la respuesta tenga Content-Encoding.

Error 3: después de bloquear recursos desaparecieron los datos

Causa: bloqueaste scripts o estilos de los que depende la carga del contenido. Solución: vuelve a permitir script y stylesheet; bloquea solo image, media y font.

Error 4: el tráfico no baja con el caché

Causa: la verificación del caché está después de la solicitud de red, no antes. Solución: primero revisa el caché; solo si no hay datos, haz la solicitud por red.

Error 5: el navegador gasta tráfico incluso con el manejador

Causa: el manejador de rutas está asignado a un patrón de URL incorrecto o después de que la carga comenzó. Solución: configura la intercepción antes de abrir la página y para todos los URL usando un asterisco.

Error 6: el consumo real es mucho mayor que la proyección

Causa: el peso promedio se tomó de la teoría, no se midió en una prueba. Solución: siempre mide el peso promedio en una muestra real antes de una ejecución grande.

Error 7: el presupuesto se agotó a mitad de la tarea

Causa: no se incluyó margen para repeticiones y sobrecarga. Solución: añade un 35 por ciento de margen total a la proyección y supervisa el saldo durante el proceso.

Error 8: muchas solicitudes repetidas a la misma dirección

Causa: duplicados en la lista de URL debido a diferentes etiquetas al final de la dirección. Solución: normaliza las direcciones, corta los parámetros de seguimiento y convierte la lista en un conjunto.

Oportunidades adicionales y optimización

Cuando el ahorro básico está en marcha, puedes exprimir aún más.

Procesamiento por streaming de respuestas grandes

Si la respuesta es grande y solo necesitas una parte, léela por streaming y detén la lectura en cuanto obtengas lo necesario. Así no descargarás el archivo completo. Esto es útil cuando los datos están al inicio de un documento grande.

Límite de tamaño de respuesta

Establece un tamaño máximo de respuesta que estés dispuesto a aceptar. Si el servidor envía más, interrumpe la descarga. Es una protección contra páginas inesperadamente pesadas que podrían consumir mucho tráfico de una vez.

Procesamiento por lotes y paralelismo

Las solicitudes paralelas no ahorran tráfico por sí mismas, pero te permiten completar la tarea más rápido y detectar antes un problema de consumo. Mantén un número razonable de conexiones simultáneas para no perder el control del tráfico.

Registro y monitoreo en tiempo real

  1. Lleva un contador de tráfico en vivo y muéstralo cada pocos cientos de solicitudes.
  2. Establece un umbral que, al alcanzarse, detenga el script.
  3. Así nunca superarás el presupuesto sin darte cuenta.

Consejo: El stop automático por límite de tráfico es el mejor seguro. El script se detendrá solo en el umbral establecido, y el excedente se vuelve imposible incluso si hay un error en la lógica.

Trabajar solo con los fragmentos necesarios de la API

Si los datos están disponibles a través de una API, solicita solo los campos necesarios, cuando sea compatible. Muchas interfaces permiten especificar qué campos devolver, lo que reduce drásticamente el peso de la respuesta en comparación con la entrega completa.

FAQ: preguntas frecuentes sobre ahorro de tráfico

¿Se cuenta el tráfico saliente al pagar por gigabytes?

Normalmente se cuenta tanto el entrante como el saliente, pero el saliente (tus solicitudes) es mucho menor que el entrante (las respuestas del servidor). El mayor ahorro siempre está en el tráfico entrante.

¿Qué tan preciso es el cálculo del lado del cliente?

La precisión es de aproximadamente 85-95 por ciento respecto al tráfico real de red. La diferencia es la sobrecarga de conexión. Para planificar el presupuesto es suficiente, siempre que incluyas el ajuste.

¿Se puede prescindir completamente del navegador?

Para muchas tareas de recopilación de texto, sí; una biblioteca HTTP simple funciona y ahorra tráfico varias veces. El navegador solo es necesario cuando el contenido se genera mediante scripts después de cargar la página.

¿La compresión está habilitada por defecto?

En la mayoría de las bibliotecas modernas, sí, pero vale la pena verificarlo. Para brotli puede ser necesario un paquete adicional. Siempre revisa el encabezado Content-Encoding en la respuesta.

¿Qué bloquear en el navegador primero?

Empieza con imágenes, medios y fuentes, que son el mayor y más seguro ahorro. Bloquea scripts y estilos solo después de comprobar que los datos siguen cargándose.

¿Cómo saber si el presupuesto alcanza?

Mide el peso promedio de la página en una prueba, multiplícalo por el número de páginas, añade un 35 por ciento de margen y compáralo con el saldo del plan. Si cabe, alcanza.

¿El caché ayuda en un recorrido único?

En un recorrido único sin repeticiones, sirve de poco, pero ahorra mucho durante la depuración y los reinicios. Las solicitudes condicionales y la deduplicación ayudan incluso en un solo recorrido.

¿Qué es mejor para grandes volúmenes constantes?

Por lo general, el ilimitado con precio fijo. Calcula el punto de transición: divide el precio del ilimitado entre el precio por gigabyte y compáralo con tu proyección de consumo.

¿El número de redirecciones afecta la factura?

Sí, cada redirección es una solicitud y respuesta adicional. En sitios con cadenas de redirecciones, eliminar los saltos innecesarios ahorra una parte notable del tráfico.

¿Cómo evitar superar el presupuesto accidentalmente?

Configura un contador en vivo y un stop automático al alcanzar el umbral de tráfico. El script se detendrá solo, y el excedente se vuelve imposible incluso ante un error.

Conclusión

Has recorrido el camino desde no entender a dónde va el tráfico hasta tener un control total sobre el consumo. Ahora sabes desglosar el peso de una página por componentes y ves que la mayor parte del peso no la necesitas. Configuraste un contador de tráfico y lo comparas con las estadísticas del panel. Aplicas compresión, usas HEAD en lugar de GET, eliminas redirecciones y prefieres bibliotecas HTTP ligeras al navegador pesado.

Cuando el navegador es necesario, bloqueas imágenes, medios y fuentes, y reduces el tráfico entre un 70 y un 90 por ciento. Almacenas en caché las respuestas y no vas dos veces por lo mismo. Y lo más importante: calculas el presupuesto con una fórmula que incluye margen y eliges el plan conscientemente, no al azar.

Qué hacer ahora

  1. Implementa las técnicas básicas en tu proyecto actual hoy mismo.
  2. Haz una prueba y mide el peso promedio real de la página.
  3. Recalcula el presupuesto y, si es necesario, cambia de plan.
  4. Configura el stop automático por límite como seguro.

El ahorro de tráfico es una habilidad que se paga sola en cada proyecto. Si inviertes una vez el tiempo en configurar la medición y la optimización, pagarás mucho menos por el mismo resultado. Empieza poco a poco, mide el efecto en números y te sorprenderá lo mucho más barato que puede costar el mismo trabajo.