{"id":19113,"date":"2026-04-17T08:35:43","date_gmt":"2026-04-17T06:35:43","guid":{"rendered":"https:\/\/webhosting.de\/http-cache-control-strategien-hosting-cachemaster\/"},"modified":"2026-04-17T08:35:43","modified_gmt":"2026-04-17T06:35:43","slug":"estrategias-de-control-de-cache-http-alojamiento-cachemaster","status":"publish","type":"post","link":"https:\/\/webhosting.de\/es\/http-cache-control-strategien-hosting-cachemaster\/","title":{"rendered":"Estrategias de control de la cach\u00e9 HTTP en el alojamiento: dominar la optimizaci\u00f3n web"},"content":{"rendered":"<p>Utilizo el alojamiento de control de cach\u00e9 para controlar espec\u00edficamente c\u00f3mo los navegadores, proxies y CDNs almacenan en cach\u00e9 el contenido para que las p\u00e1ginas se carguen m\u00e1s r\u00e1pido y sigan estando actualizadas. Para ello, utilizo <strong>directivas<\/strong> como max-age, no-cache o no-store y as\u00ed equilibrar el rendimiento, la frescura y la carga del servidor para HTML, activos y API.<\/p>\n\n<h2>Puntos centrales<\/h2>\n\n<p>El siguiente resumen muestra las palancas m\u00e1s importantes para <strong>Optimizaci\u00f3n web<\/strong> con control de cach\u00e9.<\/p>\n<ul>\n  <li><strong>Dise\u00f1o TTL<\/strong>Max-age largo para activos, tiempos cortos o revalidaci\u00f3n para HTML.<\/li>\n  <li><strong>Validaci\u00f3n<\/strong>ETag y Last-Modified reducen el tr\u00e1fico de datos con respuestas 304.<\/li>\n  <li><strong>Controles de bordes<\/strong>s-maxage, stale-while-revalidate y stale-if-error para CDNs.<\/li>\n  <li><strong>Versionado<\/strong>: Los nombres de archivo con hash\/versi\u00f3n permiten cach\u00e9s agresivas.<\/li>\n  <li><strong>Monitoreo<\/strong>Compruebe continuamente los \u00edndices de aciertos de la cach\u00e9, las cuotas 304 y el TTFB.<\/li>\n<\/ul>\n\n<h2>\u00bfQu\u00e9 hace que el control de la cach\u00e9 sea tan eficaz en el alojamiento?<\/h2>\n\n<p>Muevo el trabajo del servidor Origen al <strong>Cache<\/strong>, reducir la latencia y ahorrar ancho de banda. Una cabecera de control de cach\u00e9 correctamente configurada controla cu\u00e1nto tiempo permanecen v\u00e1lidos los archivos y cu\u00e1ndo los solicita el cliente al servidor. Preveo largos periodos de validez para activos como im\u00e1genes, CSS y JS, mientras que el HTML vive poco tiempo o se valida siempre. Esto significa que los usuarios encuentran respuestas en cach\u00e9 con m\u00e1s frecuencia y siguen recibiendo <strong>actual<\/strong> Contenido. Desde el principio evito los t\u00edpicos escollos, como las cabeceras contradictorias o la falta de versiones, por ejemplo con esto <a href=\"https:\/\/webhosting.de\/es\/http-cache-headers-sabotear-el-almacenamiento-en-cache-cachefix\/\">Gu\u00eda Cache-Fix<\/a>.<\/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\/04\/http-cache-strategien-server-4736.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Conceptos b\u00e1sicos: Combinar directivas correctamente<\/h2>\n\n<p>Con <strong>max-age<\/strong> Establezco el tiempo de vida en segundos, como 31536000 durante un a\u00f1o para los recursos est\u00e1ticos. no-cache obliga al cliente a validar antes de su uso, pero no proh\u00edbe el almacenamiento. no-store excluye cualquier almacenamiento y protege las respuestas sensibles, como los datos de pago. public permite el almacenamiento en cach\u00e9 en el almacenamiento compartido como CDNs, private se limita a la cach\u00e9 del navegador. immutable se\u00f1ala que el archivo permanece sin cambios, que se puede cambiar con <strong>Versionado<\/strong> (por ejemplo, app.v1.2.js) son un excelente complemento.<\/p>\n\n<h2>Definir claramente las cabeceras Vary y las claves de cach\u00e9<\/h2>\n<p>Me aseguro de que los objetos almacenados en cach\u00e9 coincidan con el tipo de solicitud. La direcci\u00f3n <strong>Variar<\/strong>-por lo tanto, debe formar parte de cualquier estrategia seria de cach\u00e9. Influye en la clave de cach\u00e9 y evita la reutilizaci\u00f3n incorrecta:<\/p>\n<ul>\n  <li><strong>Aceptaci\u00f3n de codificaci\u00f3n<\/strong>Obligatorio para gzip\/br, para que las variantes comprimidas y no comprimidas se almacenen en cach\u00e9 por separado.<\/li>\n  <li><strong>Aceptar idioma<\/strong>: Utilizar s\u00f3lo si realmente estoy entregando contenido dependiente del idioma - de lo contrario existe el riesgo de fragmentaci\u00f3n.<\/li>\n  <li><strong>Galleta<\/strong>: Evito un global <em>Vary: Cookie<\/em>, porque destruye las tasas de acierto de la cach\u00e9. En su lugar, segmento espec\u00edficamente seg\u00fan las cookies relevantes (por ejemplo, variante A\/B) o elimino las cookies irrelevantes en el borde.<\/li>\n  <li><strong>Autorizaci\u00f3n<\/strong>El contenido que depende de cabeceras auth no se almacena en cach\u00e9s compartidas o las claves deliberadamente si el proveedor CDN lo soporta.<\/li>\n<\/ul>\n<pre><code># Apache: cabeceras significativas Vary para HTML y activos\n\n  Cabecera merge Vary \"Accept-Encoding\"\n\n\n  Cabecera merge Vary \"Accept-Encoding\"\n<\/code><\/pre>\n<p>Tambi\u00e9n defino reglas de clear cache key en las CDN: No incluyo en la clave par\u00e1metros de consulta que s\u00f3lo se utilizan para el seguimiento (por ejemplo, utm_*). Esto evita la explosi\u00f3n de claves sin poner en peligro la frescura.<\/p>\n\n<h2>Pr\u00e1ctica: Configuraci\u00f3n en Apache y Nginx<\/h2>\n\n<p>En Apache establezco reglas en el <strong>.htacceso<\/strong> o en el VirtualHost. Separo el HTML de los activos, doy a los archivos est\u00e1ticos una larga vida \u00fatil y aseguro el HTML con revalidaci\u00f3n. Evito conflictos con las cabeceras Expires, los navegadores modernos respetan principalmente el control de cach\u00e9. En Nginx, hago cumplir las posiciones correctas de add_header y me aseguro de que ninguna instrucci\u00f3n downstream las sobrescriba. As\u00ed controlo <strong>Cach\u00e9 del navegador<\/strong> coherente en toda la pila.<\/p>\n\n<pre><code>Conjunto de encabezados Cache-Control \"public, max-age=31536000, immutable\"\n\n\n  Header set Cache-Control \"no-cache, must-revalidate\"\n<\/code><\/pre>\n\n<pre><code>location ~* \\.(css|js|png|jpg|svg|woff2)$ {\n  add_header Cache-Control \"public, max-age=31536000, immutable\";\n}\nlocation ~* \\.(html)$ {\n  add_header Cache-Control \"no-cache, must-revalidate\";\n}\n<\/code><\/pre>\n\n<h3>Cach\u00e9 s\u00f3lo CDN para HTML<\/h3>\n<p>Si el navegador debe comprobar siempre, pero el Edge se le permite almacenar en cach\u00e9, me puse diferentes tiempos de vida para el cliente y CDN:<\/p>\n<pre><code># Apache: Navegador revalidado, Edge cacheado 5 minutos\n\n  Conjunto de encabezados Cache-Control \"public, max-age=0, s-maxage=300, must-revalidate, stale-while-revalidate=30, stale-if-error=86400\"\n  Merge de cabecera Vary \"Accept-Encoding\"\n\n\n# Nginx\nlocation ~* \\.(html)$ {\n  add_header Cache-Control \"public, max-age=0, s-maxage=300, must-revalidate, stale-while-revalidate=30, stale-if-error=86400\";\n  add_header Vary \"Accept-Encoding\";\n}\n<\/code><\/pre>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/04\/cache_control_meeting_4827.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Validaci\u00f3n: uso efectivo de ETag y Last-Modified<\/h2>\n\n<p>Combino <strong>Control de la cach\u00e9<\/strong> con ETag y Last-Modified para revalidar de forma controlada. Tras la expiraci\u00f3n, el navegador env\u00eda If-None-Match o If-Modified-Since; el servidor responde con 304 si el recurso no ha cambiado. Esto ahorra bytes y reduce significativamente el tiempo de CPU en Origin. Importante: las ETags deben ser coherentes, de lo contrario se producir\u00e1n p\u00e9rdidas innecesarias a pesar de que el contenido no haya cambiado. En los cl\u00fasteres, desactivo las ETags d\u00e9biles o creo hashes fuertes para que la etiqueta <strong>revalidaci\u00f3n<\/strong> sigue siendo fiable.<\/p>\n\n<h3>Coherencia en entornos multiservidor<\/h3>\n<p>Me aseguro de que las ETags no se basen en caracter\u00edsticas basadas en inodos que difieran entre nodos. Proporciono un hash estable (artefacto de construcci\u00f3n) o conf\u00edo en la \u00faltima modificaci\u00f3n cuando los despliegues son at\u00f3micos. Para respuestas din\u00e1micas, utilizo ETags de aplicaci\u00f3n que coinciden exactamente con el hash de la carga \u00fatil. Si la revalidaci\u00f3n es m\u00e1s cara que la reimpresi\u00f3n, respondo deliberadamente con 200 y un TTL corto: la medida decide.<\/p>\n\n<h2>Estrategias por tipo de recurso<\/h2>\n\n<p>Diferencio seg\u00fan el tipo de contenido, porque el HTML, los activos, las API y las respuestas sensibles tienen diferentes <strong>Requisitos<\/strong>. Los TTL largos para archivos versionados ofrecen los mejores valores, mientras que el HTML debe seguir gestion\u00e1ndose de forma estricta. Planifico tiempos de vida cortos para las API e incorporo tolerancia a fallos. Evito el almacenamiento de respuestas personales o confidenciales. Quienes profundizan en las interfaces se benefician de patrones compactos para <a href=\"https:\/\/webhosting.de\/es\/api-almacenamiento-en-cache-estrategias-de-alojamiento-backend-optimizacion-del-rendimiento\/\">Almacenamiento en cach\u00e9 de la API en el alojamiento<\/a>, que adapto a las caracter\u00edsticas de la respuesta.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Tipo de recurso<\/th>\n      <th>Directiva recomendada<\/th>\n      <th>Raz\u00f3n<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Activos est\u00e1ticos (im\u00e1genes, CSS, JS)<\/td>\n      <td>p\u00fablico, max-age=31536000, inmutable<\/td>\n      <td>Almacenamiento prolongado; se impide el versionado <strong>Stale<\/strong>-Contenido<\/td>\n    <\/tr>\n    <tr>\n      <td>P\u00e1ginas HTML<\/td>\n      <td>no-cache, must-revalidate<\/td>\n      <td>Contenido fresco a trav\u00e9s de <strong>revalidaci\u00f3n<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>APIs<\/td>\n      <td>public, max-age=300, stale-if-error=86400<\/td>\n      <td>Plazo corto, utilizable para <strong>Errores<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>Datos sensibles<\/td>\n      <td>no-store<\/td>\n      <td>Sin almacenamiento de <strong>Protecci\u00f3n de datos<\/strong>-Razones<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h3>C\u00f3digos de estado, redireccionamientos y p\u00e1ginas de error<\/h3>\n<ul>\n  <li><strong>301<\/strong> puede y debe almacenarse en cach\u00e9 (TTL largo), ya que es permanente. Versiono las URL de destino para facilitar cambios posteriores.<\/li>\n  <li><strong>302\/307<\/strong> son temporales - TTL corto o revalidaci\u00f3n, de lo contrario existe el riesgo de rutas incorrectas en la cach\u00e9.<\/li>\n  <li><strong>404<\/strong> Almaceno en cach\u00e9 durante poco tiempo (por ejemplo, 60-300s) para que los hotlinks defectuosos no sean una carga para Origen sin bloquear las recreaciones reales.<\/li>\n  <li><strong>500+<\/strong> No guardo en cach\u00e9, pero dejo el Edge <em>stale-if-error<\/em> para ofrecer a los usuarios la informaci\u00f3n m\u00e1s reciente.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/04\/http-cache-control-optimization-3029.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Directivas ampliadas para CDN y Edge<\/h2>\n\n<p>Con <strong>s-maxage<\/strong> Separo el tiempo de vida en la cach\u00e9 de borde del tiempo de vida en el navegador. stale-while-revalidate sigue entregando contenido caducado mientras el borde se actualiza en segundo plano. stale-if-error mantiene las p\u00e1ginas accesibles durante las interrupciones del backend y aumenta la conversi\u00f3n y la confianza. must-revalidate fuerza una comprobaci\u00f3n tras la caducidad y evita renovaciones no deseadas. Este control repercute directamente en los \u00edndices de aciertos de la cach\u00e9 y <strong>Escala<\/strong> especialmente durante los picos de tr\u00e1fico.<\/p>\n\n<h3>Cabeceras sustituta y de borde<\/h3>\n<p>En configuraciones con renderizado de bordes, tambi\u00e9n utilizo cabeceras sustitutas (p. ej. <em>Control sustituto<\/em>) para establecer m\u00e1s TTL espec\u00edficos de CDN y pol\u00edticas de caducidad sin cambiar el comportamiento del navegador. De este modo, separo estrictamente el usuario final y la estrategia de borde y mantengo mi control sobre ambos niveles.<\/p>\n\n<h3>Invalidaciones y liberaciones<\/h3>\n<p>Planifico la invalidaci\u00f3n conscientemente: los activos versionados rara vez necesitan purgas, mientras que las rutas HTML y API las necesitan m\u00e1s a menudo. Defino rutinas claras para:<\/p>\n<ul>\n  <li><strong>Purga por URL\/Patr\u00f3n<\/strong> para hotfixes y errores.<\/li>\n  <li><strong>Purgas basadas en etiquetas<\/strong> (si se admite) para invalidar el contenido relacionado con la tem\u00e1tica.<\/li>\n  <li><strong>Lanzamientos escalonados<\/strong>En primer lugar, despliegue los activos y, a continuaci\u00f3n, el HTML con las nuevas referencias; de este modo se evitan las referencias rotas.<\/li>\n<\/ul>\n\n<h2>WordPress: Implementar el almacenamiento en cach\u00e9 de forma segura<\/h2>\n\n<p>En WordPress, activo las cabeceras mediante plugins o mi propio c\u00f3digo y observo el <strong>Plantilla<\/strong>-estructura. Los archivos est\u00e1ticos en wp-includes y uploads obtienen TTLs largos m\u00e1s inmutable, las p\u00e1ginas obtienen no-cache con must-revalidate. Precauci\u00f3n con los usuarios registrados: las cookies privadas y diferenciadas evitan la personalizaci\u00f3n incorrecta en la cach\u00e9. Elimino tropiezos t\u00edpicos con reglas claras y un vistazo a estos <a href=\"https:\/\/webhosting.de\/es\/wordpress-browser-caching-error-serverboost\/\">Error de cach\u00e9 de WordPress<\/a>. Si es necesario, a\u00f1ado cach\u00e9 de p\u00e1ginas del lado del servidor y OPCache para que la ejecuci\u00f3n de PHP sea perceptible. <strong>disminuye<\/strong>.<\/p>\n\n<pre><code>&lt;?php\nfunction add_cache_headers() {\n    if (!is_admin()) {\n        header(&#039;Cache-Control: public, max-age=31536000, immutable&#039;, true);\n    }\n}\nadd_action(&#039;send_headers&#039;, &#039;add_cache_headers&#039;);\n<\/code><\/pre>\n\n<h3>Desactivar la personalizaci\u00f3n y las cookies<\/h3>\n<p>Me aseguro de que Set-Cookie <em>no<\/em> se establece de forma generalizada en todas las p\u00e1ginas. Las cookies innecesarias impiden el almacenamiento en cach\u00e9 compartido. Entrego expl\u00edcitamente para los usuarios registrados:<\/p>\n<pre><code># Ejemplo de cabecera para sesiones iniciadas\nCache-Control: private, no-store, max-age=0\nVary: Accept-Encoding\n<\/code><\/pre>\n<p>En cambio, las p\u00e1ginas de listas y detalles sin personalizaci\u00f3n tienen toda la potencia de la CDN. Cuando la personalizaci\u00f3n es necesaria, trabajo con fragmentos de borde o peque\u00f1as cargas \u00fatiles de API y almaceno el resto en cach\u00e9 de forma agresiva.<\/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\/04\/tech_office_cachecontrol_2489.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Errores comunes y c\u00f3mo los soluciono<\/h2>\n\n<p>Demasiado bajo <strong>TTL<\/strong> genera un trabajo innecesario del servidor y mayores tiempos de respuesta. Las cabeceras ausentes o contradictorias obligan a los navegadores a un comportamiento heur\u00edstico y cuestan rendimiento. Sin versionado, corro el riesgo de que los activos queden obsoletos a pesar de las largas cach\u00e9s. Diferentes estrategias ETag en varios servidores provocan fallos; me aseguro de que los hashes sean coherentes o desactivo las ETags all\u00ed. Tambi\u00e9n compruebo si los intermediarios, como las pasarelas, tienen sus propios <strong>Encabezado<\/strong> y sobrescribir.<\/p>\n\n<h3>Evitar la cach\u00e9 heur\u00edstica<\/h3>\n<p>Si no se establece ni Cache-Control ni Expires, los navegadores adivinan. Por ello, siempre desactivo las directivas expl\u00edcitas y limpio los problemas heredados (p. ej. <em>Pragma: no-cache<\/em> de proxies antiguos) para obtener un comportamiento determinista.<\/p>\n\n<h3>Cadenas de consulta y robo de cach\u00e9<\/h3>\n<p>Yo utilizo la eliminaci\u00f3n de cach\u00e9s mediante hashes de nombres de archivo (style.abc123.css) en lugar de cadenas de consulta. Muchas cach\u00e9s tratan diferentes consultas como objetos separados y, por tanto, aumentan el n\u00famero de objetos; en cambio, con archivos sin cambios, un nuevo hash conduce a una invalidaci\u00f3n limpia.<\/p>\n\n<h2>Supervisi\u00f3n, pruebas y m\u00e9tricas<\/h2>\n\n<p>Mido los efectos y hago correcciones espec\u00edficas en lugar de cambios radicales, porque los datos son mejores que el instinto. <strong>borrar<\/strong>. Utilizo curl para comprobar las cabeceras, DevTools para simular primeras y repetidas visualizaciones y Lighthouse para evaluar el efecto en los ratios. En cuanto al servidor y la CDN, controlo los \u00edndices de aciertos de la cach\u00e9, las cuotas 304, los bytes guardados y el TTFB. Los registros me muestran si el HTML se revalida realmente y si los activos vuelven a solicitarse en contadas ocasiones. Esto me permite detectar a tiempo las lagunas y mejorar. <strong>objetivo<\/strong>.<\/p>\n\n<h3>Se\u00f1ales de diagn\u00f3stico adicionales<\/h3>\n<ul>\n  <li><strong>Edad<\/strong>-header muestra cu\u00e1nto tiempo ha estado un objeto en la cach\u00e9 - ideal para comprobar s-maxage.<\/li>\n  <li><strong>Estado de la cach\u00e9<\/strong> (si est\u00e1 disponible) revela HIT\/MISS\/STALE y la fuente (BROWSER, CDN, ORIGEN).<\/li>\n  <li><strong>Horario del servidor<\/strong> Lo utilizo para mis propios marcadores (por ejemplo, cache;desc=\u201crevalidated\u201c) para hacer visibles las rutas en las herramientas.<\/li>\n<\/ul>\n<p>Automatizo las comprobaciones en la canalizaci\u00f3n CI\/CD: Despu\u00e9s de cada despliegue, un peque\u00f1o cat\u00e1logo de pruebas valida las cabeceras, los c\u00f3digos de estado y los tama\u00f1os de respuesta de las rutas principales. Las regresiones se detectan inmediatamente.<\/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\/04\/http_cache_control_strategien_3477.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>SEO y efectos comerciales<\/h2>\n\n<p>Una entrega m\u00e1s r\u00e1pida refuerza Core Web Vitals, reduce los rebotes y eleva el <strong>Visibilidad<\/strong>. Cada ida y vuelta evitada reduce los costes del servidor y minimiza el riesgo de picos de carga. Con sitios de tr\u00e1fico intensivo, ahorro una cantidad notable de volumen de datos cada mes; dependiendo de la tarifa, esto puede sumar cantidades de tres d\u00edgitos en euros. Un alto \u00edndice de aciertos en cach\u00e9 tambi\u00e9n estabiliza los tiempos de respuesta en campa\u00f1as y ventas. Los que aumentan el rendimiento de forma previsible suelen aumentar tambi\u00e9n el <strong>Conversi\u00f3n<\/strong>.<\/p>\n\n<h2>Lista de control pr\u00e1ctica en 7 pasos<\/h2>\n\n<p>(1) Inventariar archivos y separar HTML, activos, APIs y respuestas sensibles; estas <strong>Segmentaci\u00f3n<\/strong> facilita las reglas. (2) Introducir versionado para CSS\/JS\/im\u00e1genes; usar hashes en los nombres de archivo y establecer inmutable. (3) Establecer no-cache y must-revalidate para HTML; mantener las p\u00e1ginas frescas y controlables. (4) Define TTLs cortos para APIs y stale-if-error para mitigar fallos. <strong>permanezca en<\/strong>. (5) Active ETag o Last-Modified de forma coherente; compruebe las cuotas 304. (6) Sincronice las cabeceras CDN y Origin; utilice s-maxage para Edge. (7) Mida los \u00edndices de aciertos, TTFB y bytes ahorrados; optimice iterativamente y documente las decisiones.<\/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\/04\/hosting-serverraum-7632.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Casos pr\u00e1cticos y muestras adicionales<\/h2>\n<ul>\n  <li><strong>API con solicitudes condicionales<\/strong>Permito expl\u00edcitamente respuestas GET\/HEAD en la cach\u00e9 compartida (p\u00fablica) con un TTL y ETag cortos. Solo almaceno en cach\u00e9 las respuestas POST si est\u00e1n definidas con precisi\u00f3n y no se modifican; por defecto no se pueden almacenar en cach\u00e9.<\/li>\n  <li><strong>Archivos de gran tama\u00f1o y solicitudes de alcance<\/strong>Para los medios de comunicaci\u00f3n <em>Accept-Ranges: bytes<\/em> y TTLs largos; el Edge releva al Origen al reanudar las descargas.<\/li>\n  <li><strong>Im\u00e1genes con capacidad de respuesta<\/strong>Si emito diferentes variantes de imagen en funci\u00f3n del dispositivo, tecleo espec\u00edficamente (por ejemplo, seg\u00fan DPR o Width) y evito Vary incontrolado en demasiadas se\u00f1ales.<\/li>\n  <li><strong>Sin transformaci\u00f3n<\/strong>Si la calidad de la imagen o la criptograf\u00eda son cr\u00edticas, utilizo <em>Cache-Control: no-transform<\/em>, para que los proxies no modifiquen el recurso.<\/li>\n<\/ul>\n\n<h2>Resumen para llevar<\/h2>\n\n<p>Utilizo Cache-Control espec\u00edficamente para <strong>Actuaci\u00f3n<\/strong>, para armonizar plazos y costes. Los TTL largos y el versionado de activos, la revalidaci\u00f3n de HTML y los plazos cortos de las API ofrecen resultados fiables. ETag y Last-Modified reducen el tr\u00e1fico de datos, mientras que las pol\u00edticas de s-maxage y stale aprovechan la cach\u00e9. La monitorizaci\u00f3n hace visibles los efectos y muestra d\u00f3nde debo mejorar. As\u00ed, el alojamiento sigue siendo r\u00e1pido, controlable y econ\u00f3mico. <strong>atractivo<\/strong>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Estrategias de **control de cach\u00e9 HTTP en hosting**: **cache control headers** y **browser caching hosting** para la m\u00e1xima **optimizaci\u00f3n web** y tiempos de carga m\u00e1s r\u00e1pidos.<\/p>","protected":false},"author":1,"featured_media":19106,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[834],"tags":[],"class_list":["post-19113","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":"97","_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":"Cache-Control Hosting","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":"19106","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts\/19113","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=19113"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts\/19113\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/media\/19106"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/media?parent=19113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/categories?post=19113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/tags?post=19113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}