{"id":155641,"date":"2022-04-08T23:00:26","date_gmt":"2022-04-08T23:00:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cacheability\/"},"modified":"2026-03-17T00:00:36","modified_gmt":"2026-03-17T00:00:36","slug":"cacheability","status":"publish","type":"plugin","link":"https:\/\/sk.wordpress.org\/plugins\/cacheability\/","author":14041782,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.1","stable_tag":"2.0.1","tested":"6.7.5","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Cacheability","header_author":"Danila Vershinin","header_description":"Empower WordPress with conditional HTTP GET","assets_banners_color":"","last_updated":"2026-03-17 00:00:36","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.buymeacoffee.com\/dvershinin","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/cacheability\/","header_author_uri":"https:\/\/www.getpagespeed.com\/","rating":0,"author_block_rating":0,"active_installs":100,"downloads":4196,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"dvershinin","date":"2022-04-09 12:32:33"},"1.0.2":{"tag":"1.0.2","author":"dvershinin","date":"2022-07-31 14:21:12"},"1.1.0":{"tag":"1.1.0","author":"dvershinin","date":"2022-08-17 18:34:24"},"1.1.1":{"tag":"1.1.1","author":"dvershinin","date":"2023-03-31 00:00:09"},"1.1.2":{"tag":"1.1.2","author":"dvershinin","date":"2024-07-17 00:00:22"},"1.1.3":{"tag":"1.1.3","author":"dvershinin","date":"2024-08-18 07:22:48"},"1.1.5":{"tag":"1.1.5","author":"dvershinin","date":"2024-08-18 12:04:47"},"1.1.6":{"tag":"1.1.6","author":"dvershinin","date":"2024-11-13 00:00:28"},"1.1.7":{"tag":"1.1.7","author":"dvershinin","date":"2025-12-03 00:00:58"},"2.0.0":{"tag":"2.0.0","author":"dvershinin","date":"2026-02-16 05:41:28"},"2.0.1":{"tag":"2.0.1","author":"dvershinin","date":"2026-03-17 00:00:36"}},"upgrade_notice":{"2.0.0":"<p>Cache warming, conditional GET (304), and ESI features are now part of Cacheability Pro. The free version continues to provide soft 404 fixes and cache headers.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":2707233,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.1.0","1.1.1","1.1.2","1.1.3","1.1.5","1.1.6","1.1.7","2.0.0","2.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page with Pro feature comparison"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[905,146,247,186,3886],"plugin_category":[54],"plugin_contributors":[208097],"plugin_business_model":[],"class_list":["post-155641","plugin","type-plugin","status-publish","hentry","plugin_tags-905","plugin_tags-cache","plugin_tags-performance","plugin_tags-seo","plugin_tags-varnish","plugin_category-security-and-spam-protection","plugin_contributors-dvershinin","plugin_committers-dvershinin"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cacheability\/assets\/icon-256x256.png?rev=2707233","icon_2x":"https:\/\/ps.w.org\/cacheability\/assets\/icon-256x256.png?rev=2707233","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Cacheability makes your WordPress site a better HTTP citizen, improving SEO and cache efficiency.<\/p>\n\n<h4>Free Features<\/h4>\n\n<p><strong>Soft 404 Fix<\/strong><\/p>\n\n<p>WordPress returns HTTP 200 for empty search results, invalid tag pages, and empty category archives. Google marks these as \"soft 404\" errors in Search Console, hurting your SEO.<\/p>\n\n<p>Cacheability fixes this by returning proper 404 status codes when:<\/p>\n\n<ul>\n<li>Search results are empty (<code>\/?s=nonexistent<\/code>)<\/li>\n<li>Tag archives are empty (<code>\/tag\/nonexistent\/<\/code>)<\/li>\n<li>Category archives are empty<\/li>\n<li>Author archives are empty<\/li>\n<\/ul>\n\n<p><strong>Smart Cache-Control Headers<\/strong><\/p>\n\n<p>Automatically adds <code>s-maxage<\/code> headers so Varnish, NGINX, and CDNs can cache your pages efficiently without affecting browser caching behavior.<\/p>\n\n<ul>\n<li>Search\/404 pages: 1 hour cache<\/li>\n<li>All other pages: 1 year cache (your purge plugin handles invalidation)<\/li>\n<\/ul>\n\n<h4>Cacheability Pro<\/h4>\n\n<p>Upgrade to <a href=\"https:\/\/www.getpagespeed.com\/web-apps\/cacheability-pro\">Cacheability Pro<\/a> for advanced features:<\/p>\n\n<ul>\n<li><strong>Cache Warming<\/strong> \u2014 Automatically warm pages after purging so visitors never hit cold cache<\/li>\n<li><strong>Conditional GET (304)<\/strong> \u2014 Return 304 Not Modified for unchanged content, saving bandwidth<\/li>\n<li><strong>ESI Support<\/strong> \u2014 Cache pages with dynamic nonces (comments, login forms)<\/li>\n<li><strong>Rate-Limit Safe<\/strong> \u2014 Smart request queuing to avoid 429 errors<\/li>\n<li><strong>Sitemap Warming<\/strong> \u2014 Warm all pages from sitemap after full purge<\/li>\n<li><strong>WP-CLI Commands<\/strong> \u2014 <code>wp cacheability warm<\/code> and more<\/li>\n<li><strong>Priority Support<\/strong> \u2014 Get help when you need it<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/www.getpagespeed.com\/web-apps\/cacheability-pro\">Get Cacheability Pro \u2192<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload to <code>\/wp-content\/plugins\/cacheability\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu<\/li>\n<li>That's it! No configuration needed.<\/li>\n<\/ol>\n\n<p>The plugin works automatically. You can view the settings page under Settings \u2192 Cacheability.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20compatible%20with%20caching%20plugins%3F\"><h3>Is it compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes! Cacheability works alongside any caching solution including WP Super Cache, W3 Total Cache, WP Rocket, Varnish, NGINX FastCGI cache, and CDNs like Cloudflare.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. Cacheability adds minimal overhead \u2014 it just sets proper HTTP headers and status codes.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20free%20and%20pro%3F\"><h3>What's the difference between free and Pro?<\/h3><\/dt>\n<dd><p>The free version fixes soft 404s and adds cache headers. Pro adds cache warming (automatically re-caches pages after purging), conditional GET responses (304), and ESI support for dynamic content.<\/p><\/dd>\n<dt id=\"do%20i%20need%20varnish%20http%20purge%20plugin%3F\"><h3>Do I need Varnish HTTP Purge plugin?<\/h3><\/dt>\n<dd><p>For the free version, no. For Cacheability Pro's cache warming feature, we recommend <a href=\"https:\/\/wordpress.org\/plugins\/varnish-http-purge\/\">Varnish HTTP Purge<\/a> or similar purge plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed duplicate Cache-Control headers when another plugin sets headers via PHP header() function<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Major update: Streamlined free version<\/li>\n<li>Cache warming, conditional GET, and ESI moved to Cacheability Pro<\/li>\n<li>Added settings page with Pro feature overview<\/li>\n<li>Improved soft 404 detection (now includes category and author archives)<\/li>\n<li>Code modernization and cleanup<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Fixed a PHP notice when used together with older versions of Varnish HTTP Purge plugin and WP-Rocket integrations<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Fixed a PHP fatal error when used together with older versions of Varnish HTTP Purge plugin and WP-Rocket integrations<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed some PHP warnings<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added cache warmup feature for updated content<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"HTTP optimization for WordPress. Fixes soft 404 errors and adds smart cache headers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/155641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=155641"}],"author":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dvershinin"}],"wp:attachment":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=155641"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=155641"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=155641"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=155641"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=155641"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=155641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}