Description
Eliminate Render-blocking Javascript in above-the-fold content with Async Javascript.
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.
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.
Installation
Installation is very straightforward:
- Upload the zip-file and unzip it in the /wp-content/plugins/ directory
- Activate the plugin through the ‘Plugins’ menu in WordPress
- Go to
Settings
>Async JavaScript
menu to load settings page
FAQ
-
Which browsers support the ‘async’ and ‘defer’ attributes
-
The ‘async’ attribute is new in HTML5. It is supported by the following browsers:
- Chrome
- IE 10 and higher
- Firefox 3.6 and higher
- Safari
- Opera
-
Where can I get help?
-
Async JavaScript is supported via the www.ads-software.com support forum.
-
Do you offer professional support/ configuration services?
-
We offer premium services for Async JavaScript and full web performance optimization services at https://autoptimize.com/
-
What about CSS?
-
As the name implies, Async JavaScript is built to enhance JavaScript loading only. Async JavaScript does not have any impact on CSS.
We recommend using the awesome Autoptimize plugin alongside Async JavaScript for CSS optimization.
-
I want out, how should I remove Async JavaScript?
-
- Disable the plugin
- Delete the plugin
Reviews
Contributors & Developers
“Async JavaScript” is open source software. The following people have contributed to this plugin.
Contributors“Async JavaScript” has been translated into 6 locales. Thank you to the translators for their contributions.
Translate “Async JavaScript” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
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 src
in 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_noptimize
filter - 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=1
is 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.www.ads-software.com/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