{"id":289106,"date":"2026-03-24T12:40:01","date_gmt":"2026-03-24T12:40:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/code-unloader\/"},"modified":"2026-09-03T13:37:52","modified_gmt":"2026-09-03T13:37:52","slug":"code-unloader","status":"publish","type":"plugin","link":"https:\/\/mai.wordpress.org\/plugins\/code-unloader\/","author":17796635,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.11","stable_tag":"1.4.11","tested":"7.1","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Code Unloader","header_author":"Dalibor Druzinec","header_description":"Per-page JavaScript & CSS asset management. Surgically dequeue scripts and styles on any page using exact, wildcard, or regex URL rules.","assets_banners_color":"73553a","last_updated":"2026-09-03 13:37:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpservice.pro\/","header_author_uri":"https:\/\/wpservice.pro","rating":5,"author_block_rating":0,"active_installs":10,"downloads":915,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.1":{"tag":"1.4.1","author":"dalibord","date":"2026-03-24 12:50:21","revision":3490016},"1.4.10":{"tag":"1.4.10","author":"dalibord","date":"2026-06-29 08:32:58","revision":3589647},"1.4.11":{"tag":"1.4.11","author":"dalibord","date":"2026-09-03 13:37:52","revision":3679823},"1.4.2":{"tag":"1.4.2","author":"dalibord","date":"2026-04-10 12:29:26","revision":3503280},"1.4.4":{"tag":"1.4.4","author":"dalibord","date":"2026-04-18 12:05:50","revision":3509586},"1.4.5":{"tag":"1.4.5","author":"dalibord","date":"2026-04-28 08:00:35","revision":3517072},"1.4.6":{"tag":"1.4.6","author":"dalibord","date":"2026-04-30 06:47:08","revision":3519199},"1.4.9":{"tag":"1.4.9","author":"dalibord","date":"2026-06-16 05:50:25","revision":3574021}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3489996,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3489997,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3489999,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.1","1.4.10","1.4.11","1.4.2","1.4.4","1.4.5","1.4.6","1.4.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3490003,"resolution":"1","location":"assets","locale":"","width":933,"height":1706},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3490004,"resolution":"2","location":"assets","locale":"","width":828,"height":757},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3490005,"resolution":"3","location":"assets","locale":"","width":1703,"height":1654},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3490000,"resolution":"4","location":"assets","locale":"","width":1709,"height":1030},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3490001,"resolution":"5","location":"assets","locale":"","width":1703,"height":1183},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3490002,"resolution":"6","location":"assets","locale":"","width":1710,"height":1018}},"screenshots":{"1":"Frontend asset manager showing CSS and JavaScript grouped by plugin, theme, or WordPress Core","2":"Create an unloading rule by URL match, device type, and condition","3":"View and filter all CSS and JavaScript unloading rules from one screen","4":"Organize related asset rules into groups and enable or disable them together","5":"Review rule changes in the audit log","6":"Use the kill switch to bypass all rules without deleting them"}},"plugin_section":[],"plugin_tags":[227696,23325,151313,279021,279022],"plugin_category":[54],"plugin_contributors":[247730],"plugin_business_model":[],"class_list":["post-289106","plugin","type-plugin","status-publish","hentry","plugin_tags-asset-manager","plugin_tags-dequeue","plugin_tags-script-manager","plugin_tags-unload-css","plugin_tags-unload-javascript","plugin_category-security-and-spam-protection","plugin_contributors-dalibord","plugin_committers-dalibord"],"banners":{"banner":"https:\/\/ps.w.org\/code-unloader\/assets\/banner-772x250.png?rev=3489999","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/code-unloader\/assets\/icon-128x128.png?rev=3489996","icon_2x":"https:\/\/ps.w.org\/code-unloader\/assets\/icon-256x256.png?rev=3489997","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/code-unloader\/assets\/screenshot-1.png?rev=3490003","caption":"Frontend asset manager showing CSS and JavaScript grouped by plugin, theme, or WordPress Core"},{"src":"https:\/\/ps.w.org\/code-unloader\/assets\/screenshot-2.png?rev=3490004","caption":"Create an unloading rule by URL match, device type, and condition"},{"src":"https:\/\/ps.w.org\/code-unloader\/assets\/screenshot-3.png?rev=3490005","caption":"View and filter all CSS and JavaScript unloading rules from one screen"},{"src":"https:\/\/ps.w.org\/code-unloader\/assets\/screenshot-4.png?rev=3490000","caption":"Organize related asset rules into groups and enable or disable them together"},{"src":"https:\/\/ps.w.org\/code-unloader\/assets\/screenshot-5.png?rev=3490001","caption":"Review rule changes in the audit log"},{"src":"https:\/\/ps.w.org\/code-unloader\/assets\/screenshot-6.png?rev=3490002","caption":"Use the kill switch to bypass all rules without deleting them"}],"raw_content":"<!--section=description-->\n<p>Code Unloader is a free WordPress asset manager that lets you unload unused plugin CSS and JavaScript on selected pages without writing PHP. Reduce HTTP requests and page weight by loading files only where they are needed, with a one-click kill switch and per-request bypass for quick rollback.<\/p>\n\n<p>One WordPress.org user unloaded eight JavaScript files and two CSS files from the homepage, reducing it by 634.2 KB and improving PageSpeed from 96 to 99. Results vary by site and depend on which assets can be safely unloaded.<\/p>\n\n<p>Read the review:\n<a href=\"https:\/\/wordpress.org\/support\/topic\/very-good-increases-pagespeed\/\">https:\/\/wordpress.org\/support\/topic\/very-good-increases-pagespeed\/<\/a><\/p>\n\n<h4>Common uses<\/h4>\n\n<ul>\n<li>Unload contact-form CSS and JavaScript from pages without a form<\/li>\n<li>Stop WooCommerce assets from loading on pages that do not use shop features<\/li>\n<li>Unload slider, sharing, popup, or page-builder files where they are not needed<\/li>\n<li>Create different asset rules for desktop and mobile visitors<\/li>\n<li>Apply rules to one URL, a group of URLs, post types, or conditional page types<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Open any frontend page while logged in as an administrator.<\/li>\n<li>Click <strong>\u26a1 Assets<\/strong> in the WordPress Admin Toolbar.<\/li>\n<li>Find a CSS or JavaScript file and switch it off.<\/li>\n<li>Choose where the rule should apply: an exact URL, wildcard pattern, regular expression, device type, or condition.<\/li>\n<li>Save the rule, clear page cache if needed, and test the page.<\/li>\n<\/ol>\n\n<p>The frontend panel groups assets by plugin, theme, or WordPress Core, making it easier to see what is loading and where it came from.<\/p>\n\n<p>[youtube https:\/\/youtu.be\/abCdOEl1cxg]<\/p>\n\n<p>Official plugin homepage:\n<a href=\"https:\/\/wpservice.pro\/our-products\/code-unloader\/\">https:\/\/wpservice.pro\/our-products\/code-unloader\/<\/a><\/p>\n\n<h4>Main features<\/h4>\n\n<ul>\n<li>Unload registered CSS and JavaScript on selected pages or across matching URLs<\/li>\n<li>Exact URL, wildcard (<code>\/shop\/*<\/code>), and regular-expression matching<\/li>\n<li>Conditions for logged-in users, WooCommerce pages, shortcodes, and post types<\/li>\n<li>Desktop-only and mobile-only asset rules<\/li>\n<li>Rule groups, global rule management, audit log, and JSON import\/export<\/li>\n<li>One-click kill switch that restores all assets without deleting any rules<\/li>\n<li>Per-request <code>?nowpcu<\/code> bypass for testing the unoptimized page<\/li>\n<li>Detection of inline <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> blocks for easier investigation<\/li>\n<\/ul>\n\n<h4>Safe, reversible testing<\/h4>\n\n<p>Every rule can be disabled or deleted. If an unloaded file affects the page, append <code>?nowpcu<\/code> to the URL to bypass all Code Unloader rules for that request. You can also use the global kill switch to restore every asset sitewide while keeping your rules saved.<\/p>\n\n<p>Test unloading changes on a staging site first whenever possible. Removing a required CSS or JavaScript file can affect a page's appearance or functionality.<\/p>\n\n<h4>Compatibility<\/h4>\n\n<p>Code Unloader is designed to work alongside common caching, optimization, e-commerce, and page-builder plugins, including WP Rocket, W3 Total Cache, LiteSpeed Cache, WP Super Cache, WooCommerce, Elementor, Divi, and WPBakery Page Builder.<\/p>\n\n<p>PHP 8.0 or higher is required.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to <strong>Plugins &gt; Add New Plugin<\/strong> and search for <strong>Code Unloader<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Visit any frontend page while logged in as an administrator.<\/li>\n<li>Click <strong>\u26a1 Assets<\/strong> in the Admin Toolbar.<\/li>\n<li>Switch off an asset and choose where the unloading rule should apply.<\/li>\n<li>Test the page's design and functionality after saving the rule.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20code%20unloader%20remove%20unused%20css%20inside%20a%20stylesheet%3F\"><h3>Does Code Unloader remove unused CSS inside a stylesheet?<\/h3><\/dt>\n<dd><p>No. Code Unloader unloads an entire registered CSS file on pages that do not need it. It does not remove individual unused selectors from inside a stylesheet.<\/p><\/dd>\n<dt id=\"can%20i%20unload%20plugin%20css%20and%20javascript%20without%20writing%20code%3F\"><h3>Can I unload plugin CSS and JavaScript without writing code?<\/h3><\/dt>\n<dd><p>Yes. Open the frontend asset panel, switch off the asset, and choose where the rule should apply. You do not need to add PHP snippets or edit theme files.<\/p><\/dd>\n<dt id=\"can%20unloading%20an%20asset%20break%20a%20page%3F\"><h3>Can unloading an asset break a page?<\/h3><\/dt>\n<dd><p>Yes. A page can lose styling or functionality if you unload a required dependency. Test each change, preferably on staging. Use <code>?nowpcu<\/code> for a one-request bypass or the kill switch to restore all assets immediately.<\/p><\/dd>\n<dt id=\"will%20my%20rules%20survive%20a%20cache%20flush%20or%20plugin%20reactivation%3F\"><h3>Will my rules survive a cache flush or plugin reactivation?<\/h3><\/dt>\n<dd><p>Yes. Rules are stored in a custom database table and are not removed when plugin caches are cleared or Code Unloader is reactivated.<\/p><\/dd>\n<dt id=\"what%20is%20the%20kill%20switch%3F\"><h3>What is the kill switch?<\/h3><\/dt>\n<dd><p>The kill switch is an emergency recovery option in <strong>Settings &gt; Code Unloader &gt; Settings<\/strong>. When active, all rules are bypassed and every asset loads normally. Your rules are not deleted and resume when you deactivate the kill switch.<\/p><\/dd>\n<dt id=\"what%20does%20the%20%3Fwpcu%20parameter%20do%3F\"><h3>What does the ?wpcu parameter do?<\/h3><\/dt>\n<dd><p>Append <code>?wpcu<\/code> to a frontend URL to open the asset panel for logged-in administrators, including on pages where the Admin Toolbar is hidden. The parameter remains while the panel is open and is removed when you close it.<\/p><\/dd>\n<dt id=\"what%20does%20the%20%3Fnowpcu%20parameter%20do%3F\"><h3>What does the ?nowpcu parameter do?<\/h3><\/dt>\n<dd><p>Append <code>?nowpcu<\/code> to a URL to bypass all Code Unloader rules for that request. The page loads as if Code Unloader were not applying any rules. This is useful for testing, debugging, and comparing optimized and unoptimized asset loading.<\/p><\/dd>\n<dt id=\"does%20it%20support%20wildcard%20and%20regular-expression%20rules%3F\"><h3>Does it support wildcard and regular-expression rules?<\/h3><\/dt>\n<dd><p>Yes. Choose an exact URL, wildcard pattern, or regular expression when creating a rule. Regular expressions are validated before saving.<\/p><\/dd>\n<dt id=\"can%20it%20unload%20inline%20script%20and%20style%20blocks%3F\"><h3>Can it unload inline script and style blocks?<\/h3><\/dt>\n<dd><p>The Inline Blocks tab detects and lists <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> tags printed directly into the page HTML. It helps you identify inline code, but those blocks cannot currently be unloaded from the frontend panel.<\/p><\/dd>\n<dt id=\"does%20code%20unloader%20replace%20a%20caching%20or%20minification%20plugin%3F\"><h3>Does Code Unloader replace a caching or minification plugin?<\/h3><\/dt>\n<dd><p>No. Code Unloader controls whether a registered CSS or JavaScript file loads on a matching page. Caching and minification plugins change how files are stored or delivered. They can be used together.<\/p><\/dd>\n<dt id=\"what%20php%20version%20do%20i%20need%3F\"><h3>What PHP version do I need?<\/h3><\/dt>\n<dd><p>PHP 8.0 or higher. The plugin will not activate on PHP 7.x.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.11<\/h4>\n\n<ul>\n<li>Added: filter the Rules tab by URL. A new URL\/Group switch sits at the top of the rules list; pick a URL to see only the rules stored for that page. The list opens on \"All URLs\".<\/li>\n<li>Changed: the rules toolbar now filters by URL or by Group, one at a time, instead of by Group only.<\/li>\n<li>Changed: tested WordPress compatibility updated to 7.1 and plugin version bumped to 1.4.11.<\/li>\n<li>Changed: reworded the AI Assets Scanner sidebar card.<\/li>\n<\/ul>\n\n<h4>1.4.10<\/h4>\n\n<ul>\n<li>Fixed: after re-enabling one asset from the frontend panel, later disabled rows no longer inherit duplicate toggle listeners that could open the Disable Asset dialog instead of the re-enable scope chooser.<\/li>\n<\/ul>\n\n<p>For the complete release history, see <code>changelog.txt<\/code> in the plugin folder.<\/p>","raw_excerpt":"Unload unused plugin CSS and JavaScript by page without code. Reduce HTTP requests and page weight with safe, reversible asset rules.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/289106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=289106"}],"author":[{"embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dalibord"}],"wp:attachment":[{"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=289106"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=289106"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=289106"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=289106"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=289106"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mai.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=289106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}