{"id":59560,"date":"2020-05-13T16:19:58","date_gmt":"2020-05-13T10:49:58","guid":{"rendered":"https:\/\/git-staging.wpastra.com\/?p=59560"},"modified":"2023-12-28T16:13:59","modified_gmt":"2023-12-28T10:43:59","slug":"add-expires-headers","status":"publish","type":"post","link":"https:\/\/git-staging.wpastra.com\/es\/guides-and-tutorials\/add-expires-headers\/","title":{"rendered":"C\u00f3mo a\u00f1adir cabeceras Expires a WordPress: Manual + Plugin M\u00e9todos"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\n<p>\u00bfSe ha encontrado alguna vez con una recomendaci\u00f3n que le pide que <strong>a\u00f1adir cabeceras expiradas<\/strong>?<\/p>\n\n\n\n<p>Si es as\u00ed, no est\u00e1 solo. Es una de las recomendaciones m\u00e1s comunes relacionadas con el rendimiento del sitio web que recibir\u00e1 cuando empiece a optimizarlo.<\/p>\n\n\n\n<p>En este art\u00edculo, vamos a ir a trav\u00e9s de un tutorial detallado sobre c\u00f3mo agregar expira encabezados a su sitio web WordPress.<\/p>\n\n\n\n<p>As\u00ed que, empecemos.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-03eac8be\"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTabla de contenidos\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap\">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#what-are-expires-headers\" class=\"uagb-toc-link__trigger\">\u00bfQu\u00e9 son las cabeceras expiradas?<\/a><li class=\"uagb-toc__list\"><a href=\"#learning-about-browser-caching\" class=\"uagb-toc-link__trigger\">Informaci\u00f3n sobre el cach\u00e9 del navegador<\/a><li class=\"uagb-toc__list\"><a href=\"#how-expiration-headers-work-with-browser-caching\" class=\"uagb-toc-link__trigger\">C\u00f3mo funcionan las cabeceras de caducidad con el cach\u00e9 del navegador<\/a><li class=\"uagb-toc__list\"><a href=\"#does-expires-headers-solve-slow-website-loading-time\" class=\"uagb-toc-link__trigger\">\u00bfLos encabezados Expires solucionan la carga lenta de sitios web?<\/a><li class=\"uagb-toc__list\"><a href=\"#how-to-add-expires-headers-to-your-wordpress-website\" class=\"uagb-toc-link__trigger\">C\u00f3mo a\u00f1adir cabeceras Expires a su sitio web WordPress<\/a><li class=\"uagb-toc__list\"><a href=\"#faqs-about-adding-expires-headers\" class=\"uagb-toc-link__trigger\">Preguntas frecuentes sobre la adici\u00f3n de cabeceras Expires<\/a><li class=\"uagb-toc__list\"><a href=\"#conclusion\" class=\"uagb-toc-link__trigger\">Conclusi\u00f3n<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_tqb9yia3m3ut\"><\/a>\u00bfQu\u00e9 son las cabeceras expiradas?<\/h2>\n\n\n\n<p>Las cabeceras Expires indican a los navegadores qu\u00e9 recursos pueden almacenarse y obtenerse de la cach\u00e9 del navegador o de la propia fuente.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"inherit-container-width wp-block-group has-background is-layout-constrained wp-container-core-group-is-layout-1 wp-block-group-is-layout-constrained\" style=\"background-color:#f9f9fb;padding-top:25px;padding-right:15px;padding-bottom:25px;padding-left:15px\">\n<div class=\"wp-block-uagb-blockquote uagb-block-00e74a76 uagb-blockquote__skin-quotation uagb-blockquote__align-left uagb-blockquote__style-style_2 uagb-blockquote__with-tweet uagb-blockquote__tweet-style-classic uagb-blockquote__tweet-icon_text uagb-blockquote__stack-img-none\"><blockquote class=\"uagb-blockquote\"><span class=\"uagb-blockquote__icon\"><\/span><div class=\"uagb-blockquote__content\"> Ayuda a que tu sitio cargue m\u00e1s r\u00e1pido al poder mostrar ciertos elementos desde la cach\u00e9 y no tener que obtenerlos del servidor.<\/div><footer><div class=\"uagb-blockquote__author-wrap uagb-blockquote__author-at-left\"><\/div><a href=\"\/es\/\" class=\"uagb-blockquote__tweet-button\" target=\"_blank\" rel=\"noopener noreferrer\">Tweet<\/a><\/footer><\/blockquote><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Para que funcione, el propietario del sitio web debe configurar las cabeceras de caducidad. De este modo, el navegador almacena los recursos localmente durante un periodo de tiempo determinado establecido mediante las cabeceras expires.<\/p>\n\n\n\n<p>Por ejemplo, si establece cabeceras de caducidad en los archivos JPEG, el navegador almacenar\u00e1 todos los archivos JPEG en su cach\u00e9. Esto significa que un visitante puede cargar el sitio m\u00e1s r\u00e1pido, ya que el navegador ha almacenado en cach\u00e9 algunos recursos relacionados con el sitio.<\/p>\n\n\n\n<p>Al utilizar cabeceras que caducan, podr\u00e1 <a href=\"https:\/\/git-staging.wpastra.com\/es\/guides-and-tutorials\/speed-up-wordpress\/\">mejore la velocidad de su sitio web<\/a> reduciendo las peticiones HTTP (el m\u00e9todo utilizado para comunicarse entre el navegador y un servidor) entre su ordenador y el servidor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_mv2pniuwy5qe\"><\/a>Informaci\u00f3n sobre el cach\u00e9 del navegador<\/h2>\n\n\n\n<p><a href=\"https:\/\/git-staging.wpastra.com\/es\/guides-and-tutorials\/leverage-browser-caching-on-wordpress\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cach\u00e9 del navegador<\/a> permite al navegador almacenar localmente en cach\u00e9 los recursos para mejorar la velocidad del sitio.<\/p>\n\n\n\n<p>\u00bfC\u00f3mo funciona?<\/p>\n\n\n\n<p>El navegador env\u00eda una petici\u00f3n a un servidor cuando se carga un sitio web. El servidor, a su vez, env\u00eda los recursos necesarios.<\/p>\n\n\n\n<p>En su af\u00e1n por cargar los sitios m\u00e1s r\u00e1pidamente, los navegadores pueden utilizar cabeceras de caducidad para identificar qu\u00e9 recursos pueden cargarse localmente desde el <a href=\"https:\/\/git-staging.wpastra.com\/es\/guides-and-tutorials\/clear-browser-cache\/\" target=\"_blank\" rel=\"noreferrer noopener\">cach\u00e9 del navegador<\/a>.<\/p>\n\n\n\n<p>\u00bfNo est\u00e1 seguro de lo que queremos decir? Veamos <a href=\"https:\/\/git-staging.wpastra.com\/es\/plugins\/best-wordpress-caching-plugins\/\" target=\"_blank\" rel=\"noreferrer noopener\">browser-caching en acci\u00f3n<\/a>.<\/p>\n\n\n\n<p><a href=\"https:\/\/gtmetrix.com\/\">GTMetrix<\/a> es un sitio de optimizaci\u00f3n de la velocidad y el rendimiento de los sitios web. Te muestra un informe detallado de c\u00f3mo se carga tu sitio.<\/p>\n\n\n\n<p>Como puede ver, el sitio principal de WPAstra utiliza la cach\u00e9 del navegador. Todo esto es posible gracias a las cabeceras expires.<\/p>\n\n\n\n<p>La cach\u00e9 de navegaci\u00f3n con la ayuda de cabeceras de caducidad puede reducir el tiempo de carga de los sitios web al reducir las peticiones HTTP entre su ordenador y el servidor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_6thjskoncbl9\"><\/a>C\u00f3mo funcionan las cabeceras de caducidad con el cach\u00e9 del navegador<\/h2>\n\n\n\n<p>La cach\u00e9 del navegador almacena recursos bas\u00e1ndose en las reglas de las cabeceras de caducidad (otro nombre para las cabeceras de expiraci\u00f3n). Estas reglas determinan c\u00f3mo se utilizan los recursos cuando un navegador carga un sitio.<\/p>\n\n\n\n<p>As\u00ed que, b\u00e1sicamente, si la antig\u00fcedad de un recurso no ha caducado, se carga desde la cach\u00e9 del navegador. Si no, el ordenador vuelve a solicitarlo al servidor.<\/p>\n\n\n\n<p>Pero, \u00bfqu\u00e9 ocurre cuando un ordenador solicita un sitio por primera vez?<\/p>\n\n\n\n<p>En ese caso, todos los recursos del sitio se descargan directamente del servidor.<\/p>\n\n\n\n<p>A partir de la segunda vez, el navegador comprobar\u00e1 su cach\u00e9 en busca de recursos no caducados y los utilizar\u00e1 para ahorrar ancho de banda y tiempo.<\/p>\n\n\n\n<p>Si desea obtener m\u00e1s informaci\u00f3n t\u00e9cnica al respecto, a continuaci\u00f3n se la ofrecemos. Sin embargo, si no te interesa, puedes pasar a la siguiente secci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img fetchpriority=\"high\" decoding=\"async\" width=\"398\" height=\"265\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/illustration-displaying-the-methods-and-ways-of-ho.png\" alt=\"Illustration displaying the methods and ways of how browser caching works.\" class=\"wp-image-59562\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/illustration-displaying-the-methods-and-ways-of-ho.png 398w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/illustration-displaying-the-methods-and-ways-of-ho-300x200.png 300w\" sizes=\"(max-width: 398px) 100vw, 398px\" \/><\/figure>\n\n\n\n<p>Como puede ver en la imagen, el navegador comprueba primero con la cach\u00e9 de recursos (cach\u00e9 del navegador).<\/p>\n\n\n\n<p>La informaci\u00f3n se env\u00eda del servidor al navegador a trav\u00e9s de las cabeceras HTTP. Todo lo que necesita saber sobre las cabeceras HTTP es que se utilizan para enviar informaci\u00f3n adicional entre su ordenador y el servidor.<\/p>\n\n\n\n<p>Otro concepto importante que hace que todo esto suceda es: Cache-Control.<\/p>\n\n\n\n<p>Con Cache-Control, puede definir pol\u00edticas de almacenamiento en cach\u00e9 del navegador que funcionen tanto del lado del servidor como del lado del cliente.<\/p>\n\n\n\n<p>Si comprueba las im\u00e1genes anteriores, ver\u00e1 que el tiempo de caducidad establecido en la cabecera HTTP se realiza mediante Cache-Control.<\/p>\n\n\n\n<p>En resumen, Cache-Control ofrece una forma mejor de implementar la cach\u00e9 del navegador, ya que supera la cach\u00e9 basada en el navegador.<\/p>\n\n\n\n<p>Por ejemplo, se ocupa de lo siguiente.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Recursos que deben almacenarse en cach\u00e9<\/li>\n\n\n\n<li>D\u00f3nde almacenar la cach\u00e9<\/li>\n\n\n\n<li>Edad m\u00e1xima a partir de la cual caduca la cach\u00e9<\/li>\n<\/ul>\n\n\n\n<p>Veamos cache-control en acci\u00f3n en wpastra.com.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"725\" height=\"502\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/cache-control-setting-for-wpastra-com-css-file.png\" alt=\"Cache-Control setting for wpastra.com CSS file\" class=\"wp-image-59563\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/cache-control-setting-for-wpastra-com-css-file.png 725w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/cache-control-setting-for-wpastra-com-css-file-300x208.png 300w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><\/figure>\n\n\n\n<p>Si quiere saber m\u00e1s, le recomendamos que consulte la p\u00e1gina <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Cache-Control\">Cache-Control - HTTP<\/a> en Mozilla MDN o lea <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/optimizing-content-efficiency\/http-caching#cache-control\">Gu\u00eda de Google<\/a> en \u00e9l.<\/p>\n\n\n\n<p>Si tambi\u00e9n desea obtener m\u00e1s informaci\u00f3n sobre el almacenamiento en cach\u00e9 y c\u00f3mo se relaciona con WordPress, eche un vistazo a nuestro <a href=\"https:\/\/git-staging.wpastra.com\/es\/plugins\/ultimate-wordpress-caching-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Gu\u00eda definitiva para el almacenamiento en cach\u00e9 de WordPress.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-59560-_tu78vuy6k37a\"><\/a>Por qu\u00e9 son importantes las cabeceras de caducidad<\/h3>\n\n\n\n<p>Las cabeceras de caducidad son importantes por las siguientes razones<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ayuda a que su sitio se cargue m\u00e1s r\u00e1pido (despu\u00e9s de la primera petici\u00f3n inicial)<\/li>\n\n\n\n<li>Ayuda a su servidor a gestionar m\u00e1s peticiones en un momento dado.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-59560-_vuascgopl02d\"><\/a>\u00bfQu\u00e9 recursos debe almacenar en cach\u00e9 utilizando cabeceras Expires?<\/h3>\n\n\n\n<p>Las cabeceras de caducidad son \u00fatiles si sabes qu\u00e9 recursos necesitas almacenar en cach\u00e9. Para cualquier sitio de blogs en general, implementar cabeceras expires es f\u00e1cil, ya que las reglas se pueden aplicar a una amplia gama de recursos, incluyendo im\u00e1genes, v\u00eddeos, etc.<\/p>\n\n\n\n<p>Pero, el reto viene cuando se necesita implementar un sitio complejo como eCommerce.<\/p>\n\n\n\n<p>En ambos casos, el objetivo es reducir las peticiones HTTP y no aumentarlas.<\/p>\n\n\n\n<p>\u00bfQu\u00e9 recursos necesita almacenar en cach\u00e9? Veamos un par de escenarios para entenderlo mejor.<\/p>\n\n\n\n<p><strong>Situaci\u00f3n 1: Edad de caducidad de los recursos demasiado larga<\/strong><\/p>\n\n\n\n<p>Si estableces la edad de expiraci\u00f3n del recurso para un tiempo largo, entonces el recurso se servir\u00e1 al usuario sin ning\u00fan cambio durante ese tiempo determinado.<\/p>\n\n\n\n<p>En este caso, si decide realizar cambios en el sitio dentro de ese periodo determinado, el usuario seguir\u00e1 viendo versiones anteriores del sitio hasta que expire el recurso.<\/p>\n\n\n\n<p>Esto puede resolverse definiendo el tiempo de expiraci\u00f3n en funci\u00f3n del tipo de recurso. En general, intente evitar a\u00f1adir un periodo de tiempo predeterminado a todos los recursos.<\/p>\n\n\n\n<p>Por ejemplo, no debe almacenar en cach\u00e9 una secci\u00f3n entera de scripts, HTML, im\u00e1genes u otras formas de los recursos.<\/p>\n\n\n\n<p>Incluso si decide hacerlo, debe asegurarse de conocer el impacto de los cambios en su sitio web.<\/p>\n\n\n\n<p>Hacerse preguntas como: \"\u00bfFuncionar\u00e1n correctamente todas las p\u00e1ginas de mi sitio si almaceno en cach\u00e9 X o Y recurso?\", puede ayudarle a implementar correctamente las cabeceras de caducidad.<\/p>\n\n\n\n<p>En general, es una buena idea a\u00f1adir cabeceras de caducidad a los recursos est\u00e1ticos, ya que son los que menos se modifican.<\/p>\n\n\n\n<p><strong>Situaci\u00f3n 2: Gesti\u00f3n de un sitio funcionalmente complejo, como un sitio de comercio electr\u00f3nico<\/strong><\/p>\n\n\n\n<p>Si tiene un sitio de comercio electr\u00f3nico, debe tener cuidado con los problemas que plantean las cabeceras con fecha de caducidad.<\/p>\n\n\n\n<p>Veamos un ejemplo a continuaci\u00f3n.<\/p>\n\n\n\n<p>Un usuario visita su sitio de comercio electr\u00f3nico y a\u00f1ade nuevos art\u00edculos a la cesta de la compra. Sin embargo, si los recursos de su sitio se almacenan en cach\u00e9 de forma incorrecta, los productos a\u00f1adidos previamente por el usuario (de una sesi\u00f3n anterior) aparecer\u00e1n en el carrito de la compra en lugar de los productos reci\u00e9n a\u00f1adidos.<\/p>\n\n\n\n<p>El comprador puede resolver el problema pulsando CTRL + F5 (fuerza una actualizaci\u00f3n de la cach\u00e9), pero eso ser\u00eda pedir demasiado al comprador. Adem\u00e1s, crea una mala experiencia de usuario y seguramente afectar\u00e1 a la retenci\u00f3n de usuarios y a las cifras de ventas.<\/p>\n\n\n\n<p>Entonces, \u00bfd\u00f3nde nos deja esto? Como propietario de un comercio electr\u00f3nico, puede decidir a\u00f1adir cabeceras de caducidad a los recursos en funci\u00f3n de su impacto en la experiencia del usuario. Tu objetivo es proporcionar una experiencia de usuario fluida sin romper el sitio.<\/p>\n\n\n\n<p>Si todo esto te parece un poco complicado y abrumador, no te preocupes, todo lo que necesitas saber es que las cabeceras expires le dicen a tu navegador qu\u00e9 obtener de la cach\u00e9 y qu\u00e9 no.<\/p>\n\n\n\n<p>Tu trabajo es decidir qu\u00e9 poner y qu\u00e9 no. Y en eso te tenemos cubierto, sigue leyendo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_6g4asuiakq2f\"><\/a>\u00bfLos encabezados Expires solucionan la carga lenta de sitios web?<\/h2>\n\n\n\n<p>No todos los sitios son iguales y eso cambia el funcionamiento de las cabeceras de caducidad.<\/p>\n\n\n\n<p>Por ejemplo, si almacena incorrectamente en cach\u00e9 un sitio de comercio electr\u00f3nico, es probable que se produzcan errores que afecten directamente a la funcionalidad del sitio. Tambi\u00e9n ralentizar\u00e1 el sitio.<\/p>\n\n\n\n<p>Para otros sitios gen\u00e9ricos, las cabeceras que caducan mejorar\u00e1n el tiempo de carga del sitio web al reducir las peticiones HTTP.<\/p>\n\n\n\n<p>En algunos casos, las cabeceras que caducan pueden ralentizar el sitio si no se implementan correctamente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_wtwu37blhbsy\"><\/a>C\u00f3mo a\u00f1adir cabeceras Expires a su sitio web WordPress<\/h2>\n\n\n\n<p>Excelente, si has llegado hasta aqu\u00ed, \u00a1te mereces una galleta!<\/p>\n\n\n\n<p>WordPress es un sistema de gesti\u00f3n de contenidos vers\u00e1til. Esto significa que es flexible y ofrece m\u00faltiples maneras de hacer frente a un problema.<\/p>\n\n\n\n<p>Por eso, en esta secci\u00f3n, vamos a mostrarte c\u00f3mo a\u00f1adir manualmente cabeceras expires a servidores como Apache Server, Nginx y CDN Systems.<\/p>\n\n\n\n<p>Tambi\u00e9n le mostraremos c\u00f3mo a\u00f1adir cabeceras caducas utilizando plugins. (S\u00ed, lo sabemos, esto es principalmente lo que has venido a leer).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-59560-_6a69mekymepa\"><\/a>A\u00f1adir cabeceras Expires manualmente<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"post-59560-_go7bjqmavdh\"><\/a>Servidor Apache<\/h4>\n\n\n\n<p>Una de las formas m\u00e1s sencillas de a\u00f1adir cabeceras de caducidad a un sitio WordPress que se ejecuta en un servidor Apache es hacerlo a trav\u00e9s del archivo .htaccess.<\/p>\n\n\n\n<p>Puede acceder a \u00e9l a trav\u00e9s de dos m\u00e9todos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cPanel<\/li>\n\n\n\n<li>Cliente FTP como FileZilla<\/li>\n<\/ul>\n\n\n\n<p>Para simplificar, vamos a utilizar el primer m\u00e9todo. El m\u00e9todo <a href=\"https:\/\/git-staging.wpastra.com\/es\/resources\/best-ftp-clients\/\" target=\"_blank\" rel=\"noreferrer noopener\">se aplica a los clientes FTP<\/a> si sabes c\u00f3mo conectarte a tu servidor web utiliz\u00e1ndolo.<\/p>\n\n\n\n<p>En primer lugar, debe <a href=\"https:\/\/git-staging.wpastra.com\/es\/guides-and-tutorials\/how-to-use-cpanel\/\" target=\"_blank\" rel=\"noreferrer noopener\">Acceda a su cPanel<\/a>. Si utiliza una plataforma de alojamiento popular como <a href=\"https:\/\/git-staging.wpastra.com\/go\/bluehost\/\">Bluehost <\/a>o <a href=\"https:\/\/git-staging.wpastra.com\/go\/inmotionhosting\/\">Alojamiento In Motion<\/a>deber\u00eda tener una opci\u00f3n como la que se muestra a continuaci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"510\" height=\"153\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-button-to-log-in-to-hostings-cp.png\" alt=\"Arrow showing the button to log in to hosting's cPanel\" class=\"wp-image-59564\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-button-to-log-in-to-hostings-cp.png 510w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-button-to-log-in-to-hostings-cp-300x90.png 300w\" sizes=\"(max-width: 510px) 100vw, 510px\" \/><\/figure>\n\n\n\n<p>Haga clic en \u00e9l, y usted deber\u00eda ser capaz de acceder al cPanel.<\/p>\n\n\n\n<p>All\u00ed encontrar\u00e1 la opci\u00f3n Administrador de archivos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"599\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-file-manager-on-the-hostings-cp.png\" alt=\"Arrow showing the File Manager on the hosting's cPanel\" class=\"wp-image-59565\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-file-manager-on-the-hostings-cp.png 793w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-file-manager-on-the-hostings-cp-300x227.png 300w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-file-manager-on-the-hostings-cp-768x580.png 768w\" sizes=\"(max-width: 793px) 100vw, 793px\" \/><\/figure>\n\n\n\n<p>Desde all\u00ed, haga clic en el Administrador de archivos y, a continuaci\u00f3n, proceda a hacer clic en el bot\u00f3n <strong>\"public_html\"<\/strong> carpeta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"588\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/hosts-root-directory-shown-in-the-file-manager.png\" alt=\"Host's root directory shown in the File Manager\" class=\"wp-image-59566\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/hosts-root-directory-shown-in-the-file-manager.png 736w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/hosts-root-directory-shown-in-the-file-manager-300x240.png 300w\" sizes=\"(max-width: 736px) 100vw, 736px\" \/><\/figure>\n\n\n\n<p>Una vez dentro de la carpeta, tienes que buscar <strong>.htaccess. <\/strong>Si no eres capaz de encontrarlo, aseg\u00farate de que los archivos ocultos est\u00e1n configurados como \"mostrar\".<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"470\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-htaccess-file-on-the-file-manage.png\" alt=\"Arrow showing the htaccess file on the File Manager\" class=\"wp-image-59567\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-htaccess-file-on-the-file-manage.png 720w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-htaccess-file-on-the-file-manage-300x196.png 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<p>Ahora, abre el archivo haciendo clic con el bot\u00f3n derecho y \"editar\".<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"309\" height=\"322\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-context-menu-of-the-htaccess-wit.png\" alt=\"Arrow showing the context menu of the htaccess with edit option\" class=\"wp-image-59568\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-context-menu-of-the-htaccess-wit.png 309w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/arrow-showing-the-context-menu-of-the-htaccess-wit-288x300.png 288w\" sizes=\"(max-width: 309px) 100vw, 309px\" \/><\/figure>\n\n\n\n<p>Ahora, tienes que a\u00f1adir el siguiente c\u00f3digo al archivo y guardarlo.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>&lt;IfModule mod_expires.c&gt;\n  ExpiresActive On\n  # Images\n  ExpiresByType image\/jpeg \"access plus 1 year\"\n  ExpiresByType image\/gif \"access plus 1 year\"\n  ExpiresByType image\/png \"access plus 1 year\"\n  ExpiresByType image\/webp \"access plus 1 year\"\n  ExpiresByType image\/svg+xml \"access plus 1 year\"\n  ExpiresByType image\/x-icon \"access plus 1 year\"\n  # Video\n  ExpiresByType video\/mp4 \"access plus 1 year\"\n  ExpiresByType video\/mpeg \"access plus 1 year\"\n  # CSS, JavaScript\n  ExpiresByType text\/css \"access plus 1 month\"\n  ExpiresByType text\/javascript \"access plus 1 month\"\n  ExpiresByType application\/javascript \"access plus 1 month\"\n  # Others\n  ExpiresByType application\/pdf \"access plus 1 month\"\n  ExpiresByType application\/x-shockwave-flash \"access plus 1 month\"\n&lt;\/IfModule&gt;\n<\/code><\/pre>\n\n\n\n<p>Como puede ver, hemos a\u00f1adido cabeceras de caducidad para distintos tipos de recursos, como im\u00e1genes, v\u00eddeo, CSS, JavaSCript y otros.<\/p>\n\n\n\n<p>\u00bfEl c\u00f3digo parece complejo? No se preocupe, todo lo que tiene que hacer es copiar y pegar el c\u00f3digo en el archivo .htaccess.<\/p>\n\n\n\n<p>Pero si tienes confianza y sabes lo que hace el c\u00f3digo, puedes modificarlo seg\u00fan tus necesidades.<\/p>\n\n\n\n<p>Para un sitio de comercio electr\u00f3nico, simplemente no puede poner todos los archivos est\u00e1ticos en una sola carpeta y luego aplicar las mismas reglas de expiraci\u00f3n de encabezados.<\/p>\n\n\n\n<p>Lo mejor es crear varias carpetas y utilizar archivos .htaccess en cada una de ellas para tener un control m\u00e1s preciso.<\/p>\n\n\n\n<p>Otra forma de mejorar el almacenamiento en cach\u00e9 del navegador es a\u00f1adir Cache-Control.<\/p>\n\n\n\n<p>Para a\u00f1adir Cache-Control, necesita a\u00f1adir el siguiente c\u00f3digo en el archivo .htaccess.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code># BEGIN Cache-Control Headers\n&lt;IfModule mod_expires.c&gt;\n  &lt;IfModule mod_headers.c&gt;\n    &lt;filesMatch \"\\.(ico|jpe?g|png|gif|swf)$\"&gt;\n      Header append Cache-Control \"public\"  \n    &lt;\/filesMatch&gt;\n    &lt;filesMatch \"\\.(css)$\"&gt;\n      Header append Cache-Control \"public\"\n    &lt;\/filesMatch&gt;\n    &lt;filesMatch \"\\.(js)$\"&gt;\n      Header append Cache-Control \"private\"\n  &lt;\/filesMatch&gt;\n    &lt;filesMatch \"\\.(x?html?|php)$\"&gt;\n      Header append Cache-Control \"private, must-revalidate\"\n    &lt;\/filesMatch&gt;\n  &lt;\/IfModule&gt;\n&lt;\/IfModule&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"post-59560-_trlsend3tg42\"><\/a>NGINX<\/h4>\n\n\n\n<p>NGINX funciona de forma diferente al servidor Apache. Por eso no podr\u00e1 encontrar el archivo .htaccess.<\/p>\n\n\n\n<p>La raz\u00f3n se debe a la filosof\u00eda central de NGINX para el rendimiento. Al eliminar la necesidad del archivo .htaccess, el servidor puede acceder a la informaci\u00f3n m\u00e1s r\u00e1pidamente.<\/p>\n\n\n\n<p>Si quiere saber m\u00e1s, consulte este art\u00edculo: <a href=\"https:\/\/www.nginx.com\/resources\/wiki\/start\/topics\/examples\/likeapache-htaccess\/\" target=\"_blank\" rel=\"noreferrer noopener\">Como Apache: .htaccess<\/a>.<\/p>\n\n\n\n<p>\u00bfC\u00f3mo se a\u00f1aden cabeceras de caducidad a NGINX?<\/p>\n\n\n\n<p>Para ello, debe editar el bloque principal del servidor. Una vez realizadas las modificaciones necesarias, deber\u00e1 recargar NGINX para que surtan efecto.<\/p>\n\n\n\n<p>S\u00f3lo tienes que copiar el c\u00f3digo como se muestra a continuaci\u00f3n y a\u00f1adirlo al bloque del servidor. Esto establecer\u00e1 las cabeceras expires en NGINX.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>location ~* \\.(jpg|jpeg|gif|png)$ {\n   expires 365d;\n}\n\nlocation ~* \\.(pdf|css|html|js|swf)$ {\n   expires 2d;\n}<\/code><\/pre>\n\n\n\n<p>Tambi\u00e9n puede utilizar la cabecera Cache-Control. Para ello, a\u00f1ada la siguiente l\u00ednea al bloque del servidor.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.nginx.com\/resources\/wiki\/start\/topics\/examples\/likeapache-htaccess\/\">https:\/\/www.nginx.com\/resources\/wiki\/start\/topics\/examples\/likeapache-htaccess\/<\/a><\/p>\n\n\n\n<p>Reinicie el servidor para que la cabecera Cache-Control surta efecto.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-very-dark-gray-color has-text-color\"><a id=\"post-59560-_s9zyyiivawsz\"><\/a>Sistemas CDN<\/h4>\n\n\n\n<p>Si est\u00e1 utilizando CDN para la entrega de contenidos, entonces usted tiene que utilizar una fecha de caducidad diferente para sus recursos. Para evitar esto, puede desactivar las ETags de la directiva <a href=\"https:\/\/git-staging.wpastra.com\/es\/resources\/top-cdn-providers\/\" target=\"_blank\" rel=\"noreferrer noopener\">Servidor CDN<\/a>. Todo lo que necesita hacer es a\u00f1adir lo siguiente en el archivo .htaccess.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code># Disable ETags\n&lt;IfModule mod_headers.c&gt;\nHeader unset ETag\n&lt;\/IfModule&gt;\nFileETag None<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-59560-_o7ip7akorz9y\"><\/a>A\u00f1adir cabeceras Expires con un plugin<\/h3>\n\n\n\n<p>A\u00f1adir manualmente las cabeceras expires requiere cierta experiencia t\u00e9cnica. Sin embargo, si no dispones de los conocimientos tecnol\u00f3gicos necesarios o tienes prisa por habilitar la cach\u00e9 del navegador, puedes utilizar plugins.<\/p>\n\n\n\n<p>En esta secci\u00f3n, vamos a mostrar los pasos sobre c\u00f3mo agregar expira encabezados utilizando dos plugins populares, Hummingbird y WP Rocket.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. <a href=\"https:\/\/wordpress.org\/plugins\/hummingbird-performance\/\">Colibr\u00ed<\/a><\/h4>\n\n\n\n<p>Hummingbird es un plugin gratuito que te permite optimizar la velocidad de tu sitio. Tambi\u00e9n viene con buenas opciones de almacenamiento en cach\u00e9.<\/p>\n\n\n\n<p>El primer paso es ir al panel de control de tu sitio WordPress. Desde all\u00ed, ve a \"Plugins\" &gt;&gt; \"A\u00f1adir nuevo\".<\/p>\n\n\n\n<p>Desde all\u00ed, tienes que escribir \"Hummingbird\" en la opci\u00f3n de b\u00fasqueda en la parte superior derecha. Una vez hecho esto, encontrar\u00e1s el plugin. Haga clic en \"Instalar ahora\" para instalarlo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1172\" height=\"657\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/installing-humingbird-plugin.jpg\" alt=\"Installing and activating the Hummingbird plugin\" class=\"wp-image-59703\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/installing-humingbird-plugin.jpg 1172w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/installing-humingbird-plugin-300x168.jpg 300w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/installing-humingbird-plugin-1024x574.jpg 1024w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/installing-humingbird-plugin-768x431.jpg 768w\" sizes=\"(max-width: 1172px) 100vw, 1172px\" \/><\/figure>\n\n\n\n<p>Tras activar el plugin, ver\u00e1s su lista en el men\u00fa del panel de control de WordPress. Haz clic en \u00e9l y luego selecciona \"Dashboard\" y, por \u00faltimo, \"Caching\".<\/p>\n\n\n\n<p>Una vez all\u00ed, ver\u00e1s 4 opciones. Haga clic en cach\u00e9 del navegador para continuar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1136\" height=\"653\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/browser-caching-hummingbird.jpg\" alt=\"Browser caching option in the Hummingbird Plugin\" class=\"wp-image-59707\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/browser-caching-hummingbird.jpg 1136w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/browser-caching-hummingbird-300x172.jpg 300w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/browser-caching-hummingbird-1024x589.jpg 1024w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/browser-caching-hummingbird-768x441.jpg 768w\" sizes=\"(max-width: 1136px) 100vw, 1136px\" \/><\/figure>\n\n\n\n<p>En la parte superior, te mostrar\u00e1 el estado.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1175\" height=\"662\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/status-browser-caching.jpg\" alt=\"Hummingbird plugin browser caching status\" class=\"wp-image-59712\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/status-browser-caching.jpg 1175w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/status-browser-caching-300x169.jpg 300w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/status-browser-caching-1024x577.jpg 1024w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/status-browser-caching-768x433.jpg 768w\" sizes=\"(max-width: 1175px) 100vw, 1175px\" \/><\/figure>\n\n\n\n<p>Y, si se desplaza hacia abajo, ver\u00e1 la opci\u00f3n de configurar la cach\u00e9 del navegador mediante Hummingbird.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"845\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/configuration-options-hummingbird.jpg\" alt=\"Option to configure browsing cache using the Hummingbird Plugin\" class=\"wp-image-59714\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/configuration-options-hummingbird.jpg 970w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/configuration-options-hummingbird-300x261.jpg 300w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/configuration-options-hummingbird-768x669.jpg 768w\" sizes=\"(max-width: 970px) 100vw, 970px\" \/><\/figure>\n\n\n\n<p>Aqu\u00ed encontrar\u00e1s m\u00faltiples opciones para configurar. Puede elegir el tipo de servidor, incluyendo Apache, NGINX, IIS y Cloudflare.<\/p>\n\n\n\n<p>A continuaci\u00f3n, puede establecer un tiempo de caducidad para todos los tipos de archivos y hacerlo en tipos individuales.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"959\" height=\"653\" src=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/individual-time-hummingbird.jpg\" alt=\"Setting the expiry time on the Hummingbird Plugin\" class=\"wp-image-59724\" srcset=\"https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/individual-time-hummingbird.jpg 959w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/individual-time-hummingbird-300x204.jpg 300w, https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/individual-time-hummingbird-768x523.jpg 768w\" sizes=\"(max-width: 959px) 100vw, 959px\" \/><\/figure>\n\n\n\n<p>Por \u00faltimo, tambi\u00e9n puede a\u00f1adir manualmente las cabeceras caducadas utilizando la opci\u00f3n manual. La opci\u00f3n manual genera el c\u00f3digo en funci\u00f3n de sus preferencias.<\/p>\n\n\n\n<p>Si todo est\u00e1 configurado, puede hacer clic en \"Activar\" para habilitar el almacenamiento en cach\u00e9 del navegador mediante cabeceras expires.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"post-59560-_dakelarpnsy\"><\/a>2. <a href=\"https:\/\/git-staging.wpastra.com\/go\/wp-rocket\/\">Cohete WP<\/a><\/h4>\n\n\n\n<p>WP Rocket (<a href=\"https:\/\/git-staging.wpastra.com\/es\/review\/wp-rocket-review\/\" target=\"_blank\" rel=\"noreferrer noopener\">Revisi\u00f3n de WP Rocket<\/a>) tambi\u00e9n es una buena opci\u00f3n cuando se trata de a\u00f1adir cabeceras caducadas a su sitio WordPress.<\/p>\n\n\n\n<p>Todo lo que necesitas hacer es comprar el plugin e instalarlo. Al activar el plugin se modificar\u00e1 autom\u00e1ticamente el archivo .htaccess con las reglas necesarias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_pog5uswk9o7f\"><\/a>Preguntas frecuentes sobre la adici\u00f3n de cabeceras Expires<\/h2>\n\n\n\n<div class=\"wp-block-rank-math-faq-block\"><div class=\"rank-math-faq-item\"><h3 class=\"rank-math-question\">\u00bfCu\u00e1l debe ser el plazo de caducidad?<\/h3><div class=\"rank-math-answer\">Puede establecer el tiempo de caducidad de cualquier recurso en a\u00f1os, meses, semanas, etc. Sin embargo, esto no significa que deba establecer una fecha de caducidad poco realista.<br><br>Lo mejor es hacer un c\u00e1lculo aproximado del tiempo que necesita el recurso antes de ser actualizado. La mayor\u00eda de las veces, los archivos est\u00e1ticos son buenos candidatos para un tiempo de expiraci\u00f3n largo. Sin embargo, es mejor a\u00f1adir un tiempo de expiraci\u00f3n bajo para archivos como HTML, CSS y JavaScript.<\/div><\/div><div class=\"rank-math-faq-item\"><h3 class=\"rank-math-question\">\u00bfC\u00f3mo puedo comprobar si mis cambios han funcionado despu\u00e9s de a\u00f1adir cabeceras caducadas?<\/h3><div class=\"rank-math-answer\">La mejor forma de comprobar si sus cabeceras de caducidad funcionan o no es utilizar herramientas como <a href=\"https:\/\/gtmetrix.com\/\">GTMetrix<\/a>, <a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/insights\/\">Google PageSpeed<\/a>y <a href=\"https:\/\/www.pingdom.com\/\">Pingdom<\/a>.<\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"post-59560-_k8g92op9dv0n\"><\/a>Conclusi\u00f3n<\/h2>\n\n\n\n<p>Est\u00e1 claro que la caducidad de las cabeceras mejora la velocidad de carga de los sitios web. A pesar de que no va a hacer cambios considerables en la velocidad de su sitio - la t\u00e9cnica est\u00e1 destinada a mejorar la experiencia del usuario.<\/p>\n\n\n\n<p>Dicho esto, es esencial saber c\u00f3mo implementar correctamente las cabeceras de expiraci\u00f3n. Si lo hace mal, ralentizar\u00e1 su sitio. Esto es especialmente cierto para los sitios m\u00e1s din\u00e1micos y funcionales, como los sitios de comercio electr\u00f3nico.<\/p>\n\n\n\n<p>Adem\u00e1s, la mayor\u00eda de los sitios funcionar\u00e1n bien con el fragmento de c\u00f3digo que compartimos en el art\u00edculo para las cabeceras que caducan.<\/p>\n\n\n\n<p>Si a\u00fan no sabes qu\u00e9 hacer, te sugerimos que utilices la secci\u00f3n de comentarios y nos lo digas. Estamos aqu\u00ed para ayudarle.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u00bfSe ha encontrado alguna vez con una recomendaci\u00f3n que le pide que a\u00f1ada cabeceras que caducan? Si es as\u00ed, no es el \u00fanico. Es una de las recomendaciones m\u00e1s comunes relacionadas con el rendimiento del sitio web que obtendr\u00e1 cuando comience a optimizar su sitio. En este art\u00edculo, vamos a ir a trav\u00e9s de un tutorial detallado sobre c\u00f3mo agregar expira [...]<\/p>","protected":false},"author":9,"featured_media":59580,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[860],"tags":[],"class_list":{"0":"post-59560","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-guides-and-tutorials"},"spectra_custom_meta":{"_edit_lock":["1691681042:85"],"_oembed_4b9904cb3ba3dadc4fe99cb4af074a26":["{{unknown}}"],"_edit_last":["85"],"astra_display_author":["9"],"tap_disable_autolinker":["no"],"tap_autolink_inside_heading":["global"],"tap_autolink_random_placement":["global"],"tap_post_autolinker_limit":["0"],"site-sidebar-layout":["default"],"site-content-layout":["default"],"theme-transparent-header-meta":["default"],"_yoast_wpseo_content_score":["60"],"uagb_style_timestamp-css":["1589367004"],"uagb_style_timestamp-js":["1589367004"],"_ppc_meta_key":["a:16:{s:8:\"ppc_key5\";s:37:\"Title is Catchy and Slug is Optimized\";s:20:\"ppc_key5d92f85d42273\";s:60:\"Images &amp; Names Correctly. Title &amp; Alt Tags are Given\";s:8:\"ppc_key4\";s:15:\"Formatting Done\";s:8:\"ppc_key8\";s:28:\"Spelling and Grammar Checked\";s:8:\"ppc_key3\";s:28:\"Category and Author Selected\";s:20:\"ppc_key5ddf5ba19a347\";s:9:\"TOC Added\";s:20:\"ppc_key5ddf5b93dc6a6\";s:21:\"Affiliate Links Added\";s:20:\"ppc_key5ddf5c326920c\";s:59:\"Headings are in title-case and have appropriate heading tag\";s:8:\"ppc_key2\";s:23:\"Featured Image Assigned\";s:8:\"ppc_key6\";s:22:\"Social Images Assigned\";s:8:\"ppc_key7\";s:8:\"Done SEO\";s:20:\"ppc_key610cc9c5c4d6c\";s:37:\"For new content disable updated date.\";s:20:\"ppc_key610cc9d811cfe\";s:39:\"For updated content enable updated date\";s:20:\"ppc_key62b0172ee5a4c\";s:23:\"Featured image assigned\";s:20:\"ppc_key62b01736334b5\";s:37:\"For new content, disable updated date\";s:20:\"ppc_key62b0173b707c0\";s:40:\"For updated content, enable updated date\";}"],"_yoast_wpseo_primary_category":["860"],"_thumbnail_id":["59580"],"_yoast_wpseo_opengraph-image":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg"],"_yoast_wpseo_opengraph-image-id":["59580"],"_yoast_wpseo_twitter-image":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg"],"_yoast_wpseo_twitter-image-id":["59580"],"_yoast_wpseo_focuskw":["adding expires headers"],"_yoast_wpseo_linkdex":["78"],"_yoast_wpseo_title":["How to Add Expires Headers To Your WordPress Website"],"_yoast_wpseo_metadesc":["In this article, we will be going through a detailed tutorial on how to add expires headers to your WordPress website, manually and using a plugin."],"uag_style_timestamp-css":["1590129703"],"uag_style_timestamp-js":["1590129703"],"_lmt_disableupdate":["no"],"_uagb_toc_heading_content":["a:18:{i:0;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:24:\"what-are-expires-headers\";s:7:\"content\";s:25:\"What are Expires Headers?\";s:5:\"depth\";i:2;}i:1;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:30:\"learning-about-browser-caching\";s:7:\"content\";s:30:\"Learning About Browser Caching\";s:5:\"depth\";i:2;}i:2;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:48:\"how-expiration-headers-work-with-browser-caching\";s:7:\"content\";s:48:\"How Expiration Headers Work With Browser Caching\";s:5:\"depth\";i:2;}i:3;N;i:4;N;i:5;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:52:\"does-expires-headers-solve-slow-website-loading-time\";s:7:\"content\";s:53:\"Does Expires Headers Solve Slow Website Loading Time?\";s:5:\"depth\";i:2;}i:6;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:52:\"how-to-add-expires-headers-to-your-wordpress-website\";s:7:\"content\";s:52:\"How to Add Expires Headers to Your WordPress Website\";s:5:\"depth\";i:2;}i:7;N;i:8;N;i:9;N;i:10;N;i:11;N;i:12;N;i:13;N;i:14;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:33:\"faqs-about-adding-expires-headers\";s:7:\"content\";s:33:\"FAQs About Adding Expires Headers\";s:5:\"depth\";i:2;}i:15;N;i:16;N;i:17;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:10:\"conclusion\";s:7:\"content\";s:10:\"Conclusion\";s:5:\"depth\";i:2;}}"],"_wplmi_last_modified":["2023-09-20 14:48:30"],"_lmt_disable":["no"],"wp_last_modified_info":["September 20, 2023 @ 2:48 PM"],"wplmi_shortcode":["[lmt-post-modified-info]"],"_yoast_wpseo_estimated-reading-time-minutes":["14"],"rank_math_primary_category":["860"],"rank_math_title":["How To Add Expires Headers to WordPress: Manual + Plugin"],"rank_math_description":["Learn to add expires headers to WordPress and use browser caching. Load pages faster and improve the user experience. It\u2019s simple if you follow this guide!"],"rank_math_focus_keyword":["add expires headers"],"rank_math_news_sitemap_robots":["index"],"rank_math_robots":["a:1:{i:0;s:5:\"index\";}"],"rank_math_facebook_image":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg"],"rank_math_facebook_image_id":["59580"],"rank_math_twitter_image":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg"],"rank_math_twitter_image_id":["59580"],"rank_math_twitter_use_facebook":["on"],"rank_math_analytic_object_id":["635"],"rank_math_seo_score":["38"],"rank_math_internal_links_processed":["1"],"rank_math_facebook_title":["How To Add Expires Headers to WordPress: Manual + Plugin"],"uael-social-share-count":["a:1:{s:8:\"1b71105e\";i:450;}"],"_wpml_media_featured":["1"],"_wpml_media_duplicate":["0"],"_wpml_word_count":["{\"total\":2742,\"to_translate\":{\"es\":2742}}"],"rank_math_facebook_description":["Learn to add expires headers to WordPress and use browser caching. Load pages faster and improve the user experience. It\u2019s simple if you follow this guide!"],"rank_math_twitter_title":["How To Add Expires Headers to WordPress: Manual + Plugin"],"rank_math_twitter_description":["Learn to add expires headers to WordPress and use browser caching. Load pages faster and improve the user experience. It\u2019s simple if you follow this guide!"],"_trp_automatically_translated_slug_es_ES":["anadir-cabeceras-expiradas"],"_uagb_toc_options":["a:2:{s:17:\"_uagb_toc_version\";s:10:\"1775667626\";s:18:\"_uagb_toc_headings\";a:18:{i:0;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:24:\"what-are-expires-headers\";s:7:\"content\";s:25:\"What are Expires Headers?\";s:5:\"depth\";i:2;}i:1;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:30:\"learning-about-browser-caching\";s:7:\"content\";s:30:\"Learning About Browser Caching\";s:5:\"depth\";i:2;}i:2;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:48:\"how-expiration-headers-work-with-browser-caching\";s:7:\"content\";s:48:\"How Expiration Headers Work With Browser Caching\";s:5:\"depth\";i:2;}i:3;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:36:\"why-expiration-headers-are-important\";s:7:\"content\";s:36:\"Why Expiration Headers are Important\";s:5:\"depth\";i:3;}i:4;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:54:\"which-resources-you-should-cache-using-expires-headers\";s:7:\"content\";s:55:\"Which Resources You Should Cache Using Expires Headers?\";s:5:\"depth\";i:3;}i:5;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:52:\"does-expires-headers-solve-slow-website-loading-time\";s:7:\"content\";s:53:\"Does Expires Headers Solve Slow Website Loading Time?\";s:5:\"depth\";i:2;}i:6;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:52:\"how-to-add-expires-headers-to-your-wordpress-website\";s:7:\"content\";s:52:\"How to Add Expires Headers to Your WordPress Website\";s:5:\"depth\";i:2;}i:7;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:31:\"adding-expires-headers-manually\";s:7:\"content\";s:31:\"Adding Expires Headers Manually\";s:5:\"depth\";i:3;}i:8;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:13:\"apache-server\";s:7:\"content\";s:13:\"Apache Server\";s:5:\"depth\";i:4;}i:9;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:5:\"nginx\";s:7:\"content\";s:5:\"NGINX\";s:5:\"depth\";i:4;}i:10;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:11:\"cdn-systems\";s:7:\"content\";s:11:\"CDN Systems\";s:5:\"depth\";i:4;}i:11;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:35:\"adding-expires-headers-using-plugin\";s:7:\"content\";s:35:\"Adding Expires Headers Using Plugin\";s:5:\"depth\";i:3;}i:12;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:13:\"1-hummingbird\";s:7:\"content\";s:14:\"1. Hummingbird\";s:5:\"depth\";i:4;}i:13;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:11:\"2-wp-rocket\";s:7:\"content\";s:12:\"2. WP Rocket\";s:5:\"depth\";i:4;}i:14;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:33:\"faqs-about-adding-expires-headers\";s:7:\"content\";s:33:\"FAQs About Adding Expires Headers\";s:5:\"depth\";i:2;}i:15;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:34:\"what-should-be-the-expiration-time\";s:7:\"content\";s:35:\"What should be the expiration time?\";s:5:\"depth\";i:3;}i:16;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:64:\"how-can-i-test-if-my-changes-worked-after-adding-expires-headers\";s:7:\"content\";s:65:\"How can I test if my changes worked after adding expires headers?\";s:5:\"depth\";i:3;}i:17;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:10:\"conclusion\";s:7:\"content\";s:10:\"Conclusion\";s:5:\"depth\";i:2;}}}","a:2:{s:17:\"_uagb_toc_version\";s:10:\"1775667626\";s:18:\"_uagb_toc_headings\";a:18:{i:0;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:24:\"what-are-expires-headers\";s:7:\"content\";s:25:\"What are Expires Headers?\";s:5:\"depth\";i:2;}i:1;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:30:\"learning-about-browser-caching\";s:7:\"content\";s:30:\"Learning About Browser Caching\";s:5:\"depth\";i:2;}i:2;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:48:\"how-expiration-headers-work-with-browser-caching\";s:7:\"content\";s:48:\"How Expiration Headers Work With Browser Caching\";s:5:\"depth\";i:2;}i:3;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:36:\"why-expiration-headers-are-important\";s:7:\"content\";s:36:\"Why Expiration Headers are Important\";s:5:\"depth\";i:3;}i:4;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:54:\"which-resources-you-should-cache-using-expires-headers\";s:7:\"content\";s:55:\"Which Resources You Should Cache Using Expires Headers?\";s:5:\"depth\";i:3;}i:5;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:52:\"does-expires-headers-solve-slow-website-loading-time\";s:7:\"content\";s:53:\"Does Expires Headers Solve Slow Website Loading Time?\";s:5:\"depth\";i:2;}i:6;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:52:\"how-to-add-expires-headers-to-your-wordpress-website\";s:7:\"content\";s:52:\"How to Add Expires Headers to Your WordPress Website\";s:5:\"depth\";i:2;}i:7;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:31:\"adding-expires-headers-manually\";s:7:\"content\";s:31:\"Adding Expires Headers Manually\";s:5:\"depth\";i:3;}i:8;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:13:\"apache-server\";s:7:\"content\";s:13:\"Apache Server\";s:5:\"depth\";i:4;}i:9;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:5:\"nginx\";s:7:\"content\";s:5:\"NGINX\";s:5:\"depth\";i:4;}i:10;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:11:\"cdn-systems\";s:7:\"content\";s:11:\"CDN Systems\";s:5:\"depth\";i:4;}i:11;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:35:\"adding-expires-headers-using-plugin\";s:7:\"content\";s:35:\"Adding Expires Headers Using Plugin\";s:5:\"depth\";i:3;}i:12;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:13:\"1-hummingbird\";s:7:\"content\";s:14:\"1. Hummingbird\";s:5:\"depth\";i:4;}i:13;a:4:{s:5:\"level\";i:4;s:2:\"id\";s:11:\"2-wp-rocket\";s:7:\"content\";s:12:\"2. WP Rocket\";s:5:\"depth\";i:4;}i:14;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:33:\"faqs-about-adding-expires-headers\";s:7:\"content\";s:33:\"FAQs About Adding Expires Headers\";s:5:\"depth\";i:2;}i:15;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:34:\"what-should-be-the-expiration-time\";s:7:\"content\";s:35:\"What should be the expiration time?\";s:5:\"depth\";i:3;}i:16;a:4:{s:5:\"level\";i:3;s:2:\"id\";s:64:\"how-can-i-test-if-my-changes-worked-after-adding-expires-headers\";s:7:\"content\";s:65:\"How can I test if my changes worked after adding expires headers?\";s:5:\"depth\";i:3;}i:17;a:4:{s:5:\"level\";i:2;s:2:\"id\";s:10:\"conclusion\";s:7:\"content\";s:10:\"Conclusion\";s:5:\"depth\";i:2;}}}"],"_uag_page_assets":["a:9:{s:3:\"css\";s:11467:\".uagb-block-03eac8be.wp-block-uagb-table-of-contents{text-align: left;}.uagb-block-03eac8be .uagb-toc__list-wrap li a{color: #54595F;}.uagb-block-03eac8be .uagb-toc__wrap .uagb-toc__title-wrap{justify-content: left;}.uagb-block-03eac8be .uagb-toc__wrap .uagb-toc__title{justify-content: left;}.uagb-block-03eac8be .uagb-toc__wrap{border-top-width: 1px;border-left-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-top-left-radius: 6px;border-top-right-radius: 6px;border-bottom-left-radius: 6px;border-bottom-right-radius: 6px;border-color: #333;border-style: solid;padding-left: 30px;padding-right: 30px;padding-top: 30px;padding-bottom: 30px;background: #fff;width: 100%;}.uagb-block-03eac8be .uagb-toc__list-wrap{column-count: 1;overflow: hidden;text-align: left;}.uagb-block-03eac8be .uagb-toc__list-wrap > ul.uagb-toc__list > li:first-child{padding-top: 0;}.uagb-block-03eac8be .uagb-toc__list-wrap ul.uagb-toc__list:last-child > li:last-child{padding-bottom: 0;}.uagb-block-03eac8be .uagb-toc__list .uagb-toc__list{list-style-type: disc !important;}.uagb-block-03eac8be .uagb-toc__title{font-weight: Default;font-size: 20px;}.uagb-block-03eac8be .uagb-toc__list-wrap ol li a{text-decoration: underline;}.uagb-block-00e74a76 .uagb-blockquote__content{font-style: italic;font-size: 18px;line-height: 1.5em;margin-bottom: 15px;text-align: left;}.uagb-block-00e74a76 cite.uagb-blockquote__author{color: var(--ast-global-color-5);text-align: left;}.uagb-block-00e74a76 .uagb-blockquote__skin-border blockquote.uagb-blockquote{border-color: #abb8c3;border-left-style: solid;border-left-width: 4px;padding-left: 15px;}.uagb-block-00e74a76.uagb-blockquote__skin-border blockquote.uagb-blockquote{border-color: #abb8c3;border-left-style: solid;border-left-width: 4px;padding-left: 15px;}.uagb-block-00e74a76 .uagb-blockquote__skin-quotation .uagb-blockquote__icon-wrap{background: #F7FAFC;border-radius: 100%;margin-bottom: 15px;margin-right: 5px;padding: 10px;}.uagb-block-00e74a76 .uagb-blockquote__skin-quotation .uagb-blockquote__icon{width: 25px;height: 25px;}.uagb-block-00e74a76.uagb-blockquote__skin-quotation .uagb-blockquote__icon{background: #F7FAFC;border-radius: 100%;margin-bottom: 15px;margin-right: 5px;padding: 10px;}.uagb-block-00e74a76.uagb-blockquote__skin-quotation .uagb-blockquote__icon svg{width: 25px;height: 25px;fill: #7143e3;}.uagb-block-00e74a76.uagb-blockquote__style-style_1 .uagb-blockquote{text-align: left;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap{margin-bottom: 0px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap img{width: 40px;height: 40px;border-radius: 100%;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-right img{margin-left: 10px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-top img{margin-bottom: 10px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-left img{margin-right: 10px;}.uagb-block-00e74a76 .uagb-blockquote__skin-quotation .uagb-blockquote__icon svg{fill: #7143e3;width: 25px;height: 25px;}.uagb-block-00e74a76.uagb-blockquote__align-center blockquote.uagb-blockquote{text-align: left;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-link a.uagb-blockquote__tweet-button{color: #1DA1F2;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-link a.uagb-blockquote__tweet-button svg{fill: #1DA1F2;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button{color: #181273;background-color: #ffc300;padding-left: 20px;padding-right: 20px;padding-top: 12px;padding-bottom: 12px;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button{color: #181273;background-color: #ffc300;padding-left: 20px;padding-right: 20px;padding-top: 12px;padding-bottom: 12px;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button svg{fill: #181273;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button{color: #181273;background-color: #ffc300;padding-left: 20px;padding-right: 20px;padding-top: 12px;padding-bottom: 12px;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button{color: #181273;background-color: #ffc300;padding-left: 20px;padding-right: 20px;padding-top: 12px;padding-bottom: 12px;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:before{border-right-color: #ffc300;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-link a.uagb-blockquote__tweet-button:hover{color: #ffffff;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-link a.uagb-blockquote__tweet-button:hover svg{fill: #ffffff;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button:hover{color: #ffffff;background-color: #ffd71c;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button:hover svg{fill: #ffffff;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:hover{color: #ffffff;background-color: #ffd71c;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:hover svg{fill: #ffffff;}.uagb-block-00e74a76 .uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:hover:before{border-right-color: #ffd71c;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button svg{fill: #181273;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:before{border-right-color: #ffc300;}.uagb-block-00e74a76 a.uagb-blockquote__tweet-button svg{width: 14px;height: 14px;}.uagb-block-00e74a76.uagb-blockquote__tweet-icon_text a.uagb-blockquote__tweet-button svg{margin-right: 13px;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-link a.uagb-blockquote__tweet-button:hover{color: #ffffff;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-link a.uagb-blockquote__tweet-button:hover svg{fill: #ffffff;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button:hover{color: #ffffff;background-color: #ffd71c;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-classic a.uagb-blockquote__tweet-button:hover svg{fill: #ffffff;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:hover{color: #ffffff;background-color: #ffd71c;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:hover svg{fill: #ffffff;}.uagb-block-00e74a76.uagb-blockquote__tweet-style-bubble a.uagb-blockquote__tweet-button:hover:before{border-right-color: #ffd71c;}.uagb-block-00e74a76 .uagb-blockquote a.uagb-blockquote__tweet-button{font-weight: 600;font-size: 14px;}@media only screen and (max-width: 976px) {.uagb-block-03eac8be .uagb-toc__wrap{border-style: solid;}.uagb-block-03eac8be .uagb-toc__list-wrap{column-count: 1;overflow: hidden;text-align: left;}.uagb-block-03eac8be .uagb-toc__list-wrap > ul.uagb-toc__list > li:first-child{padding-top: 0;}.uagb-block-03eac8be .uagb-toc__list-wrap ul.uagb-toc__list:last-child > li:last-child{padding-bottom: 0;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap{margin-bottom: 0px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap img{width: 35px;height: 35px;border-radius: 100%;}.uagb-block-00e74a76.uagb-blockquote__skin-border blockquote.uagb-blockquote{padding-left: 15px;}.uagb-block-00e74a76 .uagb-blockquote__content{margin-bottom: 20px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-right img{margin-left: 10px;margin-bottom: 0px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-top img{margin-bottom: 10px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-left img{margin-right: 10px;margin-bottom: 0px;}}@media only screen and (max-width: 767px) {.uagb-block-03eac8be .uagb-toc__wrap{border-style: solid;}.uagb-block-03eac8be .uagb-toc__list-wrap{column-count: 1;overflow: hidden;text-align: left;}.uagb-block-03eac8be .uagb-toc__list-wrap > ul.uagb-toc__list > li:first-child{padding-top: 0;}.uagb-block-03eac8be .uagb-toc__list-wrap ul.uagb-toc__list:last-child > li:last-child{padding-bottom: 0;}.uagb-block-00e74a76.uagb-blockquote__skin-quotation .uagb-blockquote__icon{padding: 0px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap{margin-bottom: 0px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap img{width: 30px;height: 30px;border-radius: 100%;}.uagb-block-00e74a76.uagb-blockquote__skin-border blockquote.uagb-blockquote{padding-left: 15px;}.uagb-block-00e74a76 .uagb-blockquote__content{margin-bottom: 15px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-right img{margin-left: 10px;margin-bottom: 0px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-top img{margin-bottom: 10px;}.uagb-block-00e74a76 .uagb-blockquote__author-wrap.uagb-blockquote__author-at-left img{margin-right: 10px;margin-bottom: 0px;}}.wp-block-uagb-container.uagb-block-debf2792 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-debf2792 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-debf2792 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-debf2792 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-debf2792 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-debf2792{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-debf2792 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1200px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 0px;}.wp-block-uagb-container.uagb-block-debf2792{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top: 0px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;overflow: visible;border-color: inherit;row-gap: 0px;column-gap: 0px;}@media only screen and (max-width: 976px) {.wp-block-uagb-container.uagb-is-root-container .uagb-block-debf2792{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-debf2792 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-debf2792{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top: 0px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;}}@media only screen and (max-width: 767px) {.wp-block-uagb-container.uagb-is-root-container .uagb-block-debf2792{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-debf2792 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-debf2792{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top: 0px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;}}\";s:2:\"js\";s:891:\"document.addEventListener(\"DOMContentLoaded\", function(){ window.addEventListener( 'load', function(){\n\tUAGBTableOfContents._run( {\"mappingHeaders\":[false,true,false,false,false,false],\"scrollToTop\":false,\"makeCollapsible\":false}, '.uagb-block-03eac8be' );\n} );\nvar selector = document.querySelectorAll( '.uagb-block-00e74a76' );\nif ( selector.length > 0 ) {\n\n\tvar blockquote__tweet = selector[0].getElementsByClassName(\"uagb-blockquote__tweet-button\");\n\n\tif ( blockquote__tweet.length > 0 ) {\n\n\t\tblockquote__tweet[0].addEventListener(\"click\",function(){\t\n\t\t\tvar request_url = \"https:\/\/twitter.com\/intent\/tweet?text=+Help+your+site+load+faster+by+being+able+to+display+certain+elements+from+the+cache+and+not+having+to+get+it+from+the+server.&url=https%3A%2F%2Fgit-staging.wpastra.com%2Fes%2Fes%2Fguides-and-tutorials%2Fadd-expires-headers%2F\";\n\t\t\twindow.open( request_url );\n\t\t});\n\t}\n}\n });\";s:18:\"current_block_list\";a:14:{i:0;s:14:\"core\/paragraph\";i:1;s:22:\"uagb\/table-of-contents\";i:2;s:12:\"core\/heading\";i:3;s:12:\"core\/columns\";i:4;s:11:\"core\/column\";i:5;s:10:\"core\/group\";i:6;s:15:\"uagb\/blockquote\";i:7;s:10:\"core\/image\";i:8;s:9:\"core\/list\";i:9;s:14:\"core\/list-item\";i:10;s:9:\"core\/code\";i:11;s:19:\"rank-math\/faq-block\";i:12;s:14:\"uagb\/container\";i:13;s:14:\"core\/shortcode\";}s:8:\"uag_flag\";b:1;s:11:\"uag_version\";s:10:\"1775667626\";s:6:\"gfonts\";a:0:{}s:10:\"gfonts_url\";s:0:\"\";s:12:\"gfonts_files\";a:0:{}s:14:\"uag_faq_layout\";b:0;}"]},"uagb_featured_image_src":{"full":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg",1200,630,false],"thumbnail":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers-150x150.jpg",150,150,true],"medium":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers-300x158.jpg",300,158,true],"medium_large":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers-768x403.jpg",768,403,true],"large":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers-1024x538.jpg",1024,538,true],"1536x1536":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg",1200,630,false],"2048x2048":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg",1200,630,false],"trp-custom-language-flag":["https:\/\/git-staging.wpastra.com\/wp-content\/uploads\/2020\/05\/add-expire-headers.jpg",18,9,false]},"uagb_author_info":{"display_name":"Pratik Chaskar","author_link":"https:\/\/git-staging.wpastra.com\/es\/author\/pratikc\/"},"uagb_comment_info":27,"uagb_excerpt":"Have you ever come across a recommendation that asks you to add expires headers? If you have, then you aren\u2019t alone. It\u2019s one of the most common website performance-related recommendations that you\u2019ll get when you start optimizing your site. In this article, we will be going through a detailed tutorial on how to add expires&hellip;","_links":{"self":[{"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/posts\/59560"}],"collection":[{"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/comments?post=59560"}],"version-history":[{"count":0,"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/posts\/59560\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/media\/59580"}],"wp:attachment":[{"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/media?parent=59560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/categories?post=59560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/git-staging.wpastra.com\/es\/wp-json\/wp\/v2\/tags?post=59560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}