{"id":5443518,"date":"2023-04-11T12:35:37","date_gmt":"2023-04-11T10:35:37","guid":{"rendered":"https:\/\/wp-rocket.me\/?post_type=caching_hub&#038;p=5443518"},"modified":"2023-05-10T15:39:08","modified_gmt":"2023-05-10T13:39:08","slug":"cache-control-http-headers","status":"publish","type":"caching_hub","link":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/","title":{"rendered":"What Are Cache-Control HTTP Headers? An Intro for WordPress Users"},"content":{"rendered":"<p>Confused by what the cache-control HTTP header is and how it works with your WordPress site?<\/p><p>In a nutshell, cache-control is an HTTP header that specifies browser caching policies for certain static resources on your website, such as your images. That sounds a little complicated &#8211; we know! So if you bear with us, we&#8217;ll dig into the topic of cache-control in much greater detail.<\/p><p>In this article, we&#8217;ll explain what cache-control is and how it affects behavior on your website. But before we get into the cache-control header, we first need to explain the concept of browser caching.<\/p><p>Here&#8217;s what we&#8217;ll cover:<\/p><ul class=\"wp-block-list\"><li>What browser caching is<\/li>\n\n<li>What cache-control is and how it works (HTTP headers)<\/li>\n\n<li>The different cache-control directives<\/li>\n\n<li>How cache-control applies to WordPress\/WP Rocket users<\/li><\/ul><p>Let&#8217;s dig in&#8230;<\/p><h2 class=\"wp-block-heading\">What Is Browser Caching?<\/h2><p>When someone visits your website for the first time, their web browser needs to request and download every single file to render your page.<\/p><p>However, on subsequent visits, it doesn&#8217;t make sense to force them to request and download every single resource on each visit.<\/p><p>For example, your logo probably loads on every single page, but it doesn&#8217;t change that often. Forcing a visitor&#8217;s browser to re-download your logo for every single page load is just a waste of resources that will slow down your site.<\/p><p>Browser caching lets you avoid that scenario by saving certain types of resources on a visitor&#8217;s local computer. Then, a visitor&#8217;s browser can load that resource locally rather than re-downloading it, which will speed up your site&#8217;s load times and create a better experience for your visitors. This is why you typically <a href=\"https:\/\/wp-rocket.me\/blog\/how-to-correct-the-leverage-browser-caching-warning-in-wordpress\/\">see &#8220;Leverage browser caching&#8221;<\/a> as a common recommendation in tools like GTmetrix and Pingdom.<\/p><p>In order to enable browser caching, you need to configure your web server so that it tells visitors&#8217; browsers which types of files to store and how long to store them for before re-downloading them.<\/p><p>For example, you can configure your server to say:<\/p><p>&#8220;Hey, store JPEG files for one year, but only store PNG files for one month&#8221;.<\/p><p>Basically, you set up expiration dates for how long visitors&#8217; browsers should store certain content.<\/p><p>Why add expiration dates at all? Because you want to make sure your visitors still get the most recent version of your page. By setting an expiration date, you&#8217;re ensuring that visitors will periodically re-download the relevant resources to ensure an updated experience.<\/p><p>For more, check out <a href=\"https:\/\/wp-rocket.me\/blog\/browser-caching-explained-in-plain-english\/\">our full explanation post on browser caching<\/a>.<\/p><p><em>Note &#8211; browser caching is a separate strategy from page caching, which is what most people are talking about when they reference &#8220;caching&#8221; for WordPress. If you&#8217;re using <\/em><a href=\"https:\/\/wp-rocket.me\/\"><em>WP Rocket<\/em><\/a><em>, WP Rocket will automatically implement both page caching and browser caching for you<\/em> <em>&#8211; more on this later.<\/em><\/p><h2 class=\"wp-block-heading\">What Is Cache-Control, Then?<\/h2><p>Cache-control is one of the main methods to control this browser caching behavior, with the other being expires headers.<\/p><p>Basically, cache-control lets you set these &#8220;expiration&#8221; dates to control whether a visitor&#8217;s browser will load a resource from its local cache or send a request to your site&#8217;s web server to download the resource.&nbsp;<\/p><p>It gives you lots of control over how each individual resource behaves and it also lets you control who can cache your content. For example, you can say that a visitor&#8217;s browser can cache a certain image, but a CDN (such as Cloudflare) cannot cache it.<\/p><p>More specifically, cache-control is an <strong>HTTP header<\/strong>, which brings us to another term that we need to define.<\/p><h3 class=\"wp-block-heading\">What Are HTTP Headers?<\/h3><p>HTTP, short for Hypertext Transfer Protocol, governs how clients and servers communicate. For our purposes, a client is a visitor&#8217;s web browser and a server is your WordPress site&#8217;s server.<\/p><p>When a client needs a file, it sends a <strong>request <\/strong>to the server and the server sends a <strong>response <\/strong>to the client.<\/p><p>For example, if your website has an image, a visitor&#8217;s browser would first request that image from the server and then the server would <strong>respond<\/strong> with the image file. The browser would then repeat the same process for every resource on your site, including CSS stylesheets, JavaScript, etc.<\/p><p>HTTP headers let clients or servers send additional information with those client requests and server responses. There are different types of HTTP headers, with cache-control being one of them.<\/p><p>Most modern web browsers include developer tools that let you see the HTTP headers associated with every request\/response involved in loading a web page.<\/p><p>In Chrome, you can:<\/p><ul class=\"wp-block-list\"><li>Open developer tools (CTRL + Shift + I)<\/li>\n\n<li>Go to the <strong>Network<\/strong> tab<\/li>\n\n<li>Reload the page<\/li>\n\n<li>Select the resource that you want to analyze<\/li>\n\n<li>Look at the <strong>Headers<\/strong> tab<\/li><\/ul><p>For example, here are all of the HTTP response headers for loading the featured image for one of WP Rocket&#8217;s blog posts:<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"722\" src=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png\" alt=\"HTTP response headers in WP Rocket website\" class=\"wp-image-5443525\" srcset=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png 800w, https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1-216x195.png 216w, https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1-768x693.png 768w, https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1-66x60.png 66w, https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1-100x90.png 100w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">HTTP response headers in WP Rocket website<\/figcaption><\/figure><p>You can see that cache-control is one of those headers, but there are lots of other headers that communicate additional information. We even added a nice little easter egg in the <strong>x-curious<\/strong> header.<\/p><p>HTTP headers can go in both directions. That is, your web browser can attach HTTP headers to the <strong>request<\/strong> that it makes to the server, and the server can attach HTTP headers to the <strong>response<\/strong> that it sends to the browser.<\/p><p>HTTP headers consist of <strong>key-value pairs<\/strong>. The &#8220;key&#8221; is the part to the left of the colon, while the &#8220;value&#8221; is the part to the right. More specifically, the value is called the directive for cache-control.<\/p><p>In the example above, the key is &#8220;cache-control&#8221; and the value\/directive is &#8220;max-age=31536000&#8221; (<em>more on what this means next<\/em>).\u00a0<\/p><div id=\"om-olkrjzfbhlynbs54rv6z-holder\"><\/div>\n\t<script>(function (d, u, ac) {\n\t\t\tvar s = d.createElement('script')\n\t\t\ts.type = 'text\/javascript'\n\t\t\ts.src = 'https:\/\/a.omappapi.com\/app\/js\/api.min.js'\n\t\t\ts.async = true\n\t\t\ts.dataset.user = u\n\t\t\ts.dataset.campaign = ac\n\t\t\td.getElementsByTagName('head')[0].appendChild(s)\n\t\t})(document, 20440, 'olkrjzfbhlynbs54rv6z')<\/script><h2 class=\"wp-block-heading\">How Does Cache-Control Work?<\/h2><p>Ok, at this point you know what browser caching is. You also know that cache-control is one way to control browser caching behavior and that cache-control is an HTTP header that&#8217;s passed when a visitor&#8217;s browser communicates with your web server.<\/p><p>Now, let&#8217;s get into how cache control actually works and the different directives that you can use to control browser caching behavior.<\/p><p>As you learned above, cache-control is a key-value pair that looks something like this:<\/p><p><strong>cache-control:<\/strong> max-age=31536000<\/p><p>In this example, the directive is <strong>max-age=31536000<\/strong>, but there are other cache-control directives that you can use, and you can also combine multiple directives by using commas.<\/p><p>Let&#8217;s go through the most common cache-control directives.<\/p><h3 class=\"wp-block-heading\">cache-control: max-age=&lt;seconds&gt;<\/h3><p>The <strong>max-age<\/strong> directive defines how long a browser can reuse the fetched resource before it should download a new resource. The <strong>max-age <\/strong>number is in seconds and starts as soon as the request is made.<\/p><p><strong>Example:<\/strong><\/p><p><strong>cache-control:<\/strong> max-age=31536000<\/p><p>In this example, the directive is telling a visitor&#8217;s browser to use the cached resource for one year from the time of the original request. <em>There are 31,536,000 seconds in one year.<\/em><\/p><p>Many cache-control responses will only contain the <strong>max-age<\/strong> directive, so you can kind of think of this as the &#8220;default&#8221; directive.<\/p><p>The <strong>max-age<\/strong> directive can be used by both the client and the server.<\/p><h3 class=\"wp-block-heading\">cache-control: public and cache-control: private<\/h3><p>The <strong>public<\/strong> and <strong>private<\/strong> directives are two opposing directives that control which types of clients can cache resources.<\/p><p>The <strong>public<\/strong> directive means that the resource can be stored by any cache. For example, a visitor&#8217;s browser, a CDN, etc.&nbsp;<\/p><p>The <strong>private<\/strong> directive, on the other hand, means that the resource can still be cached by the visitor&#8217;s browser, but it cannot be cached by other intermediate caches, such as a CDN.&nbsp;<\/p><p>You would typically use the <strong>private<\/strong> directive for content with user information that you don&#8217;t want to be cached by a CDN but are fine with being cached by the visitor&#8217;s browser.<\/p><p>The <strong>public<\/strong> and <strong>private<\/strong> directives are only used by the server in its HTTP response.<\/p><h3 class=\"wp-block-heading\">cache-control: s-maxage<\/h3><p>The <strong>s-maxage <\/strong>directive is similar to <strong>max-age<\/strong>, but specifically for shared caches (such as a CDN). It lets you control how long those shared resources can continue to serve a resource from the cache.<\/p><p>For example, if you&#8217;re using a CDN, this would be one way to control how long your CDN caches resources (<em>as long as your CDN obeys the directive, which most popular CDNs do<\/em>).<\/p><p>The <strong>s-maxage<\/strong> directive is only used by the server in its HTTP response.<\/p><h3 class=\"wp-block-heading\">cache-control: no-cache<\/h3><p>The <strong>no-cache<\/strong> directive is somewhat confusing because of the name. It allows any cache to store the response, but the stored response must go through validation with the origin server before using it. That is, a visitor&#8217;s browser has to check to make sure that the resource hasn&#8217;t changed before using the cached resource.<\/p><p>If you want to completely avoid storing the response in any cache, you actually want to use <strong>no-store<\/strong>, which is the next directive that we&#8217;ll look at.<\/p><p>The <strong>no-cache<\/strong> directive can be used by both the client and the server.<\/p><h3 class=\"wp-block-heading\">cache-control: no-store<\/h3><p>The <strong>no-store<\/strong> directive disallows both browsers and intermediate caches from storing the resource. The client will always need to request this asset from the server for every page load.<\/p><p>Typically, you would use this for very sensitive information that you never want to be cached, such as banking information.<\/p><p>The <strong>no-store<\/strong> directive can be used by both the client and the server.<\/p><h3 class=\"wp-block-heading\">cache-control: max-stale[=&lt;seconds&gt;]<\/h3><p>Unlike the other directives which can all be used in the server&#8217;s HTTP response, the <strong>max-stale<\/strong> directive is only used in a client&#8217;s request to the server.<\/p><p>The <strong>max-stale<\/strong> directive tells a server that the client is willing to accept a response that has exceeded its freshness lifetime by the number in the <strong>max-stale<\/strong> directive (in seconds).<\/p><div id=\"om-ulrdquoprwqcywqbbgci-holder\"><\/div>\n\t<script>(function (d, u, ac) {\n\t\t\tvar s = d.createElement('script')\n\t\t\ts.type = 'text\/javascript'\n\t\t\ts.src = 'https:\/\/a.omappapi.com\/app\/js\/api.min.js'\n\t\t\ts.async = true\n\t\t\ts.dataset.user = u\n\t\t\ts.dataset.campaign = ac\n\t\t\td.getElementsByTagName('head')[0].appendChild(s)\n\t\t})(document, 20440, 'ulrdquoprwqcywqbbgci')<\/script><h2 class=\"wp-block-heading\">WP Rocket and Cache-Control: Do You Need to Do Anything?<\/h2><p>If you&#8217;re using <a href=\"https:\/\/wp-rocket.me\/\">WP Rocket<\/a> to speed up your WordPress site, you don&#8217;t really need to worry about the cache-control header concepts that we&#8217;ve discussed in this article.<\/p><p>WP Rocket automatically implements browser caching using another popular method &#8211; <strong>expires headers<\/strong>.&nbsp;&nbsp;<\/p><p>WP Rocket enables browser caching (and expires headers) by default as soon as you activate the plugin. It sets up expiration times that are optimal for different types of data &#8211; you can <a href=\"https:\/\/docs.wp-rocket.me\/article\/80-browser-caching#htaccess\">view the exact configuration here<\/a>.<\/p><p>So &#8211; if you&#8217;re using WP Rocket on your WordPress site, you don&#8217;t need to worry about cache-control or expires headers &#8211; we take care of it for you as soon as you activate WP Rocket.<\/p><p>You can also use cache-control <em>and<\/em> expires headers at the same time &#8211; they don&#8217;t have to be mutually exclusive concepts.<\/p><p>If you&#8217;re using WP Rocket, this might come into play if you&#8217;re using a CDN to deliver some of your static assets. Many CDNs let you define your own HTTP cache-control headers for resources that you deliver via the CDN.&nbsp;<\/p><h2 class=\"wp-block-heading\">Conclusion<\/h2><p>To finish things out, let&#8217;s recap what we&#8217;ve covered from the perspective of a WordPress user.<\/p><p>Cache-control is an HTTP header that lets you control how\/how long visitors&#8217; browsers (or CDNs) should cache different types of resources on your site.<\/p><p>By caching these resources locally, you can speed up your site&#8217;s page load times. However, you don&#8217;t want to permanently cache resources, as you also want to ensure that visitors are always seeing the most recent version of your website. Properly implementing browser caching lets you strike the right balance.<\/p><p>There are different directives that you can add to cache-control, but the most &#8220;common&#8221; directive is <strong>max-age<\/strong>, which specifies how long a visitor&#8217;s browser should store a resource before requesting it again, in seconds.<\/p><p>If you&#8217;re using <a href=\"https:\/\/wp-rocket.me\/\">WP Rocket<\/a>, you don&#8217;t need to worry about cache-control headers because WP Rocket already implements browser caching for you using another popular method &#8211; expires headers.<\/p><p>However, you still might encounter cache-control headers if you&#8217;re using a CDN with your WordPress site, as most CDNs let you customize the cache-control headers for the resources that you deliver via your CDN.<\/p>","protected":false},"excerpt":{"rendered":"<p>Confused by what the cache-control HTTP header is and how it works with your WordPress site? In a nutshell, cache-control is an HTTP header that specifies browser caching policies for certain static resources on your website, such as your images. That sounds a little complicated &#8211; we know! So if you bear with us, we&#8217;ll [&hellip;]<\/p>\n","protected":false},"template":"","class_list":["post-5443518","caching_hub","type-caching_hub","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What Are Cache-Control HTTP Headers? An Intro for WordPress Users<\/title>\n<meta name=\"description\" content=\"Confused by what cache-control HTTP headers are? In this post, we&#039;ll explain what they are, how they work, and how they connect to WordPress.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Are Cache-Control HTTP Headers? An Intro for WordPress Users\" \/>\n<meta property=\"og:description\" content=\"Confused by what cache-control HTTP headers are? In this post, we&#039;ll explain what they are, how they work, and how they connect to WordPress.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/\" \/>\n<meta property=\"og:site_name\" content=\"WP Rocket\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-10T13:39:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@wp_rocket\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/\",\"url\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/\",\"name\":\"What Are Cache-Control HTTP Headers? An Intro for WordPress Users\",\"isPartOf\":{\"@id\":\"https:\/\/wp-rocket.me\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png\",\"datePublished\":\"2023-04-11T10:35:37+00:00\",\"dateModified\":\"2023-05-10T13:39:08+00:00\",\"description\":\"Confused by what cache-control HTTP headers are? In this post, we'll explain what they are, how they work, and how they connect to WordPress.\",\"breadcrumb\":{\"@id\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#primaryimage\",\"url\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png\",\"contentUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png\",\"width\":800,\"height\":722},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wp-rocket.me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress Cache\",\"item\":\"https:\/\/wp-rocket.me\/wordpress-cache\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"What Are Cache-Control HTTP Headers? An Intro for WordPress Users\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wp-rocket.me\/#website\",\"url\":\"https:\/\/wp-rocket.me\/\",\"name\":\"WP Rocket\",\"description\":\"Plugin d&#039;optimisation de sites WordPress\",\"publisher\":{\"@id\":\"https:\/\/wp-rocket.me\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wp-rocket.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/wp-rocket.me\/#organization\",\"name\":\"WP Rocket\",\"url\":\"https:\/\/wp-rocket.me\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png\",\"contentUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png\",\"width\":150,\"height\":41,\"caption\":\"WP Rocket\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829\",\"https:\/\/x.com\/wp_rocket\",\"https:\/\/www.youtube.com\/channel\/UC1ozThXHd1IWIZ5wkshgp_Q\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What Are Cache-Control HTTP Headers? An Intro for WordPress Users","description":"Confused by what cache-control HTTP headers are? In this post, we'll explain what they are, how they work, and how they connect to WordPress.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/","og_locale":"en_US","og_type":"article","og_title":"What Are Cache-Control HTTP Headers? An Intro for WordPress Users","og_description":"Confused by what cache-control HTTP headers are? In this post, we'll explain what they are, how they work, and how they connect to WordPress.","og_url":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/","og_site_name":"WP Rocket","article_publisher":"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829","article_modified_time":"2023-05-10T13:39:08+00:00","og_image":[{"url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png"}],"twitter_card":"summary_large_image","twitter_site":"@wp_rocket","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/","url":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/","name":"What Are Cache-Control HTTP Headers? An Intro for WordPress Users","isPartOf":{"@id":"https:\/\/wp-rocket.me\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#primaryimage"},"image":{"@id":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#primaryimage"},"thumbnailUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png","datePublished":"2023-04-11T10:35:37+00:00","dateModified":"2023-05-10T13:39:08+00:00","description":"Confused by what cache-control HTTP headers are? In this post, we'll explain what they are, how they work, and how they connect to WordPress.","breadcrumb":{"@id":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#primaryimage","url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png","contentUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2023\/04\/cache-control-wordpress-1.png","width":800,"height":722},{"@type":"BreadcrumbList","@id":"https:\/\/wp-rocket.me\/wordpress-cache\/cache-control-http-headers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wp-rocket.me"},{"@type":"ListItem","position":2,"name":"WordPress Cache","item":"https:\/\/wp-rocket.me\/wordpress-cache\/"},{"@type":"ListItem","position":3,"name":"What Are Cache-Control HTTP Headers? An Intro for WordPress Users"}]},{"@type":"WebSite","@id":"https:\/\/wp-rocket.me\/#website","url":"https:\/\/wp-rocket.me\/","name":"WP Rocket","description":"Plugin d&#039;optimisation de sites WordPress","publisher":{"@id":"https:\/\/wp-rocket.me\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wp-rocket.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wp-rocket.me\/#organization","name":"WP Rocket","url":"https:\/\/wp-rocket.me\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/","url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png","contentUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png","width":150,"height":41,"caption":"WP Rocket"},"image":{"@id":"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829","https:\/\/x.com\/wp_rocket","https:\/\/www.youtube.com\/channel\/UC1ozThXHd1IWIZ5wkshgp_Q"]}]}},"_links":{"self":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/caching_hub\/5443518"}],"collection":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/caching_hub"}],"about":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/types\/caching_hub"}],"wp:attachment":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/media?parent=5443518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}