{"id":319420,"date":"2026-06-02T17:44:47","date_gmt":"2026-06-02T17:44:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/asset-control\/"},"modified":"2026-06-02T17:44:14","modified_gmt":"2026-06-02T17:44:14","slug":"assetpilot","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/assetpilot\/","author":16591212,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"AssetPilot - Granular control over frontend assets","header_author":"Amr Abdelkarem","header_description":"Granular control over frontend assets \u2014 disable, defer, async, preload, and conditional rules.","assets_banners_color":"eaf7f7","last_updated":"2026-06-02 17:44:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/amrabdelkarem.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"amrelarabi","date":"2026-06-02 17:44:14"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3558391,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3558391,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3558391,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3558391,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3558391,"resolution":"1","location":"assets","locale":"","width":1514,"height":821},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3558391,"resolution":"2","location":"assets","locale":"","width":1673,"height":732},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3558391,"resolution":"3","location":"assets","locale":"","width":1219,"height":622},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3558391,"resolution":"4","location":"assets","locale":"","width":1262,"height":688},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3558391,"resolution":"5","location":"assets","locale":"","width":1678,"height":551},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3558391,"resolution":"6","location":"assets","locale":"","width":1509,"height":591},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3558391,"resolution":"7","location":"assets","locale":"","width":1737,"height":538},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3558391,"resolution":"8","location":"assets","locale":"","width":821,"height":690}},"screenshots":[]},"plugin_section":[],"plugin_tags":[7626,187,247,2864,2003],"plugin_category":[52,54],"plugin_contributors":[213469],"plugin_business_model":[],"class_list":["post-319420","plugin","type-plugin","status-publish","hentry","plugin_tags-assets","plugin_tags-optimization","plugin_tags-performance","plugin_tags-scripts","plugin_tags-styles","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-amrelarabi","plugin_committers-amrelarabi"],"banners":{"banner":"https:\/\/ps.w.org\/assetpilot\/assets\/banner-772x250.png?rev=3558391","banner_2x":"https:\/\/ps.w.org\/assetpilot\/assets\/banner-1544x500.png?rev=3558391","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/assetpilot\/assets\/icon-128x128.png?rev=3558391","icon_2x":"https:\/\/ps.w.org\/assetpilot\/assets\/icon-256x256.png?rev=3558391","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-1.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-2.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-3.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-4.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-5.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-6.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-7.png?rev=3558391","caption":""},{"src":"https:\/\/ps.w.org\/assetpilot\/assets\/screenshot-8.png?rev=3558391","caption":""}],"raw_content":"<!--section=description-->\n<p>AssetPilot gives administrators and developers fine-grained control over frontend assets:<\/p>\n\n<ul>\n<li>Disable scripts and styles<\/li>\n<li>Defer and async scripts<\/li>\n<li>Preload assets (scripts, styles, fonts, images)<\/li>\n<li>Set fetchpriority on images and preloads<\/li>\n<li>Apply rules conditionally (pages, archives, WooCommerce, device, auth, URL)<\/li>\n<\/ul>\n\n<h3>Getting started<\/h3>\n\n<p>Open <strong>Assets<\/strong> from the admin menu, scan a page URL, then create a rule from any asset row (or select several assets for a bulk rule). The <strong>Create Rule<\/strong> screen is opened from assets or recommendations \u2014 it is not a separate starting point in the menu.<\/p>\n\n<h3>Safe Mode<\/h3>\n\n<p>If the plugin causes issues, visit (while logged in as an administrator):\n    \/wp-admin\/?assetpilot-safe-mode=1<\/p>\n\n<p>This disables frontend runtime modifications for the entire site (not just your browser). The admin UI, REST API, and asset scanning keep working. Clear any page cache after enabling if styles still look missing.<\/p>\n\n<p>After repeated frontend fatal errors, runtime rules pause automatically for 30 minutes. Resume early from Settings or visit:\n    \/wp-admin\/admin.php?page=assetpilot-settings&amp;assetpilot-resume-runtime=1<\/p>\n\n<h3>Development<\/h3>\n\n<p><strong>Source repository:<\/strong> https:\/\/github.com\/amrelarabi\/assetpilot<\/p>\n\n<p>Human-readable source for the admin and block editor UI lives in <code>assets\/src\/<\/code>. Compiled bundles in <code>assets\/build\/<\/code> are generated with <a href=\"https:\/\/www.npmjs.com\/package\/@wordpress\/scripts\">@wordpress\/scripts<\/a>.<\/p>\n\n<p><strong>Build prerequisites:<\/strong> Node.js 18+ and npm.<\/p>\n\n<p><strong>Build steps:<\/strong><\/p>\n\n<ol>\n<li><code>npm install<\/code><\/li>\n<li><code>npm run build<\/code><\/li>\n<\/ol>\n\n<p><strong>Third-party frontend libraries (see <code>package.json<\/code>):<\/strong><\/p>\n\n<ul>\n<li><code>@xyflow\/react<\/code> \u2014 dependency graph screen<\/li>\n<li><code>react-select<\/code> \u2014 multiselect fields in the rule builder<\/li>\n<\/ul>\n\n<p>PHP source is under <code>includes\/<\/code> and is loaded via Composer PSR-4 autoload (<code>AssetControl\\<\/code> namespace).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/assetpilot\/<\/code><\/li>\n<li>Run <code>composer install<\/code> and <code>npm install &amp;&amp; npm run build<\/code><\/li>\n<li>Activate through the Plugins menu<\/li>\n<li>Go to AssetPilot in the admin menu<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20affect%20the%20admin%20area%3F\"><h3>Does this affect the admin area?<\/h3><\/dt>\n<dd><p>Currently only frontend assets are managed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Granular control over WordPress frontend assets with conditional rules.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319420"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/amrelarabi"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319420"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319420"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319420"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319420"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319420"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}