- Code your header/footer in CSS
- Combine or don’t combine?
- Disable jQuery
- Disable unused plugin modules
- Disable Cloudflare email obfuscation
- Disable WooCommerce scripts
- Use a smaller Google Analytics tracking code
- Is it jQuery?
- Is it a plugin?
- Is it your theme/page builder?
- Is it third-party code from external domains?
|Plugin||Category||Memory Impact||PageSpeed Impact|
|All In One SEO||SEO||X||X|
|Divi Builder||Page Builder||X||X|
|Elementor Premium Addons||Page Builder||✓||X|
|Elementor Pro||Page Builder||X||X|
|Elementor Ultimate Addons||Page Builder||✓||X|
|Social Media Share Buttons||Social Sharing||✓||X|
- Social Sharing – Grow Social.
- Comments – native comments in CSS.
- Gallery – Gutenberg Gallery or Meow Gallery.
- Translate – MultilingualPress, Polylang (not WPML).
- Sliders – Soliloquy or MetaSlider, but I don’t recommend sliders.
- Security – Cloudflare, your hosting firewall, limit login attempts, strong password, latest PHP version, disable XML-RPC, rename your wp-login page.
- SEO – Rank Math or SEOPress (less bloated than Yoast with more features).
- Theme + Page Builder – GeneratePress, Oxygen, ACF, Astra + Gutenberg, Genesis Framework, or Elementor Hello Theme if you insist on Elementor. Code your header/footer in CSS. Elementor + Divi also have built-in settings for speed.
- Maps – only load Maps on contact/local SEO pages.
- YouTube – lazy load embedded videos and replace iframe with preview image.
- Analytics – host locally and use a smaller tracking code (analytics.js or minimal).
- Advertisements – avoid if possible, reserve space to avoid layout shifts, lazy load.
- reCAPTCHA – limit how many you’re using or use a picture of your email address.
- Social Networks – usually from heavy social sharing plugins or embedded widgets.
- Gravatars – use a local Avatar plugin to serve local Avatar images and delay them.
Prefetching third-party scripts can reduce DNS lookup times. You can do this in WP Rocket, Perfmatters, Pre* Party, and other speed plugins. View which third-party code is loaded on your website, grab their hostnames, and prefetch them. Here’s a list of common domains to prefetch.
<link rel="dns-prefetch" href="https://www.googletagmanager.com">
But, page builders have gotten a bad rep since core web vitals.
There’s a large trend of people moving away from slow builders:
5. Code Your Header/Footer In CSS
If you don’t want to completely remove your page builder, try hard coding your header, footer, and sidebar in CSS instead of relying on bloated page builder code/plugins. CSS is much faster and you’ll still be able to design your actual pages (the main content area) in Elementor or Divi.
I hired WP Johnny to do this for me, but it was expensive and he’s a busy guy.
Minifying JS + CSS can be done cache plugins (or sometimes your theme), but it’s best to do it in your CDN since it’s closer to the end user, and disable it in your cache plugin.
7. Combine Or Don’t Combine?
I did this with comments (wpdiscuz and Gravatars) so my comments don’t load immediately. Since some of my articles have hundreds of comments, this made my posts load much faster.
Here are common third-party scripts you can consider delaying:
addtoany cookie-law-info apps.elfsight.com/p/platform.js xfbml.customerchat.js fbevents.js fbq( /busting/facebook-tracking/ /sdk.js#xfbml feedbackcompany.com/includes/widgets/feedback-company-widget.min.js ft.sdk.min.js getbutton.io adsbygoogle.js google-analytics.com/analytics.js ga( ' ga(' /gtag/js gtag( /gtm.js /gtm- translate.google.com/translate_a/element.js static.hotjar.com/c/hotjar- static.leadpages.net/leadbars/current/embed.js snap.licdn.com/li.lms-analytics/insight.min.js livechatinc.com/tracking.js LiveChatWidget widget.manychat.com olark //a.omappapi.com/app/js/api.min.js pinit.js pixel-caffeine/build/frontend.js shareaholic ShopifyBuy sharethis simple-share-buttons-adder smartsuppchat.com/loader.js Tawk_API widget.trustpilot.com/bootstrap static.ads-twitter.com/uwt.js twq( platform.twitter.com/widgets.js wpdiscuz
Step 1: Install Asset CleanUp or Perfmatters.
Step 2: Enable “Test Mode” if using Asset CleanUp.
Step 3: Enable the script manager if using Perfmatters.
10. Disable jQuery
Many themes and plugins use jQuery, so be careful when disabling it.
It may be possible to disable certain parts of jQuery (e.g. jquery-migrate) without it breaking your site. Test it in Perfmatters or Asset CleanUp and see if you can at least remove a few KBs.
11. Disable Unused Plugin Modules
Many plugins are module-based and let you disable individual features you don’t use.
You can do this in JetPack, Ultimate Add-Ons, Rank Math, Yoast, and other module-based plugins. If you’re not using Rank Math’s analytics, disable it. Same concept with other modules.
12. Disable Cloudflare Email Obfuscation
13. Disable WooCommerce Scripts
WooCommerce loads extra scripts and styles across your site (even on non-product pages).
The easiest way to disable these is in Perfmatters. Cart fragments update the cart total without refreshing the page, but can sometimes add a few extra seconds to your load time. Choose which options you want to disable and whether speed or cart fragments are more important.
14. Use A Smaller Google Analytics Tracking Code
Some Google Analytics scripts are larger than others.
Larger scripts collect more data for you to view in Google Analytics, but you may not even be using that data in the first place. If you only need basic data (page views, users, locations, devices, traffic sources, and real-time), you can use the minimal option. If you need more data in Google Analytics, you can use a large script type, but it will also slightly add to your load time.
- analytics.js – 18.4 KB
- minimal – 1.5 KB
- gtag.js v4 – 51.5 KB
Perfmatters, for example, lets you choose your Google Analytics script type and whether you want to disable GA’s Display Features which prevents a second HTTP request to DoubleClick.
Frequently Asked Questions
See Also: Ultimate WordPress Speed Guide