{"id":20738,"date":"2026-08-17T15:05:56","date_gmt":"2026-08-17T13:05:56","guid":{"rendered":"https:\/\/webhosting.de\/brotli-compression-performance-cpu-verbrauch-technik\/"},"modified":"2026-08-17T15:05:56","modified_gmt":"2026-08-17T13:05:56","slug":"brotli-compresion-rendimiento-consumo-de-la-cpu-tecnologia","status":"publish","type":"post","link":"https:\/\/webhosting.de\/es\/brotli-compression-performance-cpu-verbrauch-technik\/","title":{"rendered":"Nivel de compresi\u00f3n de Brotli: \u00bfrendimiento o consumo de CPU?"},"content":{"rendered":"<p><strong>Brotli Compression<\/strong> Me obliga a sopesar claramente entre un tama\u00f1o de transferencia menor y un mayor consumo de la CPU. Mostrar\u00e9 c\u00f3mo, para respuestas din\u00e1micas, suelo conseguir el mejor equilibrio entre tiempo y tama\u00f1o con los niveles 4-6, y cu\u00e1ndo los niveles 9-11 aportan ventajas reales con los recursos preempaquetados.<\/p>\n\n<h2>Puntos centrales<\/h2>\n\n<p>Los siguientes puntos me sirven de gu\u00eda concisa para la planificaci\u00f3n y el funcionamiento:<\/p>\n<ul>\n  <li><strong>Selecci\u00f3n de nivel<\/strong>: Los niveles m\u00e1s altos ahorran bytes, pero consumen m\u00e1s recursos de la CPU y m\u00e1s tiempo.<\/li>\n  <li><strong>Din\u00e1mica<\/strong>: Para la compresi\u00f3n en directo, los niveles 4-6 suelen ofrecer el mejor equilibrio.<\/li>\n  <li><strong>Est\u00e1tica<\/strong>: Los recursos precompilados se benefician de los niveles 9 a 11.<\/li>\n  <li><strong>Comparaci\u00f3n<\/strong>: Brotli suele reducir m\u00e1s el tama\u00f1o del texto, mientras que Gzip lo comprime m\u00e1s r\u00e1pido.<\/li>\n  <li><strong>Operaci\u00f3n<\/strong>: Par\u00e1metros como el TTFB, la carga de la CPU y la tasa de errores determinan la elecci\u00f3n.<\/li>\n<\/ul>\n\n<h2>Por qu\u00e9 es importante el nivel de \u00abBrotli\u00bb<\/h2>\n\n<p>Yo lo decido <strong>Nivel de compresi\u00f3n<\/strong> No por intuici\u00f3n, sino en funci\u00f3n del esfuerzo y el beneficio. Con cada nivel aumenta la carga de c\u00e1lculo, mientras que, a partir de cierto punto, el ahorro adicional de bytes es m\u00ednimo. Es precisamente aqu\u00ed donde se invierte la ventaja: un archivo unos pocos puntos porcentuales m\u00e1s peque\u00f1o no siempre justifica una mayor latencia y carga de la CPU. Especialmente en la compresi\u00f3n en tiempo real, un nivel demasiado alto ralentiza el tiempo de respuesta, aunque la transferencia de datos se reduzca m\u00ednimamente. Por eso, utilizo mediciones y analizo la latencia, el tiempo de c\u00e1lculo y el rendimiento antes de fijar el nivel.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/brotli-kompression-performance-4912.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Cu\u00e1ndo decido no comprimir<\/h2>\n\n<p>No todos los bytes suponen un ahorro de tiempo significativo. Las respuestas muy peque\u00f1as (por ejemplo, de menos de 1-2 KB) y los formatos binarios ya comprimidos apenas ofrecen ventajas, pero consumen recursos de la CPU. Por eso utilizo <strong>Valores umbral<\/strong> por tipo MIME y ruta:<\/p>\n<ul>\n  <li>Peque\u00f1os fragmentos de texto o respuestas 204\/304: enviarlos sin comprimir.<\/li>\n  <li>Im\u00e1genes, v\u00eddeos, archivos PDF, archivos comprimidos: excluirlos por regla general (a menudo ya est\u00e1n comprimidos internamente).<\/li>\n  <li>Respuestas de streaming de gran volumen: \u00bfmejor con Gzip o sin \u00e9l, para evitar picos de latencia?.<\/li>\n<\/ul>\n<p>Con exclusiones claras, aligero la carga de los trabajadores y mantengo estable el TTFB de P95\/P99.<\/p>\n\n<h2>Par\u00e1metros del encoder que marcan la diferencia<\/h2>\n\n<p>Adem\u00e1s del nivel de calidad, influyen <strong>Opciones del codificador<\/strong> El tiempo y la raz\u00f3n se perciben claramente:<\/p>\n<ul>\n  <li><strong>Modo<\/strong> (generic, text, font): Para HTML\/CSS\/JS utilizo \u201etext\u201c, y para las fuentes, \u201efont\u201c. Esto ayuda al codificador a reconocer mejor los patrones.<\/li>\n  <li><strong>Tama\u00f1o de la ventana (lgwin)<\/strong>: Las ventanas m\u00e1s grandes suelen mejorar la relaci\u00f3n de lectura en contenidos largos, pero consumen m\u00e1s RAM y CPU. Por motivos pr\u00e1cticos, me quedo con los valores predeterminados y solo los aumento para bloques de texto concretos.<\/li>\n  <li><strong>Tama\u00f1o del bloque<\/strong>: Los bloques demasiado peque\u00f1os empeoran la relaci\u00f3n, mientras que los demasiado grandes aumentan la latencia. Realizo las pruebas con cargas \u00fatiles representativas en lugar de ajustar los par\u00e1metros de forma generalizada.<\/li>\n  <li><strong>Estrategia de \u00abflush\u00bb<\/strong>: El vaciado agresivo reduce la latencia del b\u00fafer, pero disminuye la compresi\u00f3n. Para las API con streaming desde el servidor, elijo una frecuencia de vaciado moderada.<\/li>\n<\/ul>\n\n<h2>Contenidos din\u00e1micos: Sweet Spot 4\u20136<\/h2>\n\n<p>En el caso de respuestas en HTML, JSON o API, las comprimo en tiempo real y presto especial atenci\u00f3n a <strong>Tiempo de respuesta<\/strong>. Los niveles 4-6 suelen ofrecer aqu\u00ed la mejor combinaci\u00f3n entre tama\u00f1o de archivo, consumo de CPU y latencia. Esto reduce el TTFB, mantiene la carga de trabajo dentro de unos l\u00edmites y aumenta la reserva de capacidad en los picos de tr\u00e1fico. Cuando pruebo niveles m\u00e1s altos, a menudo observo un aumento de los tiempos de CPU sin que se aprecie ninguna ventaja en la red. Quien quiera profundizar m\u00e1s, encontrar\u00e1 muchos detalles pr\u00e1cticos sobre <a href=\"https:\/\/webhosting.de\/es\/nivel-de-compresion-carga-de-la-cpu-gzip-brotli-optimizacion-flujo-de-datos\/\">Carga de la CPU frente al nivel<\/a>, que ponen de manifiesto precisamente ese compromiso.<\/p>\n\n<p>En <strong>Transmisi\u00f3n<\/strong> (por ejemplo, SSE o JSON fragmentado), en algunos casos prescindo de Brotli o mantengo deliberadamente niveles m\u00e1s bajos. Motivo: Brotli aprovecha el contexto a lo largo de secciones m\u00e1s largas; los vaciados frecuentes anulan esta ventaja y aumentan la carga de la CPU. Por eso, eval\u00fao para cada ruta si es m\u00e1s importante el rendimiento o la latencia, y si las microcach\u00e9s pueden gestionar respuestas cada segundo.<\/p>\n\n<h2>Recursos est\u00e1ticos: comprimir previamente<\/h2>\n\n<p>En el caso del CSS, el JavaScript y otros recursos, los empaqueto antes de la entrega y acepto un mayor <strong>tiempo de c\u00e1lculo<\/strong> en el servidor de compilaci\u00f3n. Los niveles 9-11 son adecuados en este caso, ya que los costes solo se incurren una vez y cada ahorro adicional cuenta a largo plazo. Esto resulta especialmente rentable cuando hay muchas descargas recurrentes y con conexiones lentas. Guardo los artefactos comprimidos junto con el original y dejo que el servidor proporcione el formato adecuado en funci\u00f3n del cliente. Lo importante es prever suficiente CPU y RAM durante la compilaci\u00f3n para que las implementaciones se ejecuten sin problemas.<\/p>\n\n<p>En la compilaci\u00f3n, establezco unas <strong>Reglas de exclusi\u00f3n<\/strong> (por ejemplo, nada de .jpg\/.png\/.mp4\/.zip\/.woff2), control de versiones y eliminaci\u00f3n de la cach\u00e9 mediante los nombres de los archivos. De este modo, los ETags se mantienen coherentes y evito la doble compresi\u00f3n. En el caso de paquetes grandes, divido los archivos si la aplicaci\u00f3n lo permite; los elementos m\u00e1s peque\u00f1os, ordenados por temas, se almacenan mejor en cach\u00e9 y se benefician de forma desproporcionada del vocabulario de Brotli.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/brotliconference_1234.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Brotli frente a Gzip en el d\u00eda a d\u00eda<\/h2>\n\n<p>Los formatos de texto como HTML, CSS o JS suelen comprimirse un poco m\u00e1s con Brotli, mientras que Gzip suele comprimir m\u00e1s r\u00e1pido y ocupa menos <strong>CPU<\/strong> se necesita. Por eso, para la compresi\u00f3n en tiempo real en p\u00e1ginas con mucho tr\u00e1fico, utilizo Gzip como alternativa por si aumentan los picos de uso de la CPU. Para los recursos est\u00e1ticos, prefiero Brotli, porque el menor tama\u00f1o de transferencia se nota en cada consulta. En sistemas m\u00e1s antiguos o en cadenas de proxy, mantengo la flexibilidad y utilizo ambos formatos. Una buena introducci\u00f3n a la comparaci\u00f3n directa la ofrece <a href=\"https:\/\/webhosting.de\/es\/brotli-vs-gzip-compresion-de-paginas-web-rendimiento-ultrarrapido\/\">Brotli frente a Gzip<\/a> con sus puntos fuertes y d\u00e9biles caracter\u00edsticos.<\/p>\n\n<p>Para m\u00ed es importante la <strong>Planificaci\u00f3n de capacidades<\/strong>: Si la m\u00e9trica es el rendimiento (solicitudes por segundo), Gzip sale ganando cuando los recursos de CPU son limitados. Si el ancho de banda o la salida de la CDN son costosos, Brotli se amortiza muy r\u00e1pidamente en el caso de los recursos. Por eso combino ambos: Brotli como est\u00e1ndar para los contenidos est\u00e1ticos y Gzip como reserva el\u00e1stica en tiempo real.<\/p>\n\n<h2>Presupuesto de CPU, latencia y TTFB<\/h2>\n\n<p>Primero defino un <strong>Presupuesto para la CPU<\/strong> por solicitud y baso el nivel en ello. As\u00ed evito que la compresi\u00f3n domine el TTFB o que los picos de carga provoquen errores. Resulta \u00fatil una clasificaci\u00f3n seg\u00fan el uso previsto, que utilice efectos relativos en lugar de cifras exactas. La siguiente tabla muestra c\u00f3mo relaciono los niveles con los escenarios. No sustituye a una prueba de rendimiento, pero ofrece un punto de partida fiable para las pruebas.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Nivel de Brotli<\/th>\n      <th>Recursos de CPU y tiempo necesarios<\/th>\n      <th>Ahorro de espacio<\/th>\n      <th>Adecuado para<\/th>\n      <th>Nota<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>1-3<\/td>\n      <td>bajo<\/td>\n      <td>moderado<\/td>\n      <td>Compresi\u00f3n en tiempo real con recursos limitados<\/td>\n      <td><strong>R\u00e1pido<\/strong>, pero con menos ahorro<\/td>\n    <\/tr>\n    <tr>\n      <td>4-6<\/td>\n      <td>medio<\/td>\n      <td>bien<\/td>\n      <td>Respuestas din\u00e1micas en HTML\/API<\/td>\n      <td>A menudo el <strong>Punto dulce<\/strong> para TTFB<\/td>\n    <\/tr>\n    <tr>\n      <td>7\u20138<\/td>\n      <td>aumentado<\/td>\n      <td>muy bueno<\/td>\n      <td>Escenarios mixtos, en parte en directo y en parte grabados<\/td>\n      <td>Solo si hay aire en el <strong>Presupuesto para la CPU<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>9-11<\/td>\n      <td>alta<\/td>\n      <td>m\u00e1ximo<\/td>\n      <td>Recursos est\u00e1ticos precomprimidos<\/td>\n      <td>Aumenta el tiempo de compilaci\u00f3n, se reduce la transferencia<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Negociaci\u00f3n de contenido, \u00abVary\u00bb y claves de cach\u00e9<\/h2>\n\n<p>Para garantizar que los clientes reciban siempre la mejor opci\u00f3n, considero que <strong>Negociaci\u00f3n de contenidos<\/strong> limpia:<\/p>\n<ul>\n  <li><strong>Vary: Accept-Encoding<\/strong> Es imprescindible; de lo contrario, las cach\u00e9s proporcionar\u00e1n formatos incorrectos a los clientes posteriores.<\/li>\n  <li>Guarda el archivo .br precomprimido junto al archivo original; el servidor lo procesa correctamente <strong>Content-Encoding: br<\/strong> y la correspondiente <strong>Tipo de contenido<\/strong>.<\/li>\n  <li>En el caso de las CDN, me aseguro de que <strong>Claves de cach\u00e9<\/strong> \u201eTener en cuenta el encabezado \u201cAccept-Encoding\u00bb y almacenar en cach\u00e9 por separado Brotli y Gzip.<\/li>\n  <li>En cuanto a ETag\/Last-Modified, mantengo la coherencia: los archivos comprimidos y los no comprimidos cuentan con sus propios validadores para evitar discrepancias.<\/li>\n<\/ul>\n<p>Adem\u00e1s, compruebo c\u00f3mo reaccionan los servidores proxy y los clientes HTTP\/1.1 m\u00e1s antiguos. En caso de duda, doy prioridad a la estabilidad y mantengo Gzip activado o env\u00edo los datos sin comprimir.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/brotli-compression-balance-4523.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Almacenamiento en cach\u00e9, diccionarios y precompresi\u00f3n<\/h2>\n\n<p>Alivio la carga del servidor mediante <strong>Almacenamiento en cach\u00e9<\/strong> de respuestas comprimidas, siempre que el contenido lo permita. En el caso de patrones recurrentes en el texto, merece la pena echar un vistazo a los diccionarios, que aumentan la ratio y reducen el tiempo por solicitud. Cuando utilizo la precompresi\u00f3n, me aseguro de que los encabezados de cach\u00e9 est\u00e9n limpios y de que los nombres de los archivos tengan extensiones como .br, para que el servidor los sirva sin necesidad de recodificaci\u00f3n. Para los contenidos din\u00e1micos, compruebo las cach\u00e9s de borde o las microcach\u00e9s con tiempos de vida de segundos, que alivian considerablemente las rutas m\u00e1s transitadas. De este modo, mantengo el consumo de CPU dentro de lo previsible y garantizo tiempos de respuesta uniformes.<\/p>\n\n<p><strong>Diccionarios<\/strong> Lo utilizo de forma espec\u00edfica cuando muchas respuestas contienen tokens similares (por ejemplo, espacios de nombres o claves JSON). Mantengo los diccionarios peque\u00f1os y les asigno versiones para poder sustituirlos sin tiempo de inactividad. En el caso de las API din\u00e1micas, el margen de beneficio es menor, pero sale a cuenta si el tr\u00e1fico es homog\u00e9neo.<\/p>\n\n<h2>Configuraci\u00f3n: Nginx, Apache, CDN<\/h2>\n\n<p>Activo Brotli de forma espec\u00edfica por <strong>Tipo MIME<\/strong> y bloqueo los formatos binarios, que rara vez aportan ventajas. En Nginx, establezco diferentes niveles mediante \u00abmap\u00bb en funci\u00f3n del tama\u00f1o del archivo y la ruta, para proteger las rutas m\u00e1s transitadas. En Apache, aplico un enfoque similar mediante cadenas de filtros y excepciones claras. En las CDN utilizo la precompresi\u00f3n y los encabezados \u00abVary\u00bb para que los clientes reciban de forma fiable el formato adecuado. La gu\u00eda sobre <a href=\"https:\/\/webhosting.de\/es\/configuracion-de-compresion-http-optimizada-para-mejorar-el-rendimiento\/\">Compresi\u00f3n HTTP<\/a> con opciones pr\u00e1cticas.<\/p>\n\n<p>Adem\u00e1s, defino una <strong>tama\u00f1o m\u00ednimo<\/strong> (min_length), a partir de la cual se activa la compresi\u00f3n, y aseg\u00farate de que los proxies inversos no vuelvan a comprimir. Detecto la doble codificaci\u00f3n inmediatamente por los encabezados \u00abContent-Length\u00bb err\u00f3neos o los errores del cliente. Para <strong>Contenido parcial (solicitudes de rango)<\/strong> Tengo los archivos originales a mano; las versiones comprimidas solo son adecuadas hasta cierto punto y pueden confundir a los cach\u00e9s.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/tech_office_brotli_1537.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Seguimiento y comparativas<\/h2>\n\n<p>Mido cada cambio del <strong>Niveles<\/strong> con pruebas de rendimiento controladas y m\u00e9tricas de producci\u00f3n. Son importantes el TTFB, el rendimiento, la carga de la CPU por trabajador y la tasa de errores bajo carga. Para las rutas din\u00e1micas, compruebo los valores p95\/p99, ya que los valores at\u00edpicos influyen en la experiencia del usuario. Adem\u00e1s, comparo la composici\u00f3n del tr\u00e1fico y el tama\u00f1o de los recursos antes y despu\u00e9s de la migraci\u00f3n para detectar efectos secundarios. Solo cuando los valores se mantienen estables durante varios d\u00edas, establezco ese perfil como nueva l\u00ednea de base.<\/p>\n\n<p>Mi <strong>Disciplina de prueba<\/strong> En resumen:<\/p>\n<ul>\n  <li>Utiliza cargas \u00fatiles representativas (peque\u00f1as, medianas y grandes) y encabezados reales.<\/li>\n  <li>Realizar el calentamiento y, a continuaci\u00f3n, hacer funcionar la ventana de medici\u00f3n con una carga estable.<\/li>\n  <li>Supervisar por separado los factores del sistema que compiten entre s\u00ed (GC, E\/S, descarga de TLS).<\/li>\n  <li>Compara siempre \u201eigual con igual\u201c: cabezas de serie id\u00e9nticas, conjuntos de datos id\u00e9nticos.<\/li>\n<\/ul>\n\n<h2>Seguridad y casos extremos<\/h2>\n\n<p>La compresi\u00f3n puede favorecer los canales laterales si los tokens secretos acaban en las respuestas reflejadas. Yo <strong>Desactivar la compresi\u00f3n<\/strong> en puntos finales sensibles (flujos de inicio de sesi\u00f3n, tokens CSRF en HTML) o separarlos en rutas independientes. Cuando no haya otra opci\u00f3n, reduzco el contexto (por ejemplo, utilizando plantillas m\u00e1s neutras) para minimizar las diferencias de longitud dependientes de los datos.<\/p>\n\n<p>Otros escollos que surgen en la pr\u00e1ctica:<\/p>\n<ul>\n  <li><strong>Artefactos da\u00f1ados<\/strong> debido a compilaciones fallidas: antes de la implementaci\u00f3n, comprueba las sumas de comprobaci\u00f3n y aseg\u00farate de que las extensiones (.br) y los tipos MIME sean los correctos.<\/li>\n  <li><strong>Proxies incompatibles<\/strong>: En caso de errores inexplicables de \u00ab206\/Content-Encoding\u00bb, activar la opci\u00f3n de recurso alternativo a Gzip.<\/li>\n  <li><strong>Tiempos muertos<\/strong> Si los niveles son elevados: reducir los niveles o aumentar los l\u00edmites de trabajadores\/CPU.<\/li>\n  <li><strong>Faltan los encabezados Vary<\/strong>: Da lugar a respuestas \u201eerr\u00f3neas\u201c en la cach\u00e9 de la CDN, lo que se manifiesta como errores de visualizaci\u00f3n en determinados navegadores.<\/li>\n<\/ul>\n\n<h2>Prioridades seg\u00fan la fase del proyecto<\/h2>\n\n<p>En las primeras fases, mantengo el nivel entre bajo y medio, para que <strong>Iteraci\u00f3n<\/strong> y que las implementaciones sigan siendo r\u00e1pidas. En cuanto aumenta el tr\u00e1fico, optimizo los recursos est\u00e1ticos de forma m\u00e1s agresiva y ajusto las respuestas din\u00e1micas hasta dar con el punto \u00f3ptimo. Cuando se avecinan picos de tr\u00e1fico, prefiero escalar los trabajadores y la capacidad de la cach\u00e9 en lugar de aumentar el nivel sin pensarlo bien. Para el p\u00fablico internacional, invierto en precompresi\u00f3n y almacenamiento en cach\u00e9 en el borde, porque cada milisegundo cuenta en la red. De este modo, la plataforma sigue siendo fiable sin malgastar recursos.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/BrotliKompression0034.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>WordPress y pr\u00e1cticas de alojamiento web<\/h2>\n\n<p>En WordPress Stacks configuro Brotli del lado del servidor, no a trav\u00e9s de <strong>Plugin<\/strong> en la ruta de PHP para evitar la sobrecarga de la CPU. Dejo que los procesos de compilaci\u00f3n compriman los recursos por adelantado y lo combino con la invalidaci\u00f3n de la cach\u00e9 tras la implementaci\u00f3n. La cach\u00e9 de objetos y la cach\u00e9 de p\u00e1ginas reducen a\u00fan m\u00e1s la compresi\u00f3n din\u00e1mica. Como ruta alternativa, mantengo Gzip activo para que incluso los clientes menos habituales reciban respuestas limpias. Quien est\u00e9 pensando en iniciarse en esto puede guiarse por esta gu\u00eda pr\u00e1ctica y avanzar paso a paso hacia niveles m\u00e1s altos, siempre que la telemetr\u00eda lo permita.<\/p>\n\n<p>En cuanto a las configuraciones multisitio y los temas \u00abheadless\u00bb, considero que <strong>pro\u2011Route<\/strong> Hay diferentes perfiles disponibles: rutas API con los niveles 4-5, rutas de renderizado HTML con los niveles 5-6 y paquetes est\u00e1ticos estrictamente precargados con los niveles 10-11. Es importante que vincule correctamente las claves de cach\u00e9 y la l\u00f3gica de purga a los nuevos nombres de artefactos, para que no quede ning\u00fan archivo .br obsoleto en circulaci\u00f3n.<\/p>\n\n<h2>Soluci\u00f3n de problemas y errores habituales<\/h2>\n\n<p>Si algo va a tirones, sigo un procedimiento sistem\u00e1tico:<\/p>\n<ul>\n  <li><strong>Doble compresi\u00f3n<\/strong>: Comprobar si el servidor de aplicaciones (upstream) ya realiza la compresi\u00f3n y si el servidor perimetral vuelve a codificarla. Soluci\u00f3n: Asignar la responsabilidad a un \u00fanico punto.<\/li>\n  <li><strong>Longitud de contenido incorrecta<\/strong>: Si se utiliza \u00abTransfer-Encoding: chunked\u00bb, no se debe enviar una longitud fija; de lo contrario, los navegadores interrumpir\u00e1n la carga.<\/li>\n  <li><strong>Falta de originales<\/strong>: Para las solicitudes de rango, los clientes antiguos y la depuraci\u00f3n, es imprescindible disponer de archivos sin comprimir.<\/li>\n  <li><strong>Nivel demasiado agresivo<\/strong>: Los s\u00edntomas son un aumento del p99-TTFB, valores espor\u00e1dicos de 5xx y saturaci\u00f3n de la CPU. Soluci\u00f3n: reducir los niveles o reforzar el almacenamiento en cach\u00e9.<\/li>\n  <li><strong>Se ha modificado la composici\u00f3n de la cartera<\/strong>: Tras las actualizaciones del framework, cambian las frecuencias de los tokens; el ratio puede empeorar de repente. Hay que volver a realizar pruebas comparativas y ajustar los diccionarios.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/brotli-kompression-cpu-4982.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Brevemente resumido<\/h2>\n\n<p>Elijo el nivel de forma consciente y lo vinculo a requisitos estrictos <strong>M\u00e9tricas<\/strong>. Para los contenidos din\u00e1micos, suelo establecer los niveles 4-6, porque el TTFB es importante y los picos de CPU salen caros. Los recursos est\u00e1ticos los comprimo de antemano con los niveles 9-11, ya que en este caso cada punto porcentual adicional de ahorro tiene un efecto multiplicador. Brotli suele ofrecer los mejores tama\u00f1os, mientras que Gzip destaca por su velocidad y como opci\u00f3n de reserva. Lo decisivo sigue siendo la telemetr\u00eda propia: quien mide y itera, encuentra r\u00e1pidamente el perfil adecuado para el tr\u00e1fico, el hardware y la experiencia del usuario.<\/p>","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo sacar el m\u00e1ximo partido a la compresi\u00f3n Brotli: as\u00ed es como se encuentra el equilibrio entre rendimiento, tama\u00f1o de los archivos y consumo de CPU para p\u00e1ginas web y servidores.<\/p>","protected":false},"author":1,"featured_media":20731,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[834],"tags":[],"class_list":["post-20738","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plesk-webserver-plesk-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"122","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Brotli Compression","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"20731","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts\/20738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/comments?post=20738"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts\/20738\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/media\/20731"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/media?parent=20738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/categories?post=20738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/tags?post=20738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}