Asset CleanUp Pro: Performance WordPress Plugin

Upgrading to the premium plugin allows you to unload unused styles & scripts on extra pages such as:

  • Taxonomy pages such as default WordPress’ categories, tags and custom created ones such as products’ categories from WooCommerce.
  • Author pages (e.g. the page showing all posts published by a specific author, detected via is_author() function)
  • Default WordPress Search Page
  • WooCommmerce Search Page (which has the same settings as the actual shop page detected via is_shop() function)
  • 404 Page (Not Found): this one has be as light as possible and it’s less likely that many of the CSS and JavaScript files that are needed here (detected via is_404() function)
  • Date Archive Page: this is any page that retrieves articles filtered by the date, detected via is_date() function

As for the loaded JavaScript files, attributes such as defer and async can be applied

There are a plethora of techniques that are often used to defer parsing; however, the simple and preferred technique is to simply Defer loading of JavaScript until it is needed. If this technique isn’t appropriate to use on your page, it is next suggested that you use the <script async> attribute where appropriate, which prevents parsing from blocking the initial page load by deferring it until the browser’s UI thread is not busy doing something else. All these settings can be applied with Asset CleanUp Pro without writing any code.

Change the location of the CSS/JS files (could be moved from HEAD to BODY to prevent render-blocking or vice-versa if you need early triggering of specific files)

⚙️ “Test Mode” Functionality → Worried about making optimization mistakes? Don’t be anymore!

This allows you to optimize the website (unload useless files, set async, defer to loaded JavaScript files, clean up HTML code) without applying the changes “live” (to the regular visitor) in case you ever have any doubts that a change could break the functionality of the page/website. Any changes you’ve done will only be applied for you (the logged in administrator). Once you’re happy with how the page looks and works, you can disable “Test Mode” to push the changes live so everyone else can enjoy the faster page loads 😉

Lite vs Pro

Manage CSS & JavaScript files on Homepage, Posts, Pages & Custom Post Types (e.g. WooCommerce product pages, Easy Digital Downloads download items)
Bulk Unloads: Everywhere (Site-Wide), On Specific Pages & Post Types, Add load exceptions
Manage the CSS & JavaScript files within the Dashboard (default) and Front-end view (bottom of the page) if chosen
Enable "Test Mode" to only apply the plugin's changes for the logged-in administrator for debugging purposes
Minify remaining loaded CSS & JavaScript files (with option to add exceptions)
Combine remaining loaded CSS & JavaScript files into fewer files from each <HEAD> and <BODY> location (with option to add exceptions)
Remove unused elements from the <HEAD> and <BODY> including the following link tags: Really Simple Discovery (RSD), Windows Live Writer, REST API, Posts/Pages Shortlink, Post's Relational, WordPress Generators (also good for security), RSS Feed Links. Valid HTML comments are also stripped (exceptions can be added) while conditional Internet Explorer comments are preserved.
Site-Wide Unload For Common Elements that are often unused such as: WordPress Emojis, jQuery Migrate, Comment Reply (if not using WP as a blog)
Disable XML-RPC Protocol Support partially or completely
Inline CSS Files * Read more
Inline JavaScript Files * Read more
Defer CSS loaded in the <BODY> to reduce render-blocking resources
Manage CSS & JavaScript files on Categories, Tags, Custom Taxonomy pages, Date & Author Archive Pages, Search Results & 404 Not Found pages
Move CSS & JavaScript files from <HEAD> to <BODY> (to reduce render-blocking) or vice-versa (for very early triggering)
Apply "async" and "defer" attributes to loaded JavaScript files
Show the file sizes for each loaded CSS & JavaScript file including external ones
Priority in releasing new features & other improvements (updates that are meant for both Lite and Pro plugins are first released to the Pro users)
Priority Customer Support

