a:2:{s:7:"timeout";i:1737730326;s:5:"value";s:37885:"{"new_version":"2.3.1","stable_version":"2.3.1","name":"SWIS Performance","slug":"swis-performance","url":"https:\/\/ewww.io\/downloads\/swis-performance\/?changelog=1","last_updated":"2024-12-18 18:15:33","homepage":"https:\/\/ewww.io\/downloads\/swis-performance\/","package":"https:\/\/ewww.io\/edd-sl\/package_download\/MTczNzk1MzUyNTpOUXdVNEs0VUdxd1ZKNnFSWjhza0pnbkg4NlU5N3BoRToxMTg4NDgyOmNhZWJkMzQyOGVhYWFkMDY5MDYzMTRhMWFhNWM4ZTVlOmh0dHBzQC8vdGF0YWttby5jb206MA==","download_link":"https:\/\/ewww.io\/edd-sl\/package_download\/MTczNzk1MzUyNTpOUXdVNEs0VUdxd1ZKNnFSWjhza0pnbkg4NlU5N3BoRToxMTg4NDgyOmNhZWJkMzQyOGVhYWFkMDY5MDYzMTRhMWFhNWM4ZTVlOmh0dHBzQC8vdGF0YWttby5jb206MA==","sections":{"description":"<p>It makes your site faster, and bakes you a cake too! Alright, maybe no cakes...<\/p>\n<p>SWIS is a collection of tools for improving the speed of your site. It includes the following:<\/p>\n<ul>\n<li>Page Caching to reduce the overhead of PHP and database queries. AKA: super speed boost.<\/li>\n<li>Defer JS to prevent render-blocking scripts.<\/li>\n<li>Load CSS asynchronously to prevent render-blocking CSS.<\/li>\n<li>Inline critical CSS to prevent a Flash of Unstyled Content (FOUC) when using async CSS.<\/li>\n<li>Minify JS\/CSS to trim out extra white-space.<\/li>\n<li>Compress all assets and set proper expiration headers for awesome browser caching.<\/li>\n<li>Deliver all static resources from a CDN. CDN sold separately, or as part of our <a href=\"https:\/\/ewww.io\/plans\/\">Unlimited<\/a> bundle.<\/li>\n<li>Disable unused JS\/CSS resources. Fully customizable, load\/unload files site-wide, or on specific pages.<\/li>\n<li>DNS pre-fetch and pre-connect hints so browsers can load third-party assets quicker.<\/li>\n<li>Optimize Google Fonts.<\/li>\n<\/ul>\n<p>Purchase <a href=\"https:\/\/ewww.io\/swis\/\">separately<\/a> or as part of our <a href=\"https:\/\/ewww.io\/plans\/\">Unlimited<\/a> bundle.<\/p>\n<p><a href=\"https:\/\/ewww.io\/downloads\/swis-performance\/?changelog=1\">View Changelog<\/a><\/p>\n","changelog":"<p><strong>2.3.1<\/strong><br \/><em>Release Date - December 18, 2024<\/em><\/p>\n<ul>\n<li>changed: Critical CSS auto refresh after post\/page updates is optional<\/li>\n<\/ul>\n<p><strong>2.3.0<\/strong><br \/><em>Release Date - November 7, 2024<\/em><\/p>\n<ul>\n<li>added: store errors from Critical CSS generation for future reference<\/li>\n<li>changed: Critical CSS generation included with SWIS license (beta)<\/li>\n<\/ul>\n<p><strong>2.2.2<\/strong><br \/><em>Release Date - October 24, 2024<\/em><\/p>\n<ul>\n<li>fixed: post-enqueue JS\/CSS parser uses incorrect handles<\/li>\n<li>fixed: some JS variable definitions not excluded from JS defer<\/li>\n<\/ul>\n<p><strong>2.2.1<\/strong><br \/><em>Release Date - October 10, 2024<\/em><\/p>\n<ul>\n<li>fixed: CDATA exclusion for inline JS defer was too aggressive<\/li>\n<li>fixed: is_file() wrapper method triggers PHP warning on empty path<\/li>\n<li>fixed: caching system not fully removed after disabling page caching<\/li>\n<li>fixed: WP_CACHE constant sometimes not detected after enabling page caching<\/li>\n<\/ul>\n<p><strong>2.2.0<\/strong><br \/><em>Release Date - August 15, 2024<\/em><\/p>\n<ul>\n<li>added: self-host Google Fonts for improved privacy and completely eliminate extra DNS\/HTTP requests<\/li>\n<li>added: Google Fonts optimized in stylesheets where fonts are mixed with additional CSS<\/li>\n<li>added: non-enqueued Google Fonts can be managed and disabled with Slim<\/li>\n<\/ul>\n<p><strong>2.1.4<\/strong><\/p>\n<p><em>Release Date - July 31, 2024<\/em><\/p>\n<ul>\n<li>changed: improved performance of is_file() wrapper method(s)<\/li>\n<li>fixed: errors when clearing server caches due to namespace resolution<\/li>\n<\/ul>\n<p><strong>2.1.3<\/strong><\/p>\n<p><em>Release Date - July 25, 2024<\/em><\/p>\n<ul>\n<li>changed: ensure SWIS front-end options are autoloaded in WP 6.6<\/li>\n<li>fixed: Help links broken in Firefox's Strict mode<\/li>\n<li>fixed: undefined variable affecting AMP output<\/li>\n<\/ul>\n<p><strong>2.1.2<\/strong><\/p>\n<p><em>Release Date - April 11, 2024<\/em><\/p>\n<ul>\n<li>added: compatibility with Slider Revolution 7 rendering engine<\/li>\n<li>changed: home page cache is automatically purged when updating a post\/page<\/li>\n<li>improved: detection for login page in Critical CSS function<\/li>\n<\/ul>\n<p><strong>2.1.1<\/strong><\/p>\n<p><em>Release Date - December 20, 2023<\/em><\/p>\n<ul>\n<li>fixed: disabling cache clear on plugin upgrade (via override) does not pre-empt all cache clearing<\/li>\n<li>fixed: compatibility with X\/Pro themes and Cornerstone builder<\/li>\n<li>fixed: PHP notices when cache settings file is outdated<\/li>\n<\/ul>\n<p><strong>2.1.0<\/strong><\/p>\n<p><em>Release Date - August 31, 2023<\/em><\/p>\n<ul>\n<li>added: dns-prefetch and preconnect hints for Bunny Fonts<\/li>\n<li>added: WPML support for Page Cache and Critical CSS<\/li>\n<li>added: Optimize CSS preloads WPBakery, Visual Composer, and Zion Builder CSS<\/li>\n<li>added: override for CDN domain via SWIS_CDN_DOMAIN constant<\/li>\n<li>changed: updated JS\/CSS Minify library<\/li>\n<li>fixed: cache engine throws preg_grep() error on multi-site sub-domain installs in rare cases<\/li>\n<li>fixed: on multisite, database table upgrades may not run prior to cache preload and other background processes<\/li>\n<li>fixed: some front-end functions produce AMP validation errors<\/li>\n<li>fixed: Optimize JS breaks some inline scrips when they contain comments<\/li>\n<li>fixed: PHP 8.1\/8.2 deprecation notices<\/li>\n<li>security: randomize filename of debug log<\/li>\n<\/ul>\n<p><strong>2.0.4<\/strong><\/p>\n<p><em>Release Date - July 19, 2023<\/em><\/p>\n<ul>\n<li>added: dns-prefetch and preconnect hints for CSS resources<\/li>\n<li>changed: dashicons not disabled by Slim if WP admin bar is visible<\/li>\n<li>fixed: PHP 8.1 deprecation notices from usage of add_submenu_page and add_query_arg<\/li>\n<li>fixed: PHP notice when getting cache size on disk<\/li>\n<li>fixed: preconnect hints (incorrectly) skipped if dns-prefetch hint exists<\/li>\n<li>fixed: guest asset check fails in some cases<\/li>\n<li>fixed: Slim displays duplicate dependency information<\/li>\n<li>fixed: Slim missing id attributes for form elements<\/li>\n<\/ul>\n<p><strong>2.0.3<\/strong><\/p>\n<p><em>Release Date - December 21, 2022<\/em><\/p>\n<ul>\n<li>changed: improved Brizy Builder compatibility<\/li>\n<li>changed: exclude .build.* files from minification<\/li>\n<li>fixed: prevent JS\/CSS Minify from breaking on assets generated via admin-ajax.php<\/li>\n<li>fixed: front-end Critical CSS generation broken with JS error<\/li>\n<\/ul>\n<p><strong>2.0.2<\/strong><\/p>\n<p><em>Release Date - November 16, 2022<\/em><\/p>\n<ul>\n<li>fixed: AffiliateWP JS broken when inline scripts are deferred<\/li>\n<li>fixed: CDN rewriting leaks into some image URLs when Easy IO is active<\/li>\n<li>fixed: CDN rewriting leaks into post editor<\/li>\n<li>fixed: Thrive quiz builder broken with SWIS minify\/defer<\/li>\n<li>fixed: PHP warnings generated during theme update<\/li>\n<\/ul>\n<p><strong>2.0.1<\/strong><\/p>\n<p><em>Release Date - November 8, 2022<\/em><\/p>\n<ul>\n<li>changed: use defer safe mode for jQuery when inline scripts are not deferred<\/li>\n<li>fixed: inline JS for Real Cookie Banner breaks when deferred<\/li>\n<li>fixed: inline data script elements broken by JS defer<\/li>\n<li>fixed: inline script elements with reserved characters malformed<\/li>\n<li>fixed: slim.js throws errors on wp-admin<\/li>\n<li>fixed: Slim front-end panel breaks if jQuery is loaded late using non-standard hooks<\/li>\n<\/ul>\n<p><strong>2.0.0<\/strong><\/p>\n<p><em>Release Date - October 27, 2022<\/em><\/p>\n<ul>\n<li>added: customize JS\/CSS defer per-page via the Slim front-end panel (Manage JS\/CSS)<\/li>\n<li>added: delay JS per-script and per-page via Slim front-end panel<\/li>\n<li>added: defer or delay inline scripts<\/li>\n<li>added: disable, defer, and delay scripts that do not use the standard enqueue system<\/li>\n<li>added: Test Mode to limit JS\/CSS optimizations and Slim rules to logged-in admins<\/li>\n<li>added: JS errors indicated on Slim panel<\/li>\n<li>changed: if JS files are deferred, inline scripts will also be deferred by default<\/li>\n<li>changed: hide assets from Slim that are not used for non-logged in visitors<\/li>\n<\/ul>\n<p><strong>1.7.1<\/strong><\/p>\n<ul>\n<li>changed: updated Easy Digital Downloads cookies excluded from caching<\/li>\n<li>fixed: PHP warning during activation when checking for settings change<\/li>\n<li>fixed: critical CSS function attempting array to string conversion<\/li>\n<\/ul>\n<p><strong>1.7.0<\/strong><\/p>\n<ul>\n<li>added: manual Clear Site Cache action purges server-based caches: WP object cache, WP Engine, SiteGround, Pagely, LiteSpeed, and SpinupWP<\/li>\n<li>changed: add data-no-defer to critical css control JS<\/li>\n<li>changed: critical CSS for individual pages can be removed by clearing existing CSS and saving<\/li>\n<li>changed: Easy Digital Downloads cookies added to default cache exclusions<\/li>\n<li>fixed: stdClass \"not found\" in EDD updater file in edge cases<\/li>\n<li>fixed: HTML parsers break Bricks front-end editor<\/li>\n<\/ul>\n<p><strong>1.6.1<\/strong><\/p>\n<ul>\n<li>updated: plugin updater class with ability for auto-updates<\/li>\n<li>changed: page cache can be enabled on any host in conjunction with server-based page caching<\/li>\n<li>fixed: get_plugin_data function undefined in some cases<\/li>\n<li>fixed: .htaccess admin notice shown on servers where it does not exist (and is not needed)<\/li>\n<li>fixed: cache engine debug function throws error in some edge cases<\/li>\n<li>fixed: PHP empty needle error in caching function<\/li>\n<\/ul>\n<p><strong>1.6.0<\/strong><\/p>\n<ul>\n<li>added: CriticalCSS.com integration to generate critical CSS automatically and avoid FOUC with deferred CSS<\/li>\n<li>added: cache size and clear cache button on settings page<\/li>\n<li>changed: cache preload status auto-refreshes when running in background<\/li>\n<li>changed: cache overrides take effect without toggling cache setting<\/li>\n<li>fixed: page cache upgrade routine installs advanced-cache.php incorrectly<\/li>\n<li>fixed: undefined constant notice during page cache upgrade<\/li>\n<li>fixed: undefined variable when getting cache size<\/li>\n<li>fixed: cache exclusions not saving properly<\/li>\n<li>fixed: front-end checks not detecting feeds, embeds, and previews<\/li>\n<\/ul>\n<p><strong>1.5.4<\/strong><\/p>\n<ul>\n<li>added: configure content directory with SWIS_CONTENT_DIR<\/li>\n<li>changed: make all permissions checks filterable<\/li>\n<li>fixed: removal of dashicons CSS breaks Ninja Forms<\/li>\n<li>fixed: unaltered CSS was pre-loaded twice<\/li>\n<li>fixed: fatal error for invalid class when mobile caching enabled<\/li>\n<li>fixed: JS errors when WP admin bar is hidden<\/li>\n<li>fixed: spaces in Slim rules prevent URL matches<\/li>\n<li>fixed: conflicts with Thrive Editor<\/li>\n<\/ul>\n<p><strong>1.5.3<\/strong><\/p>\n<ul>\n<li>fixed: newer versions of Avada\/Fusion builder not detected properly<\/li>\n<li>fixed: some functions of Customizer not working with deferred JS<\/li>\n<\/ul>\n<p><strong>1.5.2<\/strong><\/p>\n<ul>\n<li>fixed: CSS defer double-parses the fallback noscript tags<\/li>\n<li>fixed: cache preload triggered by cache clear during plugin deactivation<\/li>\n<li>fixed: HTML parsing code incorrectly handles JSON markup<\/li>\n<\/ul>\n<p><strong>1.5.1<\/strong><\/p>\n<ul>\n<li>added: preload CSS for Avada, Brizy Builder, Gutenberg plugin, and TagDiv Composer<\/li>\n<li>fixed: JS Minify breaks when processing Brizy Builder JS<\/li>\n<li>fixed: JS Minify breaks Kali Forms<\/li>\n<li>fixed: empty wp-content folder (\/) causes rewriting of page links<\/li>\n<li>fixed: CDN rewriter throws empty needle warning for strpos<\/li>\n<li>fixed: CDN rewriter and WebP cache variant incorrectly handle JSON responses<\/li>\n<li>fixed: jQuery not deferred due to updated markup in core WP<\/li>\n<li>fixed: unable to remove last rule from Eliminate Unused JS\/CSS<\/li>\n<\/ul>\n<p><strong>1.5.0<\/strong><\/p>\n<ul>\n<li>added: preload CSS for Gutenberg, Oxygen, Elementor, GenerateBlocks and Beaver Builder when Optimize CSS Loading is enabled<\/li>\n<li>added: WebP cache variant supports relative image URLs<\/li>\n<li>fixed: WebP cache variant setting not saved to disk settings file<\/li>\n<li>fixed: WebP cache variant removes background images if .webp file does not exist<\/li>\n<li>fixed: Optimize CSS loading adds extra markup for preloaded theme files<\/li>\n<\/ul>\n<p><strong>1.4.0<\/strong><\/p>\n<ul>\n<li>added: defer and minify functions now support JS\/CSS resources added without the WP enqueue system<\/li>\n<li>added: font optimizer supports CDN domain in CSS URLs<\/li>\n<li>fixed: font optimizer uses file_get_contents() which is blocked on some servers<\/li>\n<li>fixed: JS injected incorrectly into certain Oxygen Builder components<\/li>\n<li>fixed: undefined constant from EWWW IO was triggering a warning<\/li>\n<li>fixed: Optimize CSS loading skipped stylesheets with empty media attributes<\/li>\n<li>fixed: cache engine bails if doctype declaration is slightly non-standard<\/li>\n<\/ul>\n<p><strong>1.3.0<\/strong><\/p>\n<ul>\n<li>added: mobile caching available via SWIS_CACHE_MOBILE override, use only if you deliver unique pages to mobile devices<\/li>\n<li>changed: cache clearing for plugin\/theme updates is more efficient<\/li>\n<li>changed: cache engine begins buffering earlier for improved compatibility with other plugins<\/li>\n<li>fixed: entire network cache cleared if main site in sub-dir install is cleared<\/li>\n<li>fixed: cache requirements notice shows to all users<\/li>\n<li>fixed: cache clearing for WooCommerce stock updates<\/li>\n<li>fixed: cache clearing redirect fails if Referer header is missing\/disabled, results in blank screen<\/li>\n<li>fixed: cache preloading fails if 301\/302 redirect found<\/li>\n<li>fixed: CDN parser cannot handle img elements with empty src attributes<\/li>\n<li>fixed: CDN parser regex to detect SVG images in use elements caused excessive backtracking<\/li>\n<li>fixed: DNS prefetch\/preconnect produces invalid HTML when URL does not contain a path<\/li>\n<li>update: cache clearing behavior for comments reduces unnecessary cache clearing<\/li>\n<\/ul>\n<p><strong>1.2.1<\/strong><\/p>\n<ul>\n<li>added: embedded help and improved documentation for all settings<\/li>\n<li>changed: failure to insert gzip\/cache-control rules in .htaccess failed silently, now displays an admin notice<\/li>\n<li>fixed: display of Yoast admin bar resources on JS\/CSS panel<\/li>\n<li>fixed: deferring a11y and i18n dependencies causes JS errors<\/li>\n<li>fixed: cache not cleared after enabling WebP Variant<\/li>\n<\/ul>\n<p><strong>1.2.0<\/strong><\/p>\n<ul>\n<li>added: manage JS\/CSS unloads via front-end menu\/console<\/li>\n<li>changed: JS\/CSS unload rules use strict matching unless wildcards (*) are used<\/li>\n<li>changed: new UI to manage JS\/CSS unloads<\/li>\n<li>changed: admin bar items consolidated under SWIS menu<\/li>\n<li>fixed: prefetch and preconnect hints added incorrectly if SVG title tags found in HTML<\/li>\n<\/ul>\n<p><strong>1.1.1<\/strong><\/p>\n<ul>\n<li>fixed: conditional tag functions called before query is setup<\/li>\n<li>fixed: WP-CLI error from debug functions<\/li>\n<\/ul>\n<p><strong>1.1.0<\/strong><\/p>\n<ul>\n<li>added: Cache Preload to prime the page cache<\/li>\n<li>added: minify additional CSS from theme customizer<\/li>\n<\/ul>\n<p><strong>1.0.5<\/strong><\/p>\n<ul>\n<li>changed: Critical CSS inlined earlier, and removed after styles load to avoid conflicts<\/li>\n<li>fixed: Google Fonts URLs with spaces not handled properly<\/li>\n<li>fixed: Cache clearing when new comment is submitted throws error<\/li>\n<\/ul>\n<p><strong>1.0.4<\/strong><\/p>\n<ul>\n<li>fixed: Beaver Builder cache clearing throws warnings<\/li>\n<li>fixed: CDN exclusions not saving properly<\/li>\n<\/ul>\n<p><strong>1.0.3<\/strong><\/p>\n<ul>\n<li>fixed: JS Minify breaks Beaver Builder scripts<\/li>\n<li>fixed: license validation causes mismatched key<\/li>\n<li>removed: lazy load, as we already have it in EWWW IO &amp; Easy IO<\/li>\n<\/ul>\n<p><strong>1.0.2<\/strong><\/p>\n<ul>\n<li>added: CDN rewriting for Ultimate Member AJAX requests<\/li>\n<li>fixed: jQuery safe mode not working with WP 5.6<\/li>\n<\/ul>\n<p><strong>1.0.1<\/strong><\/p>\n<ul>\n<li>added: Lazy Load for external CSS and separate style blocks (div elements only for now)<\/li>\n<li>changed: better support for WP Offload Media with WebP cache variant<\/li>\n<li>changed: CDN rewriter has better detection for custom wp-includes and wp-content folders<\/li>\n<li>fixed: cache engine not finding settings file<\/li>\n<li>fixed: WP_CACHE not defined when other plugins leave it defined as false after deactivation<\/li>\n<\/ul>\n<p><strong>1.0.0<\/strong><\/p>\n<ul>\n<li>added: docs for finding unused CSS\/JS and critical CSS added to Help Beacon<\/li>\n<li>change: CDN rewriter has better https detection<\/li>\n<\/ul>\n<p><strong>0.9.5<\/strong><\/p>\n<ul>\n<li>added: Cache module has ability to create a WebP version of your pages for supported browsers<\/li>\n<li>changed: Cache module allows query strings, with a default set of exclusions to bypass caching<\/li>\n<li>changed: Cache module has smarter cache clearing when a post\/page (or any custom post type) is published\/updated<\/li>\n<li>changed: improved detection of existing prefetch\/preconnect hints<\/li>\n<li>fixed: cache clearing by URL for sub-directory installations<\/li>\n<\/ul>\n<p><strong>0.9.4<\/strong><\/p>\n<ul>\n<li>changed: CDN rewriter hooks into more image URL functions<\/li>\n<li>changed: browser-native lazy loading attributes no longer added by SWIS to prevent theme\/plugin conflicts<\/li>\n<li>changed: license status refreshes automatically when expiration date is reached<\/li>\n<li>fixed: DNS prefetch function causes warning when using strpos on an array<\/li>\n<\/ul>\n<p><strong>0.9.3<\/strong><\/p>\n<ul>\n<li>fixed: JS\/CSS exclusion code running in page builder mode<\/li>\n<li>fixed: Lazy Loader parsing (and breaking) JSON responses<\/li>\n<li>fixed: Divi style.css broken by CSS Minify<\/li>\n<li>fixed: CDN rewriter pre-empts Easy IO rewriting<\/li>\n<\/ul>\n<p><strong>0.9.2<\/strong><\/p>\n<ul>\n<li>added: ability to add domains for DNS prefetch and preconnect hints<\/li>\n<li>changed: prevent DNS prefetch for fonts.googleapis.com when font optimization is enabled<\/li>\n<li>changed: use better escaping function for Critical CSS setting<\/li>\n<li>fixed: license activation error messages not displayed<\/li>\n<li>fixed: lazy loader not detecting Easy IO capability<\/li>\n<\/ul>\n<p><strong>0.9.1<\/strong><\/p>\n<ul>\n<li>changed: added '.min' suffix to minified JS\/CSS files to avoid conflicts with other minifiers.<\/li>\n<li>fixed: error with Lazy Load and AMP<\/li>\n<\/ul>\n<p><strong>0.9.0<\/strong><\/p>\n<ul>\n<li>First public release!<\/li>\n<\/ul>\n"},"banners":{"high":"","low":""},"icons":[],"description":["<p>It makes your site faster, and bakes you a cake too! Alright, maybe no cakes...<\/p>\n<p>SWIS is a collection of tools for improving the speed of your site. It includes the following:<\/p>\n<ul>\n<li>Page Caching to reduce the overhead of PHP and database queries. AKA: super speed boost.<\/li>\n<li>Defer JS to prevent render-blocking scripts.<\/li>\n<li>Load CSS asynchronously to prevent render-blocking CSS.<\/li>\n<li>Inline critical CSS to prevent a Flash of Unstyled Content (FOUC) when using async CSS.<\/li>\n<li>Minify JS\/CSS to trim out extra white-space.<\/li>\n<li>Compress all assets and set proper expiration headers for awesome browser caching.<\/li>\n<li>Deliver all static resources from a CDN. CDN sold separately, or as part of our <a href=\"https:\/\/ewww.io\/plans\/\">Unlimited<\/a> bundle.<\/li>\n<li>Disable unused JS\/CSS resources. Fully customizable, load\/unload files site-wide, or on specific pages.<\/li>\n<li>DNS pre-fetch and pre-connect hints so browsers can load third-party assets quicker.<\/li>\n<li>Optimize Google Fonts.<\/li>\n<\/ul>\n<p>Purchase <a href=\"https:\/\/ewww.io\/swis\/\">separately<\/a> or as part of our <a href=\"https:\/\/ewww.io\/plans\/\">Unlimited<\/a> bundle.<\/p>\n<p><a href=\"https:\/\/ewww.io\/downloads\/swis-performance\/?changelog=1\">View Changelog<\/a><\/p>\n"],"changelog":["<p><strong>2.3.1<\/strong><br \/><em>Release Date - December 18, 2024<\/em><\/p>\n<ul>\n<li>changed: Critical CSS auto refresh after post\/page updates is optional<\/li>\n<\/ul>\n<p><strong>2.3.0<\/strong><br \/><em>Release Date - November 7, 2024<\/em><\/p>\n<ul>\n<li>added: store errors from Critical CSS generation for future reference<\/li>\n<li>changed: Critical CSS generation included with SWIS license (beta)<\/li>\n<\/ul>\n<p><strong>2.2.2<\/strong><br \/><em>Release Date - October 24, 2024<\/em><\/p>\n<ul>\n<li>fixed: post-enqueue JS\/CSS parser uses incorrect handles<\/li>\n<li>fixed: some JS variable definitions not excluded from JS defer<\/li>\n<\/ul>\n<p><strong>2.2.1<\/strong><br \/><em>Release Date - October 10, 2024<\/em><\/p>\n<ul>\n<li>fixed: CDATA exclusion for inline JS defer was too aggressive<\/li>\n<li>fixed: is_file() wrapper method triggers PHP warning on empty path<\/li>\n<li>fixed: caching system not fully removed after disabling page caching<\/li>\n<li>fixed: WP_CACHE constant sometimes not detected after enabling page caching<\/li>\n<\/ul>\n<p><strong>2.2.0<\/strong><br \/><em>Release Date - August 15, 2024<\/em><\/p>\n<ul>\n<li>added: self-host Google Fonts for improved privacy and completely eliminate extra DNS\/HTTP requests<\/li>\n<li>added: Google Fonts optimized in stylesheets where fonts are mixed with additional CSS<\/li>\n<li>added: non-enqueued Google Fonts can be managed and disabled with Slim<\/li>\n<\/ul>\n<p><strong>2.1.4<\/strong><\/p>\n<p><em>Release Date - July 31, 2024<\/em><\/p>\n<ul>\n<li>changed: improved performance of is_file() wrapper method(s)<\/li>\n<li>fixed: errors when clearing server caches due to namespace resolution<\/li>\n<\/ul>\n<p><strong>2.1.3<\/strong><\/p>\n<p><em>Release Date - July 25, 2024<\/em><\/p>\n<ul>\n<li>changed: ensure SWIS front-end options are autoloaded in WP 6.6<\/li>\n<li>fixed: Help links broken in Firefox's Strict mode<\/li>\n<li>fixed: undefined variable affecting AMP output<\/li>\n<\/ul>\n<p><strong>2.1.2<\/strong><\/p>\n<p><em>Release Date - April 11, 2024<\/em><\/p>\n<ul>\n<li>added: compatibility with Slider Revolution 7 rendering engine<\/li>\n<li>changed: home page cache is automatically purged when updating a post\/page<\/li>\n<li>improved: detection for login page in Critical CSS function<\/li>\n<\/ul>\n<p><strong>2.1.1<\/strong><\/p>\n<p><em>Release Date - December 20, 2023<\/em><\/p>\n<ul>\n<li>fixed: disabling cache clear on plugin upgrade (via override) does not pre-empt all cache clearing<\/li>\n<li>fixed: compatibility with X\/Pro themes and Cornerstone builder<\/li>\n<li>fixed: PHP notices when cache settings file is outdated<\/li>\n<\/ul>\n<p><strong>2.1.0<\/strong><\/p>\n<p><em>Release Date - August 31, 2023<\/em><\/p>\n<ul>\n<li>added: dns-prefetch and preconnect hints for Bunny Fonts<\/li>\n<li>added: WPML support for Page Cache and Critical CSS<\/li>\n<li>added: Optimize CSS preloads WPBakery, Visual Composer, and Zion Builder CSS<\/li>\n<li>added: override for CDN domain via SWIS_CDN_DOMAIN constant<\/li>\n<li>changed: updated JS\/CSS Minify library<\/li>\n<li>fixed: cache engine throws preg_grep() error on multi-site sub-domain installs in rare cases<\/li>\n<li>fixed: on multisite, database table upgrades may not run prior to cache preload and other background processes<\/li>\n<li>fixed: some front-end functions produce AMP validation errors<\/li>\n<li>fixed: Optimize JS breaks some inline scrips when they contain comments<\/li>\n<li>fixed: PHP 8.1\/8.2 deprecation notices<\/li>\n<li>security: randomize filename of debug log<\/li>\n<\/ul>\n<p><strong>2.0.4<\/strong><\/p>\n<p><em>Release Date - July 19, 2023<\/em><\/p>\n<ul>\n<li>added: dns-prefetch and preconnect hints for CSS resources<\/li>\n<li>changed: dashicons not disabled by Slim if WP admin bar is visible<\/li>\n<li>fixed: PHP 8.1 deprecation notices from usage of add_submenu_page and add_query_arg<\/li>\n<li>fixed: PHP notice when getting cache size on disk<\/li>\n<li>fixed: preconnect hints (incorrectly) skipped if dns-prefetch hint exists<\/li>\n<li>fixed: guest asset check fails in some cases<\/li>\n<li>fixed: Slim displays duplicate dependency information<\/li>\n<li>fixed: Slim missing id attributes for form elements<\/li>\n<\/ul>\n<p><strong>2.0.3<\/strong><\/p>\n<p><em>Release Date - December 21, 2022<\/em><\/p>\n<ul>\n<li>changed: improved Brizy Builder compatibility<\/li>\n<li>changed: exclude .build.* files from minification<\/li>\n<li>fixed: prevent JS\/CSS Minify from breaking on assets generated via admin-ajax.php<\/li>\n<li>fixed: front-end Critical CSS generation broken with JS error<\/li>\n<\/ul>\n<p><strong>2.0.2<\/strong><\/p>\n<p><em>Release Date - November 16, 2022<\/em><\/p>\n<ul>\n<li>fixed: AffiliateWP JS broken when inline scripts are deferred<\/li>\n<li>fixed: CDN rewriting leaks into some image URLs when Easy IO is active<\/li>\n<li>fixed: CDN rewriting leaks into post editor<\/li>\n<li>fixed: Thrive quiz builder broken with SWIS minify\/defer<\/li>\n<li>fixed: PHP warnings generated during theme update<\/li>\n<\/ul>\n<p><strong>2.0.1<\/strong><\/p>\n<p><em>Release Date - November 8, 2022<\/em><\/p>\n<ul>\n<li>changed: use defer safe mode for jQuery when inline scripts are not deferred<\/li>\n<li>fixed: inline JS for Real Cookie Banner breaks when deferred<\/li>\n<li>fixed: inline data script elements broken by JS defer<\/li>\n<li>fixed: inline script elements with reserved characters malformed<\/li>\n<li>fixed: slim.js throws errors on wp-admin<\/li>\n<li>fixed: Slim front-end panel breaks if jQuery is loaded late using non-standard hooks<\/li>\n<\/ul>\n<p><strong>2.0.0<\/strong><\/p>\n<p><em>Release Date - October 27, 2022<\/em><\/p>\n<ul>\n<li>added: customize JS\/CSS defer per-page via the Slim front-end panel (Manage JS\/CSS)<\/li>\n<li>added: delay JS per-script and per-page via Slim front-end panel<\/li>\n<li>added: defer or delay inline scripts<\/li>\n<li>added: disable, defer, and delay scripts that do not use the standard enqueue system<\/li>\n<li>added: Test Mode to limit JS\/CSS optimizations and Slim rules to logged-in admins<\/li>\n<li>added: JS errors indicated on Slim panel<\/li>\n<li>changed: if JS files are deferred, inline scripts will also be deferred by default<\/li>\n<li>changed: hide assets from Slim that are not used for non-logged in visitors<\/li>\n<\/ul>\n<p><strong>1.7.1<\/strong><\/p>\n<ul>\n<li>changed: updated Easy Digital Downloads cookies excluded from caching<\/li>\n<li>fixed: PHP warning during activation when checking for settings change<\/li>\n<li>fixed: critical CSS function attempting array to string conversion<\/li>\n<\/ul>\n<p><strong>1.7.0<\/strong><\/p>\n<ul>\n<li>added: manual Clear Site Cache action purges server-based caches: WP object cache, WP Engine, SiteGround, Pagely, LiteSpeed, and SpinupWP<\/li>\n<li>changed: add data-no-defer to critical css control JS<\/li>\n<li>changed: critical CSS for individual pages can be removed by clearing existing CSS and saving<\/li>\n<li>changed: Easy Digital Downloads cookies added to default cache exclusions<\/li>\n<li>fixed: stdClass \"not found\" in EDD updater file in edge cases<\/li>\n<li>fixed: HTML parsers break Bricks front-end editor<\/li>\n<\/ul>\n<p><strong>1.6.1<\/strong><\/p>\n<ul>\n<li>updated: plugin updater class with ability for auto-updates<\/li>\n<li>changed: page cache can be enabled on any host in conjunction with server-based page caching<\/li>\n<li>fixed: get_plugin_data function undefined in some cases<\/li>\n<li>fixed: .htaccess admin notice shown on servers where it does not exist (and is not needed)<\/li>\n<li>fixed: cache engine debug function throws error in some edge cases<\/li>\n<li>fixed: PHP empty needle error in caching function<\/li>\n<\/ul>\n<p><strong>1.6.0<\/strong><\/p>\n<ul>\n<li>added: CriticalCSS.com integration to generate critical CSS automatically and avoid FOUC with deferred CSS<\/li>\n<li>added: cache size and clear cache button on settings page<\/li>\n<li>changed: cache preload status auto-refreshes when running in background<\/li>\n<li>changed: cache overrides take effect without toggling cache setting<\/li>\n<li>fixed: page cache upgrade routine installs advanced-cache.php incorrectly<\/li>\n<li>fixed: undefined constant notice during page cache upgrade<\/li>\n<li>fixed: undefined variable when getting cache size<\/li>\n<li>fixed: cache exclusions not saving properly<\/li>\n<li>fixed: front-end checks not detecting feeds, embeds, and previews<\/li>\n<\/ul>\n<p><strong>1.5.4<\/strong><\/p>\n<ul>\n<li>added: configure content directory with SWIS_CONTENT_DIR<\/li>\n<li>changed: make all permissions checks filterable<\/li>\n<li>fixed: removal of dashicons CSS breaks Ninja Forms<\/li>\n<li>fixed: unaltered CSS was pre-loaded twice<\/li>\n<li>fixed: fatal error for invalid class when mobile caching enabled<\/li>\n<li>fixed: JS errors when WP admin bar is hidden<\/li>\n<li>fixed: spaces in Slim rules prevent URL matches<\/li>\n<li>fixed: conflicts with Thrive Editor<\/li>\n<\/ul>\n<p><strong>1.5.3<\/strong><\/p>\n<ul>\n<li>fixed: newer versions of Avada\/Fusion builder not detected properly<\/li>\n<li>fixed: some functions of Customizer not working with deferred JS<\/li>\n<\/ul>\n<p><strong>1.5.2<\/strong><\/p>\n<ul>\n<li>fixed: CSS defer double-parses the fallback noscript tags<\/li>\n<li>fixed: cache preload triggered by cache clear during plugin deactivation<\/li>\n<li>fixed: HTML parsing code incorrectly handles JSON markup<\/li>\n<\/ul>\n<p><strong>1.5.1<\/strong><\/p>\n<ul>\n<li>added: preload CSS for Avada, Brizy Builder, Gutenberg plugin, and TagDiv Composer<\/li>\n<li>fixed: JS Minify breaks when processing Brizy Builder JS<\/li>\n<li>fixed: JS Minify breaks Kali Forms<\/li>\n<li>fixed: empty wp-content folder (\/) causes rewriting of page links<\/li>\n<li>fixed: CDN rewriter throws empty needle warning for strpos<\/li>\n<li>fixed: CDN rewriter and WebP cache variant incorrectly handle JSON responses<\/li>\n<li>fixed: jQuery not deferred due to updated markup in core WP<\/li>\n<li>fixed: unable to remove last rule from Eliminate Unused JS\/CSS<\/li>\n<\/ul>\n<p><strong>1.5.0<\/strong><\/p>\n<ul>\n<li>added: preload CSS for Gutenberg, Oxygen, Elementor, GenerateBlocks and Beaver Builder when Optimize CSS Loading is enabled<\/li>\n<li>added: WebP cache variant supports relative image URLs<\/li>\n<li>fixed: WebP cache variant setting not saved to disk settings file<\/li>\n<li>fixed: WebP cache variant removes background images if .webp file does not exist<\/li>\n<li>fixed: Optimize CSS loading adds extra markup for preloaded theme files<\/li>\n<\/ul>\n<p><strong>1.4.0<\/strong><\/p>\n<ul>\n<li>added: defer and minify functions now support JS\/CSS resources added without the WP enqueue system<\/li>\n<li>added: font optimizer supports CDN domain in CSS URLs<\/li>\n<li>fixed: font optimizer uses file_get_contents() which is blocked on some servers<\/li>\n<li>fixed: JS injected incorrectly into certain Oxygen Builder components<\/li>\n<li>fixed: undefined constant from EWWW IO was triggering a warning<\/li>\n<li>fixed: Optimize CSS loading skipped stylesheets with empty media attributes<\/li>\n<li>fixed: cache engine bails if doctype declaration is slightly non-standard<\/li>\n<\/ul>\n<p><strong>1.3.0<\/strong><\/p>\n<ul>\n<li>added: mobile caching available via SWIS_CACHE_MOBILE override, use only if you deliver unique pages to mobile devices<\/li>\n<li>changed: cache clearing for plugin\/theme updates is more efficient<\/li>\n<li>changed: cache engine begins buffering earlier for improved compatibility with other plugins<\/li>\n<li>fixed: entire network cache cleared if main site in sub-dir install is cleared<\/li>\n<li>fixed: cache requirements notice shows to all users<\/li>\n<li>fixed: cache clearing for WooCommerce stock updates<\/li>\n<li>fixed: cache clearing redirect fails if Referer header is missing\/disabled, results in blank screen<\/li>\n<li>fixed: cache preloading fails if 301\/302 redirect found<\/li>\n<li>fixed: CDN parser cannot handle img elements with empty src attributes<\/li>\n<li>fixed: CDN parser regex to detect SVG images in use elements caused excessive backtracking<\/li>\n<li>fixed: DNS prefetch\/preconnect produces invalid HTML when URL does not contain a path<\/li>\n<li>update: cache clearing behavior for comments reduces unnecessary cache clearing<\/li>\n<\/ul>\n<p><strong>1.2.1<\/strong><\/p>\n<ul>\n<li>added: embedded help and improved documentation for all settings<\/li>\n<li>changed: failure to insert gzip\/cache-control rules in .htaccess failed silently, now displays an admin notice<\/li>\n<li>fixed: display of Yoast admin bar resources on JS\/CSS panel<\/li>\n<li>fixed: deferring a11y and i18n dependencies causes JS errors<\/li>\n<li>fixed: cache not cleared after enabling WebP Variant<\/li>\n<\/ul>\n<p><strong>1.2.0<\/strong><\/p>\n<ul>\n<li>added: manage JS\/CSS unloads via front-end menu\/console<\/li>\n<li>changed: JS\/CSS unload rules use strict matching unless wildcards (*) are used<\/li>\n<li>changed: new UI to manage JS\/CSS unloads<\/li>\n<li>changed: admin bar items consolidated under SWIS menu<\/li>\n<li>fixed: prefetch and preconnect hints added incorrectly if SVG title tags found in HTML<\/li>\n<\/ul>\n<p><strong>1.1.1<\/strong><\/p>\n<ul>\n<li>fixed: conditional tag functions called before query is setup<\/li>\n<li>fixed: WP-CLI error from debug functions<\/li>\n<\/ul>\n<p><strong>1.1.0<\/strong><\/p>\n<ul>\n<li>added: Cache Preload to prime the page cache<\/li>\n<li>added: minify additional CSS from theme customizer<\/li>\n<\/ul>\n<p><strong>1.0.5<\/strong><\/p>\n<ul>\n<li>changed: Critical CSS inlined earlier, and removed after styles load to avoid conflicts<\/li>\n<li>fixed: Google Fonts URLs with spaces not handled properly<\/li>\n<li>fixed: Cache clearing when new comment is submitted throws error<\/li>\n<\/ul>\n<p><strong>1.0.4<\/strong><\/p>\n<ul>\n<li>fixed: Beaver Builder cache clearing throws warnings<\/li>\n<li>fixed: CDN exclusions not saving properly<\/li>\n<\/ul>\n<p><strong>1.0.3<\/strong><\/p>\n<ul>\n<li>fixed: JS Minify breaks Beaver Builder scripts<\/li>\n<li>fixed: license validation causes mismatched key<\/li>\n<li>removed: lazy load, as we already have it in EWWW IO &amp; Easy IO<\/li>\n<\/ul>\n<p><strong>1.0.2<\/strong><\/p>\n<ul>\n<li>added: CDN rewriting for Ultimate Member AJAX requests<\/li>\n<li>fixed: jQuery safe mode not working with WP 5.6<\/li>\n<\/ul>\n<p><strong>1.0.1<\/strong><\/p>\n<ul>\n<li>added: Lazy Load for external CSS and separate style blocks (div elements only for now)<\/li>\n<li>changed: better support for WP Offload Media with WebP cache variant<\/li>\n<li>changed: CDN rewriter has better detection for custom wp-includes and wp-content folders<\/li>\n<li>fixed: cache engine not finding settings file<\/li>\n<li>fixed: WP_CACHE not defined when other plugins leave it defined as false after deactivation<\/li>\n<\/ul>\n<p><strong>1.0.0<\/strong><\/p>\n<ul>\n<li>added: docs for finding unused CSS\/JS and critical CSS added to Help Beacon<\/li>\n<li>change: CDN rewriter has better https detection<\/li>\n<\/ul>\n<p><strong>0.9.5<\/strong><\/p>\n<ul>\n<li>added: Cache module has ability to create a WebP version of your pages for supported browsers<\/li>\n<li>changed: Cache module allows query strings, with a default set of exclusions to bypass caching<\/li>\n<li>changed: Cache module has smarter cache clearing when a post\/page (or any custom post type) is published\/updated<\/li>\n<li>changed: improved detection of existing prefetch\/preconnect hints<\/li>\n<li>fixed: cache clearing by URL for sub-directory installations<\/li>\n<\/ul>\n<p><strong>0.9.4<\/strong><\/p>\n<ul>\n<li>changed: CDN rewriter hooks into more image URL functions<\/li>\n<li>changed: browser-native lazy loading attributes no longer added by SWIS to prevent theme\/plugin conflicts<\/li>\n<li>changed: license status refreshes automatically when expiration date is reached<\/li>\n<li>fixed: DNS prefetch function causes warning when using strpos on an array<\/li>\n<\/ul>\n<p><strong>0.9.3<\/strong><\/p>\n<ul>\n<li>fixed: JS\/CSS exclusion code running in page builder mode<\/li>\n<li>fixed: Lazy Loader parsing (and breaking) JSON responses<\/li>\n<li>fixed: Divi style.css broken by CSS Minify<\/li>\n<li>fixed: CDN rewriter pre-empts Easy IO rewriting<\/li>\n<\/ul>\n<p><strong>0.9.2<\/strong><\/p>\n<ul>\n<li>added: ability to add domains for DNS prefetch and preconnect hints<\/li>\n<li>changed: prevent DNS prefetch for fonts.googleapis.com when font optimization is enabled<\/li>\n<li>changed: use better escaping function for Critical CSS setting<\/li>\n<li>fixed: license activation error messages not displayed<\/li>\n<li>fixed: lazy loader not detecting Easy IO capability<\/li>\n<\/ul>\n<p><strong>0.9.1<\/strong><\/p>\n<ul>\n<li>changed: added '.min' suffix to minified JS\/CSS files to avoid conflicts with other minifiers.<\/li>\n<li>fixed: error with Lazy Load and AMP<\/li>\n<\/ul>\n<p><strong>0.9.0<\/strong><\/p>\n<ul>\n<li>First public release!<\/li>\n<\/ul>\n"],"plugin":"swis-performance\/swis-performance.php","id":"swis-performance\/swis-performance.php"}";}