[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fsGOdDv2Z3V0iOXJXWrqDsOoZJUoiL3ymmhXfAw60XGo":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":37,"analysis":135,"fingerprints":242},"async-js-and-css","Async JS and CSS","1.7.13","dmikam","https:\u002F\u002Fprofiles.wordpress.org\u002Fdmikam\u002F","\u003Cp>When your page is loaded by browser – all that stuff placed in HEAD tag is loaded before the page content – in blocking way. So the content is delivered to user in the last moment, after all javascript and css files are loaded.\u003C\u002Fp>\n\u003Cp>If you are a webmaster or just want to make your web to make better your positions on search engines (yes, they preffer faster webs), just take a look on Google PageSpeed Insights – you’ll see that one of the mos important things is fastenes and one of the reason why your page is not so fast – is “Render-blocking JavaScript and CSS”.\u003C\u002Fp>\n\u003Cp>This plugin makes ALL scripts loaded by other plugins to be loaded in asynchronous way just like Google PageSpeed Insights recommends.\u003Cbr \u002F>\nAll CSS files will be inserted inline into the document code or moved from the document beginning to the end, just before closing BODY tag (or just where you placed wp_foot() function). There are various methods to do that – they are all in plugin’s configuration page.\u003C\u002Fp>\n\u003Cp>Plugin makes all scripts to be loaded asynchronously using wp_enqueue_script and also can detect scrips included inside of wp_head and wp_footer hooks.\u003C\u002Fp>\n\u003Cp>All CSS files loaded using wp_enqueue_style can be loaded just before closing BODY tag by four methods:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>* inserting \u003Clink rel=\"stylesheet\" ...> tag\n\n* inserting \u003Cstyle>@import url(...);\u003C\u002Fstyle>\n\n* generating \u003Clink rel=\"stylesheet\" ...> tag with javascript after all have loaded\n\n* inserting ALL CSS CODE INLINE into the document (the fastest way)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>I was inspired to create this small plugin by Asynchronous Javascript but it works in completely different way.\u003C\u002Fp>\n\u003Ch3>Known incompatibilities\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>* Internet Explorer 7 - Some scripts could be loaded impropertly (trying to fix it)\n\n* Plugin - WP JetPack - Share - everithing works but \"More\" dropdown menú\n\n* Plugin - Google Analyticator\u003Ch3>Special thanks\u003C\u002Fh3>\n* NicMic\u003Ch3>TODO\u003C\u002Fh3>\n* Inline JS\n* Minify JS\n* Cache\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Converts render-blocking CSS and JS files into NON-render-blocking, improving performance of web page.",800,113934,84,51,"2017-11-28T15:34:00.000Z","3.7.41","2.6","",[20,21,22,23,24],"async","asynchronous","headjs","javascript","js","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002FasyncJSandCSS\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fasync-js-and-css.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":13,"computed_at":36},2,830,30,"2026-04-05T00:36:51.323Z",[38,59,75,97,113],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":18,"tags":53,"homepage":54,"download_link":55,"security_score":56,"vuln_count":57,"unpatched_count":57,"last_vuln_date":58,"fetched_at":30},"asynchronous-javascript","Asynchronous Javascript","1.3.5","Paris Holley","https:\u002F\u002Fprofiles.wordpress.org\u002Fparisholley\u002F","\u003Cp>This plugin is meant to be a drop-in to your wordpress installation with no additional configuration. The goals\u002Ffeatures of this plugin are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Load javascript files in an asynchronous manner to improve time to DomReady\u002FOnLoad\u003C\u002Fli>\n\u003Cli>Use existing wordpress APIs for backwards compatability and prevent coupling to this plugin\u003C\u002Fli>\n\u003Cli>Leverage dependency model wordpress provides for assets to improve loading performance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Please submit bugs or contributions to the github location and not here on wordpress’ system:\u003C\u002Fp>\n\u003Cp>https:\u002F\u002Fgithub.com\u002Fparisholley\u002Fwordpress-asynchronous-javascript\u002F\u003C\u002Fp>\n\u003Cp>SEO: async js, asynchronous js, async javascript\u003C\u002Fp>\n\u003Ch3>Incompatibility\u003C\u002Fh3>\n\u003Cp>This plugin will not work out the box with the following plugins (unless they are modified to support asynchronous loading).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Jetpack by WordPress.com (social plugin)\u003C\u002Fli>\n\u003Cli>WP Most Popular\u003C\u002Fli>\n\u003C\u002Ful>\n","Improve page load performance by asynchronously loading javascript using head.js",200,35705,74,9,"2013-11-02T21:58:00.000Z","3.5.2","3.5",[20,21,22,23,24],"http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fasynchronous-javascript\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fasynchronous-javascript.zip",63,1,"2026-01-27 00:00:00",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":28,"num_ratings":28,"last_updated":69,"tested_up_to":16,"requires_at_least":70,"requires_php":18,"tags":71,"homepage":73,"download_link":74,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"headwp","Head.WP","2.0.3","kylereicks","https:\u002F\u002Fprofiles.wordpress.org\u002Fkylereicks\u002F","\u003Cp>Head.js is a script to asynchronously load and manage dependencies of javascript and CSS assets.\u003C\u002Fp>\n\u003Cp>This plugin loads the scripts and styles enqueued in footer with the head.js loader. It does not include head.js’ feature detection.\u003C\u002Fp>\n\u003Cp>Head.js.wp assumes that scripts are loaded via \u003Ccode>wp_enqueue_script()\u003C\u002Fcode> and that any script enqueued in the \u003Ccode>\u003Chead>\u003C\u002Fcode> intends to be loaded before the rest of the page.\u003C\u002Fp>\n","Head.js is a script to asynchronously load and manage dependencies of javascript and CSS assets.",10,2629,"2014-02-18T00:00:00.000Z","3.2",[20,21,22,23,72],"script-loading","http:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fhead.js.wp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fheadwp.2.0.3.zip",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":67,"downloaded":83,"rating":84,"num_ratings":33,"last_updated":85,"tested_up_to":86,"requires_at_least":87,"requires_php":88,"tags":89,"homepage":93,"download_link":94,"security_score":95,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":96},"ajax-loading","AJAX Loading","1.1","Mahesh Thorat","https:\u002F\u002Fprofiles.wordpress.org\u002Fmaheshmthorat\u002F","\u003Cp>Enhance your website’s performance and user experience with our \u003Cstrong>Ajax Page Loading Plugin\u003C\u002Fstrong>. Load content asynchronously without reloading the page, thanks to the power of AJAX. Enjoy seamless content updates and a smoother browsing experience with lightweight JavaScript implementation—no heavy JS frameworks required.\u003C\u002Fp>\n\u003Ch3>Key Features:\u003C\u002Fh3>\n\u003Cp>🔹 \u003Cstrong>Seamless Content Updates:\u003C\u002Fstrong> Load new content without refreshing the entire page, ensuring a fluid and uninterrupted user experience.\u003Cbr \u002F>\n🔹 \u003Cstrong>Lightweight Implementation:\u003C\u002Fstrong> Boost your website’s performance with minimal JavaScript, avoiding the bloat of heavy frameworks.\u003Cbr \u002F>\n🔹 \u003Cstrong>Customizable JavaScript Callback:\u003C\u002Fstrong> Leverage the \u003Ccode>wp_ajax_load_complete\u003C\u002Fcode> callback function for tailored JS hooks and custom behaviors.\u003C\u002Fp>\n\u003Ch3>JavaScript Callback Function\u003C\u002Fh3>\n\u003Cp>Use below callback function in your javascript library or you can just directly use * wp_footer * hook for add custom script.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>wp_ajax_load_complete = function() {\n  \u002F\u002F YOUR JS HOOKS\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","This plugin improves your users page experience without reloading pages using AJAX.",2260,60,"2025-03-07T11:45:00.000Z","6.7.5","4.5","5.6",[90,21,91,23,92],"ajax","content","page-loading","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fajax-loading\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fajax-loading.1.1.zip",92,"2026-03-15T14:54:45.397Z",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":67,"downloaded":105,"rating":28,"num_ratings":28,"last_updated":106,"tested_up_to":107,"requires_at_least":108,"requires_php":18,"tags":109,"homepage":111,"download_link":112,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-headjs","WP HeadJS","0.1","Brian Zeligson","https:\u002F\u002Fprofiles.wordpress.org\u002Fbeezeee\u002F","\u003Cp>This plugin uses the wp_print_scripts action hook, as opposed to output buffering and regex used by alternative implementations.\u003C\u002Fp>\n\u003Cp>The downside of this method is that only scripts loaded via wp_enqueue_script will be affected by the plugin, the upside is better\u003Cbr \u002F>\nperformance by avoiding output buffering on every page load.\u003C\u002Fp>\n\u003Cp>The plugin will preserve any localizations added via wp_localize_script, and uses the first parameter passed to wp_enqueue_script\u003Cbr \u002F>\nas the label for the script in the head.js call. For example,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>wp_enqueue_script('jquery', 'https:\u002F\u002Fajax.googleapis.com\u002Fajax\u002Flibs\u002Fjquery\u002F1.7.1\u002Fjquery.min.js');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>would show up as\u003C\u002Fp>\n\u003Cpre>\u003Ccode>head.js({\"jquery\": \"https:\u002F\u002Fajax.googleapis.com\u002Fajax\u002Flibs\u002Fjquery\u002F1.7.1\u002Fjquery.min.js\"});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This allows you to run callbacks when specific scripts are ready, such as\u003C\u002Fp>\n\u003Cpre>\u003Ccode>head.ready('jquery', function() {\n    \u002F\u002Fdo something when jquery is loaded\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For more on HeadJS usage, see http:\u002F\u002Fheadjs.com\u002F\u003C\u002Fp>\n","Uses HeadJS to load your enqueued scripts asynchronously, in parallel, executing them in order.",1625,"2012-06-17T17:52:00.000Z","3.2.1","2.9.1",[22,23,110],"wp_enqueue_script","http:\u002F\u002Fgithub.com\u002Fbeezee\u002Fwp_headjs","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-headjs.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":123,"num_ratings":124,"last_updated":125,"tested_up_to":126,"requires_at_least":127,"requires_php":18,"tags":128,"homepage":132,"download_link":133,"security_score":13,"vuln_count":33,"unpatched_count":28,"last_vuln_date":134,"fetched_at":30},"async-javascript","Async JavaScript","2.21.08.31","David Clough","https:\u002F\u002Fprofiles.wordpress.org\u002Fcloughit\u002F","\u003Cp>Eliminate Render-blocking Javascript in above-the-fold content with Async Javascript.\u003C\u002Fp>\n\u003Cp>Render-blocking Javascript prevents above-the-fold content on your page from being rendered until the javascript has finished loading. This can impact on your page speed and ultimately your ranking within search engines. It can also impact your user’s experience.\u003C\u002Fp>\n\u003Cp>Async JavaScript gives you full control of which scripts to add an ‘async’ or ‘defer’ attribute to or to exclude to help increase the performance of your WordPress website.\u003C\u002Fp>\n","Async Javascript lets you add 'async' or 'defer' attribute to scripts to exclude to help increase the performance of your WordPres &hellip;",80000,2047749,94,102,"2023-06-22T08:00:00.000Z","6.2.9","4.6",[20,23,129,130,131],"pagespeed","performance","render-blocking","https:\u002F\u002Fautoptimize.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fasync-javascript.2.21.08.31.zip","2021-06-13 00:00:00",{"attackSurface":136,"codeSignals":192,"taintFlows":227,"riskAssessment":228,"analyzedAt":241},{"hooks":137,"ajaxHandlers":188,"restRoutes":189,"shortcodes":190,"cronEvents":191,"entryPointCount":28,"unprotectedCount":28},[138,144,148,152,156,160,163,167,170,173,176,179,184],{"type":139,"name":140,"callback":141,"file":142,"line":143},"action","plugins_loaded","ajc_plugin_loaded","asyncJSandCSS.php",14,{"type":139,"name":145,"callback":146,"file":142,"line":147},"init","ajc_init",50,{"type":139,"name":149,"callback":150,"file":142,"line":151},"wp_print_styles","ajc_print_styles",61,{"type":139,"name":153,"callback":154,"file":142,"line":155},"wp_footer","ajc_print_delayed_styles",62,{"type":139,"name":157,"callback":158,"file":142,"line":159},"wp_head","ajc_loader_init",67,{"type":139,"name":153,"callback":161,"file":142,"line":162},"ajc_loader_execute",68,{"type":139,"name":164,"callback":165,"file":142,"line":166},"wp_print_scripts","ajc_print_scripts",73,{"type":139,"name":157,"callback":168,"file":142,"line":169},"ajc_detect_scripts_in_wp_head_pre",76,{"type":139,"name":157,"callback":171,"file":142,"line":172},"ajc_detect_scripts_in_wp_head_post",77,{"type":139,"name":153,"callback":174,"file":142,"line":175},"ajc_detect_scripts_in_wp_foot_pre",82,{"type":139,"name":153,"callback":177,"file":142,"line":178},"ajc_detect_scripts_in_wp_foot_post",83,{"type":139,"name":180,"callback":181,"file":182,"line":183},"admin_menu","ajc_admin_menu","settings_page.php",3,{"type":139,"name":185,"callback":186,"file":182,"line":187},"admin_init","ajc_admin_init",106,[],[],[],[],{"dangerousFunctions":193,"sqlUsage":194,"outputEscaping":196,"fileOperations":57,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":226},[],{"prepared":28,"raw":28,"locations":195},[],{"escaped":28,"rawEcho":197,"locations":198},13,[199,202,204,206,208,210,212,214,217,219,220,222,224],{"file":142,"line":200,"context":201},159,"raw output",{"file":142,"line":203,"context":201},177,{"file":142,"line":205,"context":201},186,{"file":142,"line":207,"context":201},216,{"file":142,"line":209,"context":201},223,{"file":142,"line":211,"context":201},241,{"file":142,"line":213,"context":201},270,{"file":215,"line":216,"context":201},"functions.php",248,{"file":182,"line":218,"context":201},226,{"file":182,"line":218,"context":201},{"file":182,"line":221,"context":201},227,{"file":182,"line":223,"context":201},228,{"file":182,"line":225,"context":201},253,[],[],{"summary":229,"deductions":230},"The \"async-js-and-css\" plugin v1.7.13 presents a mixed security posture.  On the positive side, the plugin demonstrates excellent practices by avoiding dangerous functions and exclusively using prepared statements for its SQL queries, indicating a strong defense against common injection attacks. Furthermore, the absence of recorded vulnerabilities in its history suggests a generally well-maintained codebase. The plugin also has no identified CVEs, which is a significant strength.\n\nHowever, there are notable areas of concern stemming from the static analysis. The most significant risk lies in the complete lack of output escaping for all 13 identified output points. This represents a substantial vulnerability to Cross-Site Scripting (XSS) attacks, as user-supplied or indirectly controlled data could be rendered directly in the browser without sanitization. Additionally, the absence of nonce and capability checks on any entry points, while the attack surface is currently reported as zero, means that if any new entry points are introduced or existing ones are repurposed without proper authentication and authorization, these vulnerabilities could be easily exploited. The single file operation also warrants scrutiny to ensure it's handled securely.",[231,234,237,239],{"reason":232,"points":233},"Output escaping is completely missing",20,{"reason":235,"points":236},"No nonce checks on entry points",5,{"reason":238,"points":236},"No capability checks on entry points",{"reason":240,"points":236},"File operation without specified checks","2026-03-16T19:18:06.095Z",{"wat":243,"direct":253},{"assetPaths":244,"generatorPatterns":248,"scriptPaths":249,"versionParams":250},[245,246,247],"\u002Fwp-content\u002Fplugins\u002Fasync-js-and-css\u002FasyncJSandCSS.php","\u002Fwp-content\u002Fplugins\u002Fasync-js-and-css\u002Fsettings_page.php","\u002Fwp-content\u002Fplugins\u002Fasync-js-and-css\u002Ffunctions.php",[],[245],[251,252],"async-js-and-css\u002Fstyle.css?ver=","async-js-and-css\u002Fscript.js?ver=",{"cssClasses":254,"htmlComments":255,"htmlAttributes":257,"restEndpoints":258,"jsGlobals":259,"shortcodeOutput":265},[],[256],"\u003C!--script-->",[],[],[260,261,262,263,264],"asyncScripts","asyncFunctions","loadedScripts","scriptsToLoad","execOnReady",[]]