Frequently Asked Questions

  • What are the requirements for using this page speed optimization plugin?

    In order to use Asset CleanUp Pro, you need to have the following:

    • WordPress site installed and active (not from, you need to have the open source software installed on your hosting package, the script from, see the differences here)
    • PHP 5.4+ (I strongly recommend PHP 7+ as it’s much faster and will boost the speed of your website considerably)

    The plugin has been tested and is fully compatible with the latest PHP version: 7.3.

  • I'm already using a caching plugin (e.g. WP Rocket, WP Fastest Cache, W3 Total Cache). Do I still need Asset CleanUp Pro?
    Asset CleanUp Pro works together with caching plugins. First, you eliminate the bloat by preventing useless CSS/JS from loading on your pages. Then, a caching plugin such as WP Rocket will take the remaining loaded files, minify/combine them and also cache the pages (by generating static HTML files which are accessed very quickly) 😉
  • How do I know if my website’s page loading speed is slow and needs improvement? 🤔

    There are various ways to check the speed of a website and this is in relation to the following: front-end (the part of the website visible to your visitors), back-end (PHP code, server-side optimization), hosting company, CDN (Content Delivery Network) setup, files loaded (making sure CSS, JS, Images, Fonts, and other elements are properly optimized when processed by the visitor’s browser).

    Asset CleanUp Pro helps you out with the following:

    • Make fewer HTTP requests
    • Minify remaining CSS/JS files to decrease the total page size
    • ‘Async’ and ‘Defer’ parsing of JavaScript
    • Minify HTML * Cleanup elements from the HEAD section of the website, thus making the HTML source code smaller
    • Disable “XML-RPC” protocol support * partially or completely

    Check out to do an analysis of your website and see the overall score your website gets in PageSpeed and YSlow and the individual score for the points that were just mentioned.

  • What is an asset and which are the assets this plugin is dealing with?

    Web assets are elements such as CSS, JavaScript, Fonts, and image files that make the front-end which is the look and functionality of your website that is processed by the browser you are using (e.g. Google Chrome. Mozilla Firefox, Safari, Internet Explorer, Opera etc.). Asset CleanUp Pro deals with CSS and JavaScript assets which are enqueued in WordPress by your theme and other plugins and cleans up HTML code from the HEAD section of your website that is not needed.

  • Can I still use the plugin after my license expires if I won’t renew it?
    Definitely! You can use Asset CleanUp Pro for as long as you wish. If your license expires and you don’t renew it, either automatically (by default) or manually (if you have canceled the recurring subscription until the renewal date), you won’t be able to get the latest updates and support, but you can still use the plugin 100%. You don’t need to renew the license after 1 year, it can be later on whenever you need any support or new features. The renewal cost for an extra year comes with a 30% discount on the license price at that time. For instance, if you paid $39 for the license, the renewal would be just $27.3. For your convenience, the license is automatically renewed after 1 year, unless you cancel the subscription.
  • Do you guarantee that the plugin will work with the theme I’m using? 💯

    Yes! The plugin has been developed according to the WordPress coding standards and any theme that is properly built will be compatible with Asset CleanUp Pro. In case you have any issues, you will get help until the issue is fixed or you will get a full refund. I don’t want your money if you can’t use the plugin.

  • Is this a caching plugin?

    The only caching stored is the one for the combined CSS & JavaScript files. Asset CleanUp Pro doesn’t create static HTML pages as other plugins do. The plugin is developed, for maximum performance, to work in combination with caching plugins such as such as WP Rocket.

    Asset CleanUp Pro will help you decrease the number of HTTP Requests. Then, a caching plugin will combine and minify the remaining files resulting in smaller CSS and JS cached files and higher page speed score.

    The website page load can be very fast if you just use a caching plugin, but using both plugins, the load speed will be blazing fast 🚀

  • Does Asset CleanUp Pro load any assets on the front-end?

    No, it doesn’t load anything extra on the front-end that would make the website slower.

    The only elements loaded (only for the logged-in administrator) are a CSS and a JavaScript file needed for the styling and functionality of Asset CleanUp Pro’s pages.

  • I do not know or I’m not sure which .CSS and .JS files to unload on my pages or which JS files should have the “defer” and “async” attributes. What should I do? 🤔

    With the recently released “Test Mode” feature, you can safely unload assets on your web pages without affecting the pages’ functionality for the regular visitors. It will unload CSS & JavaScript files that you selected ONLY for yourself (logged-in administrator). That’s recommended in case you have any doubts about whether you should applying a specific setting or unload any asset. Once you’ve been through the trial and error and your website is lighter, you can deactivate “Test Mode” and the changes will apply for everyone. Then, test the page speed score of your website!

    Adding “defer” and “async” attributes to the JavaScript tags is an optional matter, but in some situations, it could considerably improve the speed of your pages. You can read more about it here:

  • What’s your refund policy? 💳

    I’m confident that this plugin will help you improve the speed of your website and I stand by it. Thus, I’m offering a 30-day money back guarantee if Asset CleanUp Pro fails to bring you any benefits. If you request a refund, your license will be de-activated.

Happy feedback from the plugin’s users

Amazing plugin. Took my site speed from around 50/70 to 68/85 with about 5 minutes of work. And as a consequence know exactly what’s slowing my site down.

Jared Osborne,

Makes it very easy on a per page basis, to disable scripts and styles that are not needed from loading as HTTP requests on load, on the front-end of the site.

Luke Cavanagh,

I use this and Plugin Organizer, both great plugins with slightly different approaches and complexity. Good stuff!


I use this plugin on most sites I work on. Powerful, with just the right amount of options and very easy to use from absolute beginner to advanced.

Kieran Taylor,

30 Day Money Back Guarantee

I strongly believe in the quality of the plugin and if you’re not satisfied with your purchase for any reason, you can request a refund within 30 days and you will get the payment refunded.


  • Latest version: (Tested successfully with WordPress 5.2.3 and PHP 5.6 to 7.3.7)
  • Latest update: 14 October 2019
