Site Kit is a one-stop solution for WordPress users to use everything Google has to offer to make…
About Async JavaScript
Using Async JavaScript can help improve the performance of your WordPress website by eliminating render-blocking JavaScript. This will speed up your page loading time and potentially improve your search engine ranking. It gives you the ability to control which scripts to add an 'async' or 'defer' attribute to, optimizing your user's experience.Frequently asked questions
What is render-blocking Javascript?
Render-blocking Javascript prevents above-the-fold content on your page from being rendered until the javascript has finished loading.
Why is render-blocking Javascript a problem?
Render-blocking Javascript can impact on your page speed and ultimately your ranking within search engines. It can also impact your user's experience.
How can I eliminate render-blocking Javascript?
You can eliminate render-blocking Javascript by using Async Javascript, which 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.
Changelog
2.21.08.31
- workaround for issues with some inline JS getting asynced (hat tip to WP Bullet’s Mike)
2.21.06.29
- fix for an authenticated stored XSS vulnerability, credits to m0ze for discovering
- confirmed working with WordPress 5.8 (beta)
2.20.12.09
- fix for some ternary operators warning in PHP 7.4 and up.
- hard-exclude document.write (WordPress core injects inline JS that has
<script srcin it which AsyncJS acted on) - fix for WordPress 5.6 renaming jQuery from jquery.js into jquery.min.js
2.20.03.01
- extra security measure; check the nonce when saving settings/ going through wizard.
- wizard: if something fails then communicate this onscreen instead of on the console.
- autoptimize integration: change copy to explain this might or might not be helpful.
2.20.02.27
- fix for some nasty issues, thanks for the heads-up Mikey
2.19.07.14
- add
asyncjs_filter_noptimizefilter - changed textdomain to match slug as suggested by Eneko Garrido
- confirmed working with WordPress 5.2
2.18.12.10
- the “happy birthday to me” edition ?
- new: added option to disable Async JS for logged in users
- new: added option to disable Async JS on shop cart/ checkout pages (woocommerce, edd & wp ecommerce)
- added ‘settings’-link to plugin overview screen (hi Mike!)
- updated the chosen JS library to 1.8.7
- confirmed working with WordPress 5.0
2.18.06.13
- fix integration issue with Autoptimize, thx for reporting ElephantDude!
2.18.05.24
- don’t async (or defer) on AMP-pages
- disable async/ defer by when
?aj_noptimize=1is part of the URL
2.18.04.23
- Re-arrange content on the different tabs of the settings page.
- Continued refactoring of backend code, no functionality should be affected.
- Remove all images from the project such as the animated hands and progress bar gif.
- Remove empty rows that added unnecessary space.
- Switch buttons to use WordPress button styles.
- Fix broken Dashboard Widget from 2.18.03.15 and reduce font-size to fix text overflow.
- Remove all CSS !important declarations for easier CSS styling.
- Remove inline CSS styles.
- Switch to a CSS based progress bar.
- Spell check readme.
- Remove almost all tables from files.
- Refactor JavaScript.
- Add wormeyman as a contributor (thanks man!).
2.18.03.15
- bugfix: only load asyncjs’ JS & CSS on own settings page as reported by Marat Petrov
- bugfix: check if jQuery chosen is correctly loaded before using it (based on same report, thanks Marat!)
- update jQuery Chosen lib
- small readme tweaks
2.18.03.10
- ASync JS is now maintained by Frank Goossens (Optimizing Matters), thanks for the great job done David!
- Moved all Pro features into the standard version.
- Some code refactoring
- Made strings ready for translations
2.17.11.15
- MOD: Added User Agent to GTMetrix requests
2.17.11.03
- MOD: Check for GTMetrix class existence prior to including class
2.17.10.18
- FIX: Issue converting array for plugin & theme exclusions
2.17.09.30
- FIX: Sanitise all $_GET and all $_POST
- FIX: Add nonce to ajax calls
2.17.06.13
- MOD: Dashboard Widget and Notices only available to Administrators
2.17.05.08
- NEW: Added quick settings buttons to allow common settings to be quickly applied
- NEW: Added current version info to help page
2.17.05.07
- FIX: Some installs not saving plugin/theme exclusions due to theme incompatibility
2.17.05.06
- MOD/FIX: On some WordPress installs is_plugin_active function being called too early. Moved is_plugin_active into a dedicated function called via admin_init as per codex: https://codex.wordpress.org/Function_Reference/is_plugin_active
2.17.05.05
- FIX: Incorrect textarea identifier preventing exclusion save
2.17.05.04
- FIX: Resolve early loading of plugin causing a fatal error due to function not available yet
- FIX: CSS / JS not loading
2.17.05.03
- MOD: Add text to advise running Wizard is not mandatory
2.17.05.01
- massive Massive MASSIVE rewrite of Async JavaScript!!!
- Now includes a Setup Wizard, Status page, Settings page and a help page.
- Communicates directly with GTmetrix (account required)
- Automatically transfers existing settings from Async JavaScript to Async JavaScript