外掛說明
On every page Contact Form 7 loads its dependencies (wp-hooks, wp-i18n) and its CSS into the <head>, blocking first paint. This plugin fixes that:
- Defer CF7 core — moves wp-hooks/wp-i18n to the footer (you cannot
deferthem: an inlinewp.i18n.setLocaleDatablock runs synchronously and would throw “wp is not defined”). CF7’s scripts leave the critical path. - Async CSS — the form stylesheet loads via
media=print+ onload-swap.
Both optimizations are idempotent and safe on every page. Strict dependency: with Contact Form 7 inactive, the plugin does nothing.
A note on jQuery
This plugin does NOT defer jQuery — on purpose. Deferring jQuery is only safe when EVERY jQuery-dependent script on the site is also deferred or in the footer; on an arbitrary site that is not guaranteed and breaks inline scripts in the head.
Pro version
Defer for Contact Form 7 Pro adds lazy-loaded anti-spam captcha — spam protection without a PageSpeed hit. Pick one provider (they are not run at the same time):
- Google reCAPTCHA v3 — score-based. api.js loads only on the first interaction with a form, so it never appears in Lighthouse/PSI. The score check is server-side; a fresh single-use token is fetched for every submission. The badge is hidden with the required Google disclaimer (GDPR-friendly); configurable score threshold and action label.
- Yandex SmartCaptcha — invisible mode, no widget shown unless the visitor looks suspicious. Same lazy-loading approach, binary server-side check. A practical alternative for sites served from Russia, where Google’s services aren’t always reliable.
The free version stays fully functional on its own.
Support
Questions, bug reports or feature requests: https://www.linkedin.com/in/vitalii-ryabinin/
螢幕擷圖

安裝方式
- Upload the
defer-for-contact-form-7folder to/wp-content/plugins/, or install the ZIP via Plugins Add New Upload. - Activate the plugin. Contact Form 7 must be active.
- Both optimizations are on by default — there is nothing else to configure.
- To toggle them, go to Contact Performance.
常見問題集
-
Does this work with caching/optimization plugins?
-
Yes, but minifiers that combine and reorder scripts can interfere with the headfooter move. Test with your cache plugin enabled.
-
Does the plugin send any data anywhere?
-
No. It makes no external requests and stores no personal data.
-
Does this support Yandex SmartCaptcha?
-
Yes, in the Pro version — as an alternative to Google reCAPTCHA v3. Choose the provider under Contact Performance; only one is active at a time.
使用者評論
這個外掛目前沒有任何使用者評論。
參與者及開發者
變更記錄
1.1.0
- Pro: added Yandex SmartCaptcha (invisible mode) as an alternative anti-spam provider alongside Google reCAPTCHA v3 — switch between them under Contact Performance.
- Updated the bundled Freemius SDK to 2.13.4.
1.0.0
- Initial release: CF7 core defer + async CSS.