Click the area below to expand it and view the changelog: - 14 October 2019
* New Feature in "Optimize JavaScript": Move All SCRIPT tags From HEAD to BODY
* New Feature in "Optimize JavaScript": Move jQuery inline code after the jQuery library is called
* Combine Google Fonts Requests Improvement: If the LINKs already have extra commas in the font weights, they will be stripped properly and all the font weights arranged in alphabetical order in the resulting LINK tag
* Improvement: Prevent irrelevant notice errors from being recorded in some error log server files to avoid confusion about the functionality - 6 October 2019
* Compatibility with "Cache Enabler" plugin: Make sure the saved HTML files have all the changes made by Asset CleanUp Pro
* Inline JS automatically is no longer enabled by default; Added a notice about what it means to inline JS files to reminder the user to be extra careful
* Make "Update" button area (for assets management) sticky on certain pages (to avoid scrolling too much before deciding to perform the update)
* Optimize hardcoded assets that are starting with a relative path (e.g. /wp-content/ without the site URL)
* Cache Dynamic Assets Improvement (also checks for without /)
* Improvement: If 'Ignore dependency rule and keep the "children" loaded' is used and the the tag (LINK or SCRIPT) has inline code (e.g. before/after the tag) associated with it (e.g. added via wp_add_inline_script() or wp_add_inline_style()), make sure that code is also stripped along with the tag
* Bug Fix: If 'Ignore dependency rule and keep the "children" loaded' was checked, it would have stripped the tag from the HTML source even if no unload rule was set (e.g. forgotten to be set by the admin)
* Bug Fix: If Combine CSS is enabled, make sure that moved CSS from HEAD to BODY is combined and deferred separately from other CSS from the BODY - 27 September 2019
* Inline automatically CSS/JS smaller then (specific size) KB (if option is enabled)
* Inline CSS/JS Improvement: Inline (if option is enabled) dynamic loaded CSS/JS;
* Improvement for "Google Font Remove": Added more patterns to detect Web Font Loader CDN requests
* WP Rocket Compatibility Fix: If the CSS/JS files' path get changed by "WP Rocket" (path contains "/wp-content/cache/busting/"), make sure they are getting unloaded by Asset CleanUp Pro if 'Ignore dependency rule and keep the "children" loaded' option is checked along with the unload rule - 25 September 2019
* New Feature: Rewrite cached static assets URLs with the CDN ones if necessary (located in "Settings" -> "CDN: Rewrite assets URLs")
* Improvements: Strip Google Fonts references from JavaScript (.js) files (if the option is active); Append "display" parameter to Google Font URLs within JavaScript files (if any option for "font-display:" is chosen)
* Bug Fix: Make sure all values from "Site-Wide Common Unloads" show the correct status (enabled/disabled) in "System Info" from "Tools" - 16 September 2019
* New Assets Management Feature: Until now, the list was loaded automatically on edit post, page, custom post type, and taxonomy. You can choose to fetch the list when clicking on a button. This is good when you rarely manage loaded CSS/JS and want to declutter the edit page on load and also save resources as AJAX calls to the front-end won't be made to retrieve the assets' list.
* New Feature: Cache Dynamic Loaded CSS & JavaScript to avoid loading the whole WP environment and save resources on each request (e.g. /?custom-css=value_here or /wp-content/plugins/plugin-name-here/js/generate-script-output.php?ver=1)
* Reduced the number of database queries to fetch cached information making the pages preload faster (when the caching is rebuilt) thus reducing the loading time especially if PHP 5.6 is still used (which is slower than PHP 7+ when it deals with database connections).
* Combine JS files improvement: If there are multiple files that have "defer" or "async" attribute set (or both) and they are not preloaded, then they will be grouped into fewer files; Before, only SCRIPT tags without these attributes were combined
* Improvement to reduce disk space: Make sure already minified (100%) static .js files aren't cached
* Google Fonts Optimization: Requests that are for icons (e.g. are also combined to reduce HTTP requests
* "Optimize CSS Delivery" from WP Rocket works together with "Inline Chosen CSS Files" from Asset CleanUp Pro
* Prevent plugin from loading when Themify Builder (iFrame) is used
* Bug Fix: Sometimes, the position of an asset (HEAD or BODY) is reported incorrectly if it was enqueued in specific action hooks; Extra checks are made to fix that as sometimes developers do not use wp_enqueue_scripts() which is the proper hook to use when enqueuing items that are meant to appear on the front end
* Bug Fix: If CSS files get inlined, make sure @import without "url" is updated correctly in all situations
* Bug Fix: In rare cases, managing assets for the Homepage is not working properly. Reason: $post is overwritten by external plugins or the theme because the developers have forgotten to use wp_reset_postdata() and reset it to its initial value (which should be 0 in this case). - 10 September 2019
* New Feature: Remove Google Font Requests (including link/font preloads, @import/@font-face from CSS files & STYLE tags, resource hints)
* Minify/Combine CSS Improvement: Any @import found including a local CSS in another CSS file is fetched (and minified/optimized if necessary) and added to the parent file (this reduces HTTP requests, saving additional round-trip times to the overall page load) - Read more:
* Hardcoded CSS/JS (not enqueued the WordPress way) from the same domain (local) get minified/optimized
* Improved the UI for "License" page
* Bug Fix: In rare cases, when viewing the homepage assets in the Dashboard, the wrong page is checked (e.g. a post instead of the actual homepage) because specific themes/plugins do not use wp_reset_postdata() to restore $post global to its original value (none in this instance)
* Bug Fix: If Google Fonts loading type is async (optional with preload) then make sure it's applied even if there's only one LINK request - 2 September 2019
* New feature: Inline Chosen CSS/JS files (usually small ones) saving the overhead of fetching them resulting in fewer HTTP requests (more: /
* New Option to load Google Fonts: Asynchronous by preloading the CSS stylesheet
* Reduced redundant CSS/JS files cached for logged-in users, thus making clearing the caching faster and reducing the total disk space (sometimes, on certain hosting environments with lower memory limit clearing the whole caching resulted in "PHP Fatal error: Allowed memory size of (X) bytes exhausted") - 27 August 2019
* Changed the vertical "Settings" menu by renaming "Minify CSS & JS Files" & "Combine CSS & JS Files" to "Optimize CSS" & Optimize JavaScript; Added the status of the minify/combine below the menu titles to easily check what optimizations were done
* Improved the way JS files are combined; If "Defer loading JavaScript combined files" is enabled in "Optimize JavaScript", make sure that any external script between the first and last combined JS tags has "defer" attribute applied to it to avoid any JS errors in case a "child" JS file is loaded before a combined "parent" one.
* Combine CSS/JS feature now has the option to aggregate the inline tag contents associated with the combined styles/scripts (e.g. inline added after the LINK tag via wp_add_inline_style() or CDATA, inline added before/after the SCRIPT tag via wp_add_inline_script())
* Option to minify inline content between from STYLE and SCRIPT (without any "src" attribute) tags
* Optimize minify CSS/JS feature to use less resource when dynamically generating the optimized (cached) files; Minification is performed via a new library (ref:
* Option to choose between "Render-blocking" and "Asynchronous via Web Font Loader (webfont.js)" when loading the combined Google Font requests
* Bug Fix: Sometimes the dynamically created drop-down from "Hide all meta boxes for the following public post types" (in "Settings" -> "Plugin Usage Preferences") via jQuery Chosen plugin was returning an empty (0px in width) drop-down - 15 August 2019
* Option to hide all meta boxes for specific post types (e.g. not queryable or do not have a public URL, making the assets list irrelevant)
* Option to overwrite current "font-display" CSS property with the chosen one from "Settings" - "Local Fonts" for local CSS files
* Bug Fix: In some servers, when preload feature is used and the HTML is not fully valid for DOMDocument, PHP errors were printing
* Extra compatibility with "Breeze – WordPress Cache Plugin"
* Do not trigger Asset CleanUp on Avada's Fusion Builder Live: Edit Mode - 9 August 2019
* New Feature: Local Fonts Optimization; Option to add "font-display" CSS property to @font-face within local CSS files; Option to preload local font files (e.g. .woff, .ttf, .eot)
* New Feature: Option to preload Google font files (e.g. .woff)
* Extra Compatibility with the latest version of SG Optimiser
* Bug Fix: Excluding CSS/JS files from the combination was not working effectively if Minify CSS/JS was also applied to the asset
* New Feature: Strip LINKs that are made to Google Fonts ( without any "family" value (e.g. some themes/plugins allow to input the font family but don't validate empty submits) - 4 August 2019
* New Feature: Google Fonts Optimization: Combine multiple font requests into fewer requests; Option to add "font-display" CSS property (PageSpeed Insights Reference: "Ensure text remains visible during webfont load") - 30 July 2019
* New Option To Conveniently Site-Wide Unload Gutenberg CSS Library Block in "Settings" -> "Site-Wide Common Unloads"
* Better way to clear cached files as the system doesn't just check the version number of the enqueued file, but also the contents of the file in case an update is made for a CSS/JS file on the server, and the developer(s) forgot to update the version number
* When CSS/JS caching is cleared, the previously cached assets older than (X) days (set in "Settings" -> "Plugin Usage Preferences") are deleted from the server to free up space
* New Information was added to "Tools" -> "Storage Info" about the total number of cached assets and their total size
* Prevent specific already minified CSS files (based on their handle name) from various plugins from being minified again by Asset CleanUp (to save resources)
* Bug Fix: When the asset's note was saved, any quotes from the text were saved with backslashes that kept increasing on every save action - 25 July 2019
* Preload CSS/JS Compatibility Update: If "WP Fastest Cache" is enabled with "Minify CSS" or "Minify JS" option, Asset CleanUp Pro preloading works fine with the new (cached) URLs
* New Feature: Async CSS Loading via preloading for the desired assets (prevent render-blocking loading)
* New Option in "Assets List Layout": Sort assets by their preload status (preloaded or not)
* Bug Fix: Sometimes, the file writing permission constants were not loaded (e.g. FS_CHMOD_FILE)
* Bug Fix: Added extra checking to prevent a PHP warning related to a foreach() call on PluginUpdater.php
* Prevent Asset CleanUp Pro from loading any of its rules when Gravity Forms are previewed - 16 July 2019
* Defer CSS: Added support for "integrity" and "crossorigin" for dynamically created LINKs and added default "all" to "media" attribute if no value is set; Only load the dynamic deferred LINK once DOM is ready
* Code CleanUp: Removed blocks of code that weren't used
* Bux Fix: PHP Notice errors were printing on some hosts related to undefined array indexes
* Bug Fix: An error is shown if "Remove HTML Comments" is enabled because of an undefined constant
* Bug Fix: Assets' Positions weren't retrieved in "Bulk Changes" because of a PHP error - 13 July 2019
* New Feature: Option to preload CSS/JS files by ticking "Preload (if kept loaded)" checkbox for the corresponding file (More info:
* Hide irrelevant Asset CleanUp meta boxes when custom post types from "Popup Maker" & "Popup Builder" plugins are edited
* Deferred CSS files (moved from HEAD to BODY), are inserted right after the <body> tag - 5 July 2019
* Any stylesheet LINK tag within the BODY is automatically deferred by loading it via JavaScript (fallback is in place)
* Bug Fix: When pages were updated, jQuery Migrate and Comment Reply were loaded back (when they were marked for unloading)
* Bug Fix: Sometimes, WP Rocket caching was not fully cleared because of an Asset CleanUp hook that interfered with it - 3 July 2019
* Option to unload on all pages (site-wide) the Dashicons for non-logged-in users
* Load it on this page (exception) is preserved if chosen before any bulk unload
* Better accuracy in getting the total unloaded assets
* Used transient to store total unloaded assets from the SQL query (it's slow on some servers)
* Improved "Plugin Review" notice to use fewer queries to determine if it will be shown or not
* On plugin activation, mark Checkout/Cart pages from WooCommerce & EDD to not apply plugin combine/minify options
* Fixed undefined error related to ignoring "children" option
* Improved "CSS/JS Load Manager" pages overview layout
* Disable oEmbeds Feature; Option to update "Assets List Layout" while managing the assets
* Added tip messages next to various handles
* Bug Fix: AJAX call for retrieving plugins' icons was not working - 12 June 2019
* Implemented WP_FileSystem for dealing with writing and reading cached CSS/JS files
* Minify/Combine CSS/JS files option from Asset CleanUp will be unavailable if already applied in Fast Velocity Minify, SG Optimizer & Swift Performance Lite
* Bug Fix: CSS Combine was returning a 500 error in specific hosting servers although the page was loading successfully in the browser - 6 June 2019
* Minify/Combine CSS/JS files option from Asset CleanUp will be unavailable if the same feature is used in other plugins (the list includes: Autoptimize, WP Rocket, WP Fastest Cache, W3 Total Cache, SG Optimizer) to save resources and potential conflicts
* Remove Shortlink - Addition: Clean it up from the HTTP header as well (not just within the HEAD section of the website)
* Do not trigger Asset CleanUp on Elementor & Divi Page Builders AJAX calls from the Edit Area (this is especially to save resources on some hosting environments such as the shared ones)
* Only trigger fetching plugin icons from in specific situations (save resources) - 1 June 2019
* New Feature: Enable Minify CSS/JS on the fly when admin is logged in (for debugging purposes) - via /?wpacu_css_minify
* Updated "Tools" -> "System Info": Has database information related to the Asset CleanUp's entries
* Option to override "administrator" (default) role, in order to access plugin's pages
* Do not trigger Asset CleanUp Pro on REST Requests, WPBakery Page Builder Edit Mode, Brizy Page Builder Edit Mode
* Prevent "Could not read" file size errors in case files (.css, .js) have extra parameters added to them (rare cases)
* Avoid notice errors if some "SG Optimizer" features are enabled
* Minify CSS: Compatibility with "Simple Custom CSS" plugin
* Match sidebar and top bar menus; Allow unloading of CSS/JS on the fly (via URI request) for debugging purposes; Added colored left border for assets that had their position changed to easily distinguish them
* New Feature: Ignore dependency rule and keep the "children" loaded
* New Feature: CSS/JS "Notes" (useful to remember why you have unloaded or decided to keep a specific file)
* Bug Fix: Posts' Metas (e.g. load exceptions) were not imported
* Bug Fix: Make sure specific elements from "Site-Wide Common Unloads" are properly imported/exported - 4 May 2019
* "Import & Export" feature (for settings, load/unload rules and everything else)
* Move CSS/JS to BODY or HEAD - Better accuracy in detecting the location of the asset - Dependencies are not affected in any way
* Better CSS/JS minify: In rare cases, if cached files are forcefully deleted from the server (e.g. "/wp-content/cache/" directory is cleared completely) for any reason, or there are partial issues in writing the files to the cache, then the plugin will detect that and provide the original version of the file to avoid any broken front-end (ideally, cache should be cleared after cleaning operations are performed) - 21 April 2019
* Bug Fix: Make sure that "Unload on this page" checkbox stays selected after page/post update - 19 April 2019
* Bug Fix: array_key_first() didn't have a fallback for PHP 5 causing plugin admin pages to disappear
* Do not trigger Asset CleanUp if either of the following page builders is in edit mode: "Thrive Architect", "Page Builder by SiteOrigin" & "Beaver Builder"
* Code improvement; Hide meta boxes from Themify builder templates - 10 April 2019
* Option to prevent plugin to trigger any of its settings & unload rules on request via "wpacu_no_load" query string
* Do not minify CSS/JS from /wp-content/uploads/ (e.g. files belonging to Elementor or Oxygen page builder plugins)
* Added more things to "System Info" including settings and browser information
* Apply relative URLs for combined CSS/JS script/stylesheet tags, if URL opened is via SSL and the WordPress site URL starts with http://
* Bug Fix: Clear CSS/JS cache was returning a blank white page
* Bug Fix: Minify JS - Exceptions weren't applied - 1 April 2019
* "Bulk Unloaded" is renamed to "Bulk Changes" and has two tabs/pages added with the following features: 1) Remove site-wide "async/defer" for JS files - 2) Restore CSS/JS to their initial positions
* Handles from "Bulk Changes" are shown in alphabetical order
* Bug Fix: The CSS/JS position (HEAD or BODY) wasn't showing correctly on each row
* New Feature: Show plugin list if CSS/JS are sorted by location in 'contracted' mode for easier management
* New Feature: "Check / Uncheck All" for Each Plugin's Assets (when sorted by location is enabled)
* If a CSS/JS has "children" (handles depending on it), a message will be shown making the admin aware about it
* Make sure no PHP notice errors are shown if there are no bulk CSS/JS files to manage
* Do not show Asset CleanUp meta boxes when editing Oxygen Builder templates ('ct_template' custom post type) as boxes are useless in this instance; this avoids any confusion & declutters the edit template page - 16 March 2019
* Bug Fix: 403 Forbidden error was returned when fetching assets within the Dashboard because of the wrong nonce check
* Option to show on request all the settings (no tabs) within "Settings” plugin's area by appending '&wpacu_show_all' to the URL like: /wp-admin/admin.php?page=wpassetcleanup_settings&wpacu_show_all - 15 March 2019
* "Manage in the Front-end?": Add exceptions from printing the asset list when the URI contains specific strings (e.g. "et_fb=1" for Divi Visual Builder)
* Option to hide plugin's meta boxes on edit post/page area within the Dashboard
* Make sure no irrelevant errors are written excessively to the server's log printed via DOMDocument in case the HTML is not fully valid

1.1.2 - 12 March 2019
* New CSS/JS Manage Sorting Option: By HEAD and BODY locations
* Make no CSS file (that should be minified) is missed from minification such as the ones from BODY which are loaded later in the code
* Prevent PHP notice errors from showing up in the server's (e.g. Apache, Nginx) error log files
* New CleanUp option: Strip HTML Comments - 7 March 2019
* Added option to update the $content and $priority of the Asset CleanUp meta boxes via "add_filter" via the following tags (for each meta box): wpacu_asset_list_meta_box_context, wpacu_asset_list_meta_box_priority, wpacu_page_options_meta_box_context, wpacu_page_options_meta_box_priority
* Bug Fix: Make sure Emojis are always disabled when specified in the Settings and there is no DNS prefetch to //
* Bug Fix: Prevent breaking the JS if minified and contains strings such as /**/ - 1 March 2019
* Prevent AJAX calls from triggering to retrieve asset list when a new post/page is created as the CSS/JS files should only be fetched when after the post/page is published
* Improved the PHP code to use fewer resources on checking specific IF conditions
* Added introduction to the "Settings" area about how the plugin is working to give the WordPress admin user a clear understanding of what needs to be done to optimize the pages
* Bug Fix: Prevent CSS files containing "@import" from getting combined (they remain minified) to prevent breaking the layout
* Bug Fix: "Do not minify JS files on this page" checkbox from the side meta box (edit post/page area) wasn't kept as selected after "Update" button was used
* Bug Fix: Avoid PHP notice errors in case arrays that do not always have specific keys are checked - 24 February 2019
* Added readme to the "Settings" area to remind website admins about the role of the plugin
* New Feature: The location of a CSS/JS file can be updated site-wide when managing the asset on any page (from HEAD to BODY and vice-versa); Useful when, for instance, you have CSS/JS code that is loading on the HEAD (render-blocking), but it's only needed later (e.g. popups, AJAX calls outputs, etc.)
* Reduced the number of cached files on the /wp-content/cache/asset-cleanup/ directory for the combine CSS files; 404 Not Found (any URL) pages now have only one caching information file created
* Make sure CSS files containing "@import" are not combined to avoid breaking the pages' layout - 21 February 2019
* Feature update: "Combine CSS loaded files" - now the files loaded within BODY tag are also combined to further reduce HTTP requests - 18 February 2019
* Feature update: Added "Get File Size" link to get the size of an external CSS/JS file to avoid overloading the server with many AJAX requests in case there are many assets loaded from CDN locations (useful to avoid max_user_connections errors and 503 errors in some WP environments such as shared hosting accounts where any CPU/memory usage reduction matters) - 13 February 2019
* New Feature: Defer loading JavaScript combined files from BODY tag
* Changed the way the JS files are combined resulting in fewer combination groups taking into account the HEAD and BODY HTML tag locations
* Offer the option to clear the CSS/JS caching even if CSS/JS Minify/Combine options were deactivated
* Bug Fix: Make sure MSIE conditional script tags are not combined into JS groups
* Bug Fix: Old links to the manage homepage page from the admin bar were updated with the new ones
* Bug Fix: On some WordPress setups, the path to the CSS background image URL after combination was updated incorrectly - 11 February 2019
* New Features: Minify CSS & JavaScript files (remaining loaded ones after the useless ones were unloaded)
* Bug Fix: Make sure no 500 errors are returned on save settings or save post when the wrong caching directory is read - 4 February 2019
* New Feature: "Asset CleanUp: Options" side meta box showing options to disable plugin functionality for posts, pages, and custom post types; Ideal to use with the "Preview" feature if you wish to see how a page loads/looks before publishing any changes - 2 February 2019
* Fix: Make sure scripts with "async" and "defer" are excluded from any JS combination
* "Combine CSS files into one" feature update - CSS files having media="print" or media="only screen and (max-width: 768px)" (and so on) are not combined
* "Combine JS files into fewer ones" feature update - jQuery and jQuery Migrate are combined as a single group (not together with any other files); if only jQuery is loaded (without jQuery Migrate), it will not be added to any group and load independently - 1 February 2019
* Bug Fix: Prevent fatal error from showing in PHP 5.4 when the plugin was updated
* Re-organised the plugin's links within the Dashboard to make it easier to navigate through - 29 January 2019
* New Feature: Combine remaining loaded JavaScript files into fewer files, depending on the page's settings (for maximum compatibility and performance, the files are not combined into only one large file)
* The combined loaded files caching is now stored only on /wp-content/cache/asset-cleanup/ directory (no longer in the database as transients to avoid overloading the options table with too many entries) - 22 January 2019
* New sorting by location (default) option in "Assets List Layout" setting; Cache transients are also cleared when resetting everything; Changed plugin's default settings ("Inline code associated with this handle" is contracted by default) - 19 January 2019
* WooCommerce & WP Rocket Compatibility - Bug Fix: When both WooCommerce and WP Rocket are active and an administrator user is logged in and tries to place an order, the "Sorry, your session is expired." message is shown - 16 January 2019
* Make sure that no CSS is combined if "Test Mode" is ON
* State that DOMDocument is required for "Combine Loaded CSS" feature - 16 January 2019
* "Combined Loaded CSS" feature (concatenates all the remaining loaded stylesheets within the HEAD section of the page and saves them into one file) to reduce HTTP requests even further
* Improved "Getting Started" area
* Made "Settings" as the default page where you (the administrator user) is redirected when activating the plugin for the first time
* "Remove Query String from Static Resources" feature was removed as it wasn't keeping the version tag inside the file (causing possible outdated CSS & JS to be loaded instead) and wasn't worth it any tiny increase in GTMetrix score as performance and proper functionality are more important - 1 January 2019
* Added "System Info" to "Tools" page to fetch information about the WordPress environment in case something needs debugging
* Added "Getting Started" page to make things easier for anyone who doesn't understand how the plugin works - 22 December 2018
* Bug Fix: "async" and "defer" attributes were not added to the script tag if "Manage in the Front-end?" option (in the "Settings" page) was not enabled - 19 December 2018
* Make sure "ver" query string is stripped on request only for the front-end view; Avoid removing the license info from the database when resetting everything (unless the admin chooses to remove the license info too for a complete uninstall)
* Updated the way temporary data is stored (from $_SESSION to WordPress transient) for more effective use of server resources - 14 December 2018
* Bug Fix: When settings are reset to their default values via "Tools", make sure 'jQuery Migrate' and 'Comment Reply' are loading again if added in the bulk (site-wide) unload list (as by default they were not unloaded) - 14 December 2018
* Added "Tools" page which allows you to reset all settings or reset everything
* Bug Fix: Notice error was printing when there was no source file for specific handles that are loading inline code (e.g. 'woocommerce-inline') - 12 December 2018
* Better support for WordPress 5.0 when updating a post/page within the Dashboard
* On new plugin installations, "Hide WordPress Core Files From The Assets List?" is enabled by default
* Renamed "rule" text with "attribute" when dealing with "async" and "defer" options to avoid any confusions - 12 December 2018
* Bug Fix: Make sure "Remove rule" for post types (any kind) works correctly in all WP environments and WordPress 5.0 when removing it from the "Edit Page" area (Dashboard) and Front-end view mode - 9 December 2018
* Option to remove RSS Feed link tags from the section of the website* Option to hide WordPress core files from the management list to avoid applying settings to any of them by mistake (showing the core files for unloading, async or defer are mostly useful for advanced developers in particular situations)* Improved security of the pages by adding nonces everywhere there is an update button within the Dashboard related to the plugin* Added confirmation message on top of the list in front-end view after an update is made (to avoid confusion whether the settings were updated or not)* The height of an asset row (CSS or JavaScript) is now smaller as "Unload on this page" and bulk unloads (site-wide, by post type etc.) are placed on the same line if the screen width is large enough, convenient when going through a big list of assets - 4 December 2018
* Added "Input Fields Style" option in plugin's "Settings" which would turn the fancy CSS3 iPhone-like checkboxes to standard HTML checkboxes (good for people with disabilities who use a screen reader software or personal preference)
* Added notification in the front-end view in case WP Rocket is enabled with "User Cache" enabled
* Option to have the "Inline code associated with the handle" contracted on request as it will reduce the length of the assets management page in case there are large blocks of text making it easier to scan through the assets list
* Tested the plugin for full compatibility with PHP 7.2 (5.3+ minimum required to use it) - 29 November 2018
* Bug Fix: When "Remove Query Strings from CSS & JS?" option was used, other needed query strings were removed besides "ver", most common in stylesheets such as Google APIs ones - 28 November 2018
* Added the plugin's logo at the top of each Asset CleanUp Pro's page
* Added new menu icon (from the new logo) to the Dashboard's left plugin menu
* Bug Fix: If the new "All Styles & Scripts" option is chosen from "Assets List Layout" plugin's setting, make sure that "Expanded" and "Contracted" states work in any situation (page load, manual click on the + and - areas) - 27 November 2018
* Added option to expand & contract "Styles" and "Scripts" management list and ability to choose the initial state on page load via plugin's "Settings" page
* Added extra view type layout (besides the only default one) which prints all assets as one list (Styles & Scripts) * Fixed internal error showing in Apache's log related to the calculation of the file size - 23 November 2018
* Added "Test Mode" option which will unload assets only if the user is logged in as administrator and has the capability of activating plugins.
* This is good for debugging in case one might worry that a CSS/JavaScript file could be unloaded by mistake and break the website for the regular (non-logged in) users.
* Once the page loads fine and all looks good, the "Test Mode" can be disabled so the visitors will load the lighter version of the page. - 17 November 2018
* Updated code to avoid showing errors (and trigger a fatal error on activation) in case the PHP version is lower than 5.6 as the plugin is still guaranteed to work with PHP 5.3+

1.0.9 - 15 November 2018
* Bug Fix: PHP code change to properly detect the singular pages had the wrong condition set - 14 November 2018
* Better accuracy in detecting the file location to retrieve its size (to avoid errors such as NaN bytes); It also works fine if the path starts with '//' (without any URL scheme such as 'http' or 'https') - 13 November 2018
* Improved assets list styling to avoid overwriting by 3rd party CSS (from other themes and plugins)
* Added option to force license activation in case there are issues with the "Activate License" button - 10 November 2018
* Assets can be managed by an administrator that has rights to activate plugins (before just "manage_options" capability was checked)
* Added option to remove all meta generator tags from the HEAD section
* Option to disable XML-RPC protocol support (partially for Pingbacks or completely)
* PHP code cleanup for using fewer resources - 8 November 2018
* In case the assets can't be retrieved via AJAX calls within the Dashboard, the user will be notified about it and any response errors (e.g. 500 Internal Errors) would be printed for debugging purposes
* Make the user aware that there could be also CSS files loaded from the WordPress core that should be unloaded only if the user is comfortable with that - 31 October 2018
* Bug Fix: "Everywhere" bulk unloads could not be removed from "Bulk Unloaded" page - 31 October 2018
* Bug Fix: When inline CSS code was attached to a handle, it would trigger an error and prevent the assets from printing in the back-end view - 21 October 2018
* Added "Feature Request" links for both sidebar and top menus
* Less Text on the Menus (useful for the top to keep it on one line for smaller screen sizes)
* Trigger specific PHP code only in the front-end (not within the Dashboard) - 20 October 2018
* Bug Fix: Asset list wasn't retrieved within the Dashboard view as the AJAX call returned a 500 error response due to a PHP bug
* Bug Fix: The plugin's version was updated correctly to the latest one to make Dashboard plugin updates work as usual - 19 October 2018
* Bug Fix: Prevent notice errors from showing on the WordPress login page (for aesthetic reasons, functionality remains the same)

1.0.8 - 13 October 2018
* Added cleanup options to remove unneeded elements from the HEAD section of the website including: "Really Simple Discovery (RSD)" link tag, "Windows Live Writer" link tag, "REST API" link tag, Pages/Posts "Shortlink" tag, "Post's Relational Links" tag, "WordPress version" meta generator* Renamed some text to make more relevance when unloading assets* Added "Remove Query Strings from CSS & JS?"

1.0.7 - 6 October 2018
* Apply async & defer attributes to the loaded scripts
* Extra confirmation required when unloading site-wide "jQuery Migrate" and "Comment Reply" from the plugin's settings (to avoid accidental unload)
* Bug Fix: Sometimes, specific scripts were showing up on Dashboard view, but not showing on Front-end view
* Bug Fix: Getting file size was generating errors sometimes due to the wrong path to the file

1.0.6 - 19 September 2018
* Removed "@" from printing within the output result when using AJAX calls to get the assets as a delimiter to avoid conflict with Cloudflare's email protection
* Replaced deprecated jQuery's live() with on() to avoid JavaScript error on the front-end in case jQuery Migrate is disabled

1.0.5 - 18 September 2018
* Added new top menu to easily access plugin's pages; Added "Pages Info" page which has explanations about the type of WordPress pages (e.g. post, page, tag, etc.) that can have their assets managed through the plugin
* Added "Taxonomies", "Authors", "Search Results", "Dates" & "404 Not Found" tabs to "Bulk Unloaded" page; Removed iCheck and replaced with pure CSS to make the plugin lighter

1.0.4 - 5 September 2018
Bug Fix: JS & CSS files were not unloaded if “Manage in front-end view?” was not active (which is optional and only an admin preference)

1.0.3 - 3 September 2018
The premium plugin does not depend anymore on the Lite version so you don't need both plugins active. If you have Asset CleanUp Pro 1.0.3+, you can safely delete the Lite plugin (no worries, all the settings will be preserved)

1.0.2 - 4 August 2018
Initial Release
$39 – $129
For yearly updates & support, optional license renewals are required.
  • 30% license renewal discount
  • Billed yearly, until canceled
  • Cancel automatic billing, anytime
  • 1+ year of updates and support
  • 30 day money back guarantee

Secure SSL encrypted payments via PayPal & Stripe (debit & credit cards).