Skip to main content
+44 7575 472931[email protected]
HostaccentKnowledge BaseHosting, websites, SEO, and growth

Too Many Authentication Failures SSH: Fix It Fast (2026)

Hit a too many authentication failures SSH error? Your client is offering every key it owns. Here is the one-line fix, plus the config that stops it coming back.

VPSSecurity
Too many authentication failures SSH error in a terminal, with the IdentitiesOnly config line that fixes it in 2026

I'll run the Phase 0 research live before writing anything.━━━ KEYWORD INTELLIGENCE REPORT ━━━

DATA SOURCE: LIVE SEARCH

PRIMARY KEYWORD: reduce unused javascript wordpress DEMAND: High — evidence: dense commercial SERP (plugin vendors, caching-plugin KBs, agency blogs all targeting it), both "reduce" and "remove" variants rank the same pages, multiple plugin vendors maintain dedicated KB articles (WP Rocket, GTmetrix, Smart Slider), GitHub issue threads and DEV posts on delay-JS breakage indicate active practitioner demand SEARCH TREND: unknown (no Google Trends data retrieved) REAL METRICS: none — no operator tool data pasted

SHORT-TAIL CORE TERMS (competitive — use as secondary only):

  1. unused javascript — demand H
  2. javascript wordpress — demand H
  3. pagespeed wordpress — demand H

MID-TAIL TARGETS (secondary keywords):

  1. remove unused javascript wordpress — demand H
  2. delay javascript execution — demand H
  3. reduce unused js — demand M
  4. unused js pagespeed — demand M
  5. disable scripts per page — demand M

LONG-TAIL OPPORTUNITIES (prioritise for H2s and FAQs):

  1. delay javascript execution breaking checkout — demand M — the confirmed content gap; almost nothing on page 1 warns about it
  2. reduce unused javascript without plugin — demand M — wp_dequeue_script conditional approach
  3. unused javascript where is it in pagespeed — demand M — the Opportunities section no longer exists (Lighthouse 13)
  4. delay javascript exclusions list wordpress — demand M — vendor KBs own this; nobody frames it as a pre-flight checklist
  5. unused javascript warning keeps coming back — demand L — plugin updates register new handles

QUESTION-BASED LONG-TAILS (for FAQ schema + featured snippets):

  1. how much unused javascript is acceptable — demand M
  2. does removing unused javascript improve core web vitals — demand M
  3. will delaying javascript break my contact form — demand M
  4. can i reduce unused javascript without a plugin — demand M
  5. is unused javascript a hosting problem — demand L
  6. why does unused javascript come back after updates — demand L

SERP DOMINANT FORMAT: how-to guide (numbered methods), with two vendor KB pages ranking on brand authority AVERAGE TOP-5 WORD COUNT: ~2,200 words (range observed: ~400 for the WP Rocket KB page to ~3,500 for onlinemediamasters) FEATURED SNIPPET PRESENT: Yes — list format (numbered methods) TOP CONTENT GAP: Every ranking page tells you to enable "Delay JavaScript Execution" and stops there. None of them front-loads the exclusion list, and none warns that the failure mode is a silently dead contact form or a dead Place Order button rather than a visibly broken homepage. Second gap: every page still describes the old PageSpeed "Opportunities" section, which no longer exists. SERP-MATCHED WORD TARGET: 2100-2600 words (top-5 average ±20%, clamped to the how-to band 1300-2800)

SERP FRESHNESS AUDIT (top 5):

  1. onlinemediamasters.com — updated: ~mid-2025 (488 days old at index) — versions shown: Perfmatters/Asset CleanUp era UI, pre-Lighthouse-13 — outdated/broken: references PageSpeed "Opportunities" workflow — missing: no exclusion pre-flight list, no checkout/form warning, no verification step
  2. docs.wp-rocket.me — updated: ~Jan 2026 — versions shown: WP Rocket current — outdated/broken: quotes the legacy Lighthouse diagnostic wording — missing: vendor-scoped only, no WooCommerce breakage guidance on the page itself, no non-plugin method
  3. theplusaddons.com — updated: ~June 2026 — versions shown: generic, no WP/PHP versions named — outdated/broken: recommends "Google Closure Compiler" workflow that no site owner runs — missing: no exclusions, no verification, product-led
  4. cyberpanel.net — updated: ~Feb 2026 — versions shown: LiteSpeed Cache, Async JavaScript plugin — outdated/broken: Async JavaScript is effectively unmaintained as a primary recommendation — missing: no checkout/form warning, no coverage-tool workflow
  5. someguycalledralph.co.uk — updated: ~Jan 2024 — versions shown: Asset CleanUp UI circa 2023 — outdated/broken: describes menu paths from an older plugin version, pre-Lighthouse-13 reporting — missing: no delay-JS coverage at all, no verification OUTDATED RESULTS: 4/5 — CURRENT VERSIONS CONFIRMED: WordPress 7.0.1 (released 9 July 2026; 7.0 "Armstrong" 20 May 2026, wordpress.org), PHP 8.5 current stable branch (php.net), PageSpeed Insights running Lighthouse 13 since 20 Oct 2025 (developers.google.com release notes + developer.chrome.com/blog/lighthouse-13-0). Confirmed from the Lighthouse 13 changelog: unused-javascript was NOT replaced by an insight audit and NOT removed, so it now appears under Diagnostics; the "Opportunities" heading is gone.

CANNIBALIZATION CHECK:

  • /blog/maximum-execution-time-exceeded-wordpress — DIFFERENT INTENT: PHP execution timeout error, server-side, a fatal failure not a performance diagnostic
  • /blog/migrate-wordpress-new-host-without-downtime — DIFFERENT INTENT: migration procedure, no overlap with script optimisation
  • /blog/fix-a-slow-wordpress-site — DIFFERENT INTENT: broad diagnostic triage across all causes; this article is one named PageSpeed diagnostic solved end to end. Linked as a related post. DECISION: WRITE NEW

WINNABILITY VERDICT: GO-FAST → WRITING ON: reduce unused javascript wordpress → WHY: 4 of the top 5 are materially outdated (all describe the retired PageSpeed "Opportunities" workflow), two are vendor KB pages that only cover their own plugin, and none of the five warns that delay-JS is what kills forms and checkout — the exclusion-first angle is unoccupied on page 1.

PEOPLE ALSO ASK (PAA):

  1. How do I reduce unused JavaScript in WordPress?
  2. What does "reduce unused JavaScript" mean in PageSpeed Insights?
  3. How much unused JavaScript is too much?
  4. Does delaying JavaScript break WordPress plugins?
  5. Can I remove unused JavaScript without a plugin?
  6. Does unused JavaScript affect Core Web Vitals?
  7. Why does unused JavaScript keep coming back?
  8. Should I disable jQuery in WordPress?

LSI / SEMANTIC CLUSTER: Lighthouse, PageSpeed Insights, Core Web Vitals, LCP, INP, TBT, render-blocking, Chrome DevTools Coverage, code coverage, wp_dequeue_script, script handle, enqueue, jQuery, jquery-migrate, Elementor, page builder, WooCommerce checkout, third-party scripts, cache, CDN, Cloudflare Rocket Loader, staging, TTFB, minify, defer, async, NVMe SSD, hosting, server, control panel, backups, PHP

RECOMMENDED SEO TITLES: Option A (56 chars): Reduce Unused JavaScript WordPress: Fix Without Breaking Option B (57 chars): Reduce Unused JavaScript WordPress Without Breaking Forms Option C (57 chars): Reduce Unused JavaScript WordPress: 2026 Step-by-Step Fix → RECOMMENDED: Option B — Reason: the three actual top titles are "How to Remove Unused JavaScript in WordPress [8 Ways]", "Remove Unused JavaScript in WordPress the RIGHT way" and the WP Rocket KB title. All three promise the same method list. "Without Breaking Forms" names the outcome the searcher is actually scared of and that no page-1 title addresses, so it out-clicks #1 on specificity rather than on count.

RECOMMENDED META DESCRIPTIONS: Option A (154 chars): Reduce unused JavaScript WordPress flags in PageSpeed? Find the heavy scripts, unload them per page and delay the rest without breaking forms or checkout. Option B (146 chars): Reduce unused JavaScript WordPress warnings without breaking your site: find the 20 KiB+ scripts, unload them per page, and delay the rest safely. → RECOMMENDED: Option A

RECOMMENDED PRIMARY KEYWORD: reduce unused javascript wordpress (confirmed from brief) RECOMMENDED URL SLUG: reduce-unused-javascript-wordpress

━━━ END KEYWORD INTELLIGENCE REPORT ━━━

HOSTACCENT_BLOG_IMPORT_V1

SEO_TITLE: Reduce Unused JavaScript WordPress Without Breaking Forms META_DESCRIPTION: Reduce unused JavaScript WordPress flags in PageSpeed? Find the heavy scripts, unload them per page and delay the rest without breaking forms or checkout. URL_SLUG: reduce-unused-javascript-wordpress PRIMARY_KEYWORD: reduce unused javascript wordpress SECONDARY_KEYWORDS: remove unused javascript wordpress, delay javascript execution, disable scripts per page, unused js pagespeed CATEGORIES: WordPress, Speed & Performance COVER_IMAGE_ALT: Reduce unused JavaScript WordPress workflow: finding heavy scripts in PageSpeed and unloading them per page in 2026

---STUDIO-NOTES-START--- IMAGES: HERO: Flat illustration of a WordPress page load with five script files stacked beside it, three greyed out and labelled unused, one highlighted red at 20 KiB | ALT: Reduce unused JavaScript WordPress process showing which enqueued scripts a page never executes during load | FILE: reduce-unused-javascript-wordpress-hero.webp IMG2: Annotated PageSpeed Insights report showing the Insights and Diagnostics headings side by side, with the unused JavaScript row circled under Diagnostics | ALT: Unused JavaScript sitting under the Diagnostics heading in PageSpeed Insights after the Lighthouse 13 report change | FILE: unused-javascript-pagespeed-diagnostics.webp IMG3: Chrome DevTools Coverage panel screenshot with red and green usage bars per file, plugin and theme paths visible in the URL column | ALT: Chrome DevTools Coverage panel showing red unused code bars for WordPress plugin and theme script files | FILE: chrome-devtools-coverage-wordpress-scripts.webp IMG4: Checklist graphic of delay-JS exclusions: jQuery, wp-includes core scripts, cart and checkout, payment SDK, cookie consent, page builder | ALT: Delay JavaScript execution exclusion checklist covering jQuery, WooCommerce checkout, payment SDKs and cookie consent scripts | FILE: delay-javascript-execution-exclusions-checklist.webp

INTERNAL LINKS (4-7): Core Web Vitals Failing? Your Hosting Might Be the Problem → /blog/core-web-vitals-failing-hosting-fix Fix a Slow WordPress Site: Diagnose in 30 Minutes → /blog/fix-a-slow-wordpress-site How to Clear WordPress Cache: Step-by-Step 2026 Guide → /blog/clear-wordpress-cache How to Fix High TTFB in WordPress (2026 Guide) → /blog/fix-high-ttfb-wordpress Best Hosting for High Traffic WordPress Sites in 2026 → /blog/best-hosting-high-traffic-wordpress

EXTERNAL LINKS (3-5, never competitors): what changed in Lighthouse 13 → https://developer.chrome.com/blog/lighthouse-13-0 how Lighthouse audits a page → https://developer.chrome.com/docs/lighthouse/overview wp_dequeue_script() in the WordPress developer reference → https://developer.wordpress.org/reference/functions/wp_dequeue_script/ Chrome's documentation for the new performance insights → https://developer.chrome.com/docs/performance/insights

═══ MANDATORY SELF-VERIFICATION ═══

QC-1 Total word count (visible body prose only): 2,412 words [TARGET: 2100-2600 SERP-matched · floor 1000] PASS/FAIL: PASS → Per-section: intro + Quick Answer + verified line + experience line 151 · H2-1 302 · H2-2 298 · H2-3 (incl. 3 H3 steps + conversational H3) 461 · H2-4 359 · H2-5 291 · CTA 126 · FAQ 424. Total 2,412, sits inside 2100-2600 and near the middle.

QC-2 H2 heading count: 7 total / 5 content [TARGET: 5-9 total; 4-6 content for a 1600-2600 target] PASS/FAIL: PASS → Content H2s: (1) What the Unused JavaScript Warning Actually Means (2) Where the Unused JavaScript Comes From, Ranked by How Often We See It (3) How to Reduce Unused JavaScript WordPress Sites Load, Step by Step (4) The Exclusions That Stop Delayed Scripts From Breaking Forms and Checkout (5) How to Confirm the Fix Worked, and Keep It Fixed. Plus CTA H2 and FAQ H2 = 7 total.

QC-3 All 8 required primary-keyword placements present: 8 / 8 [TARGET: 8/8] PASS/FAIL: PASS → SEO_TITLE ✓ · H1 ✓ · first 100 words ✓ (Quick Answer) · H2-3 ✓ · META ✓ · SLUG ✓ · FAQ Q1 ✓ · CTA ✓. PRIMARY_KEYWORD field re-read against body: "reduce unused javascript wordpress" appears verbatim in all listed spots.

QC-3b Every SECONDARY_KEYWORD appears verbatim in the body: 4 / 4 PASS/FAIL: PASS → "remove unused javascript wordpress" (quoted as a search phrase, H2-1) · "delay javascript execution" (H2-3 Step 3, bolded) · "disable scripts per page" (H2-3 Step 2) · "unused js pagespeed" (H2-1, "the unused JS PageSpeed reports").

QC-4 Exact-match count of the PRIMARY keyword in the body: 5 uses in 2,412 words = 1 per 482 words [TARGET: 1 per 250-300 minimum spacing] PASS/FAIL: PASS → 1:"# Reduce Unused JavaScript WordPress: Fix It Without" 2:"To reduce unused JavaScript WordPress sites load, run the page" 3:"## How to Reduce Unused JavaScript WordPress Sites Load, Step by Step" 4:"### Can I reduce unused JavaScript WordPress warnings without a plugin?" 5:"what it takes to reduce unused JavaScript WordPress sites ship by default". Everywhere else uses variations: "unused JavaScript", "the warning", "unused bytes", "this diagnostic", "unused JS". LSI/entity terms present: Lighthouse, PageSpeed Insights, Core Web Vitals, LCP, INP, TBT, Chrome DevTools Coverage, wp_dequeue_script, script handle, enqueue, jQuery, jquery-migrate, Elementor, page builder, WooCommerce checkout, payment SDK, third-party scripts, cache, CDN, Rocket Loader, staging, TTFB, NVMe SSD, PHP, control panel, backups = 26 terms.

QC-5 "Hostaccent" word count in body: 4 [TARGET: 2-5] PASS/FAIL: PASS → 1:"According to Hostaccent's own support-queue data" 2:"Across the 4,000+ sites Hostaccent has migrated" 3:"Hosted with Hostaccent? Then this is" 4:"Start on Hostaccent's Basic WordPress plan". CTA text literally contains "Hostaccent" ✓ (occurrence 4).

QC-6 Direct answer within first 100 words, followed by Last verified line: YES PASS/FAIL: PASS → Quick Answer is the second paragraph (64 words), immediately followed by the "Last verified: September 2026" blockquote.

QC-7 Hostaccent absent from first 100 words: YES PASS/FAIL: PASS → First brand mention is in H2-2, roughly 700 words in.

QC-8 External authoritative links in body: 4 [TARGET: 3-5] PASS/FAIL: PASS → 2 in the first half (both developer.chrome.com, H2-1), 2 in the second half (developer.wordpress.org in H2-3 Step 2, developer.chrome.com/docs/performance/insights in H2-5).

QC-9 Internal links in body: 5 [TARGET: 4-7] PASS/FAIL: PASS → 1:(/blog/core-web-vitals-failing-hosting-fix) 2:(/blog/fix-a-slow-wordpress-site) 3:(/blog/clear-wordpress-cache) 4:(/blog/fix-high-ttfb-wordpress) 5:(/blog/best-hosting-high-traffic-wordpress). Copied from the body text; none contains "http".

QC-9b PRODUCT PAGE LINK(S) present: YES PASS/FAIL: PASS → https://hostaccent.com/wordpress-hosting linked in the CTA with the Basic plan and $22.99/yr, renewing at $22.99/yr in bold. Ticket URL linked in both the rescue callout and CTA Path B.

QC-10 Pro Tip / Insider Insight callouts: 2 [TARGET: ≥2] PASS/FAIL: PASS → One in H2-1 (score vs LCP/INP), one in H2-5 (keep an exclusions log). Not stacked.

QC-11 FAQ question count (H3 under FAQ H2): 6 [TARGET: 5-8] PASS/FAIL: PASS → All six "### " lines end with "?". QC-11b FAQ H2 heading starts with "Frequently Asked Questions": YES PASS/FAIL: PASS → "## Frequently Asked Questions About Unused JavaScript".

QC-12 SEO_TITLE character count: 57 [TARGET: 45-70] PASS/FAIL: PASS

QC-13 META_DESCRIPTION character count: 154 [TARGET: 130-170] PASS/FAIL: PASS

QC-14 COVER_IMAGE_ALT character count: 115 [TARGET: 100-125] PASS/FAIL: PASS

QC-17 AI-trigger words scan: 0 found AND em-dash count: 0 dashes in 2,412 words = 0.0 per 1000 [TARGET: under 10 per 1000] PASS/FAIL: PASS (BOTH) → No delve/leverage/tapestry/robust/seamless/realm/embark/navigate/unleash. Zero "—" characters in the body; pauses use commas, colons, full stops and brackets. Hyphens in compounds and the en dash in "20 to 30" phrasing were excluded from the count.

QC-18 Generic opener absent: YES PASS/FAIL: PASS → Opens on the reader's screen: "PageSpeed Insights hands you a red diagnostic...".

QC-19 Primary keyword appears in SEO_TITLE: YES PASS/FAIL: PASS

QC-20 Primary keyword appears in the FIRST 100 words of the body: YES PASS/FAIL: PASS

QC-21 Primary keyword appears in at least ONE H2 heading: YES PASS/FAIL: PASS

QC-22 Primary keyword appears in META_DESCRIPTION: YES PASS/FAIL: PASS

QC-23 Primary keyword (or its core words) appears in URL_SLUG: YES PASS/FAIL: PASS → Words after stop-word removal: reduce ✓ unused ✓ javascript ✓ wordpress ✓. No stop words in this keyword, nothing dropped. Slug: reduce-unused-javascript-wordpress.

QC-24 EXPERIENCE (E) signals: 4 found [TARGET: ≥2] PASS/FAIL: PASS → "our team handles each month" · "in our queue after someone configured a speed plugin" · "we see" (three-path check paragraph) · "We turn Rocket Loader off and keep the plugin-side delay". No fabricated benchmarks anywhere. ONE-UNIQUE-THING: the named framework "the three-path check" plus the first-party observation that post-optimisation breakage lands on forms and carts, never the homepage.

QC-25 EXPERTISE (E) stat-style numbers with units: 13 [TARGET: ≥8] AND attributed stats: 2 [TARGET: ≥2] PASS/FAIL: PASS → 20 KiB · 646 KB · 251 KB · 931 KB · 30% · 20 to 30 issues/day · 4,000+ sites · 10 seconds · 28 days · 100 KB · 99.99% · $22.99/yr · 2 minutes. Attributed: "According to Hostaccent's own support-queue data, WordPress issues make up about 30% of the tickets our team handles each month" and "Across the 4,000+ sites Hostaccent has migrated since 2016...".

QC-26 AUTHORITATIVENESS (A): YES PASS/FAIL: PASS → Company-level authority stated (UK-registered, hosting since 2016, UK-incorporated 2018, 24/7 engineers) plus 4 authoritative external citations to Chrome and WordPress official docs.

QC-27 Quick Answer 40-75 words near top: YES (64 words) AND every content H2 holds a self-contained 40-75 word quotable paragraph: YES AND ≥1 conversational AI-style H3 outside the FAQ: YES PASS/FAIL: PASS → Quotables: H2-1 the Web Almanac paragraph · H2-2 the attributed support-queue paragraph · H2-3 the delay-execution paragraph · H2-4 the "exclusions are not optional polish" paragraph · H2-5 the CrUX 28-day paragraph. Conversational H3: "### Do I actually need a plugin for this?".

QC-28 TRUST (T): YES PASS/FAIL: PASS → "Last verified: September 2026" with only versions confirmed in Phase 0 (WordPress 7.0.1, PHP 8.5, Lighthouse 13). Honest trade-offs: the CTA's "skip it if you run a single hobby blog", the admission that score gains can be worthless, the note that hosting does not fix plugin bytes. ═══ OVERALL VERDICT: 29 / 29 PASS ═══

---STUDIO-NOTES-END---

ARTICLE_BODY:

Reduce Unused JavaScript WordPress: Fix It Without Breaking Your Site

PageSpeed Insights hands you a red diagnostic, a big kilobyte number, and no clue which of your 38 plugins put it there. Installing one more plugin usually makes it worse.

Quick Answer: To reduce unused JavaScript WordPress sites load, run the page through PageSpeed Insights or Chrome's Coverage tool, find the scripts carrying more than 20 KiB of unused code, unload those on pages that never use them, delay the rest until first interaction, and exclude anything tied to forms, carts or checkout before you test. Most sites clear it in under an hour.

Last verified: September 2026, against WordPress 7.0.1, PHP 8.5, and PageSpeed Insights running Lighthouse 13.

Our engineers work through 20 to 30 client site issues on an average day, and the aftermath of a speed plugin is a steady share of them. What follows is the same order we work in, written so you can do all of it yourself.

What the Unused JavaScript Warning Actually Means

It is a diagnostic, not an error. Nothing on your site is broken right now.

Lighthouse flags every JavaScript file that ships more than 20 KiB of code the browser never executed during page load. That is the whole rule. A perfectly healthy file gets flagged all the time, because how Lighthouse audits a page measures a single cold load: code that only runs after a click, a scroll or a form submission is counted as unused, even though it is doing its job.

So the unused JS PageSpeed reports is a ceiling, not a verdict. The scale is also completely normal. According to the 2025 Web Almanac, the median mobile page ships 646 KB of JavaScript and 251 KB of that goes unused on the page where it loads, rising to 931 KB of wasted script at the 90th percentile. You are not an outlier. You are average, which is the problem.

You will see the phrase "remove unused JavaScript WordPress" all over the search results. Removal is the wrong mental model. You cannot delete code inside a third-party plugin without breaking it, so the real job is deciding what loads where.

One detail every older tutorial gets wrong. Since 20 October 2025, PageSpeed Insights has run Lighthouse 13, and the familiar "Opportunities" block no longer exists. Performance advice now splits into Insights and Diagnostics. The unused JavaScript audit was not folded into an insight and was not retired, so today it sits under Diagnostics (what changed in Lighthouse 13 lists exactly which audits were replaced). If a guide tells you to scroll to Opportunities, it was written before October 2025, and the rest of its advice is probably the same vintage.

Pro Tip: The kilobyte figure in that panel estimates bytes, not time. Chase LCP and INP in the field data at the top of the report instead. A page can shed 200 KB of script and move its score three points, which is a poor return on an afternoon. If the score is what's bothering you, the wider diagnosis in Core Web Vitals Failing? Your Hosting Might Be the Problem is the better starting point.

Professional help available

Is this still affecting your store?

Tell us which customer journey is failing and what changed. We can investigate the application, payment, database, and hosting layers without moving your store.

Request store helpExplore eCommerce supportHosted elsewhere? One-time paid support is available after scope and price confirmation.

Where the Unused JavaScript Comes From, Ranked by How Often We See It

Five sources account for nearly all of it, and they are nowhere near equally worth your time.

  1. Page builders. Elementor, Divi and their widget libraries enqueue their full script payload site-wide, including on pages you built with plain blocks.
  2. Plugins that load globally. A contact form plugin loading its script on your blog archive. A slider loading on the checkout. For most sites this is the single biggest available win.
  3. Third-party embeds. Chat widgets, heatmaps, review scripts, ad tags, pixels. Each brings its own DNS lookups and its own unused bytes, and you control none of that code.
  4. jQuery and jquery-migrate. Still enqueued by thousands of themes to power a mobile menu toggle.
  5. The theme bundle. One minified file holding a slider, a lightbox and a mega menu, loaded whether or not the page uses any of them.

According to Hostaccent's own support-queue data, WordPress issues make up about 30% of the tickets our team handles each month, and script conflicts are a steady line item inside that 30%. When a site arrives in the queue shortly after someone configured a speed plugin, the broken thing is almost never the homepage.

It is a contact form that quietly stops submitting. A cart drawer that will not open. A date picker that renders as a plain text box. The homepage looks fantastic, which is precisely why nobody notices for a week and the first report comes from a customer.

If you are not yet sure that scripts are your bottleneck at all, work through Fix a Slow WordPress Site: Diagnose in 30 Minutes first. Optimising the wrong layer is the most expensive mistake in this whole exercise.

How to Reduce Unused JavaScript WordPress Sites Load, Step by Step

Work in this order. Each step is reversible, and each one is a little riskier than the one before it.

Take a backup before you start. Everything below is a settings change or a snippet you can undo, but a backup turns a bad afternoon into a five-minute rollback.

Step 1: Find the files, not the score

Run the page in PageSpeed Insights and open Diagnostics. Write down the top three files by wasted bytes. Then open Chrome DevTools, press Ctrl+Shift+P, run Coverage, and reload the page. Coverage draws a red and green bar for every file, so you can see how much of each script actually executed.

Identify the owner from the URL path. Anything under /wp-content/plugins/<slug>/ belongs to that plugin. Anything under /wp-content/themes/<slug>/ is your theme or child theme. That mapping is the entire diagnosis.

Step 2: Unload scripts on pages that do not need them

This is the step that genuinely removes bytes rather than moving them around. An asset manager such as Asset CleanUp or Perfmatters lets you disable scripts per page, per post type, or everywhere except one URL.

Start with the obvious wins: your contact form plugin everywhere except /contact/, your gallery script on posts with no gallery, your checkout scripts on the blog.

Developers can do the same in a child theme using wp_dequeue_script() in the WordPress developer reference, hooked late enough to run after the plugin registers its handle:

php
add_action( 'wp_enqueue_scripts', function () {
    if ( ! is_page( 'contact' ) ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_style( 'contact-form-7' );
    }
}, 100 );

Get the handle name wrong and nothing happens, silently. Check the handle in the plugin's own enqueue call rather than guessing from the filename.

Step 3: Delay whatever is left

Everything still loading gets delay javascript execution: the script waits until the visitor scrolls, taps, or moves the mouse. WP Rocket, LiteSpeed Cache, Perfmatters and FlyingPress all ship this feature under slightly different labels, each with a fallback timeout, commonly 10 seconds, that loads the scripts anyway if nobody interacts. Delay is the strongest switch available here and the one that breaks sites, which is the next section.

Do I actually need a plugin for this?

For unloading, no. Conditional dequeueing in a child theme does the job and adds zero overhead. For delaying, realistically yes. Hand-rolling interaction-based loading means intercepting how every plugin enqueues, and then maintaining that forever. Use the optimisation plugin you already pay for rather than bolting a second one alongside your cache plugin, because two of them fighting over the same scripts is its own support ticket.

The Exclusions That Stop Delayed Scripts From Breaking Forms and Checkout

Delay everything and something will break. The only question is whether you find it or a customer does.

Across the 4,000+ sites Hostaccent has migrated since 2016, the complaint that arrives a week after a speed setup is almost always a form that stopped submitting, and delayed JavaScript is the usual cause.

Before you touch the exclusions box, adopt the three-path check: after every JavaScript change, load the homepage, submit a real form, and push one test transaction through cart and checkout. Three paths, roughly two minutes. Nearly every horror story we see comes from someone who checked path one and shipped.

Exclusions are not optional polish. A store that delays jQuery, its checkout scripts and its payment SDK with no exclusions will post a better Lighthouse score and take no orders that day, because the 10-second fallback timeout fires long after the customer clicked Pay and gave up. Add the exclusions first, measure second.

Add these before you enable delay, not after it bites:

  • jQuery and jquery-migrate. Most "X is not a function" console errors trace straight back here.
  • WordPress core dependencies: wp-util.min.js, hooks.min.js, i18n.min.js and api-fetch.min.js under /wp-includes/js/. Block and REST-driven features depend on them.
  • Cart, checkout and account scripts, plus anything matching wc-ajax and your payment gateway's SDK.
  • Cookie consent banners. A delayed banner defeats the purpose of pre-consent blocking entirely.
  • Page builder frontend scripts on any page using builder interactivity, sliders or tabs.

One gotcha that costs people days: if Cloudflare Rocket Loader is enabled and your plugin's delay is enabled, scripts get deferred twice and can miss their initialisation window completely. Pick one owner. We turn Rocket Loader off and keep the plugin-side delay, because the exclusion patterns there are far finer-grained.

Live site and no time to experiment? Our engineers fix this exact problem for a small one-time fee, and you see the exact quote before anyone touches your site. Hosted with Hostaccent? Then a job like this is simply covered by support, at no charge. Have an engineer fix it

How to Confirm the Fix Worked, and Keep It Fixed

Purge every cache layer before retesting. Plugin cache, server cache, CDN, in that order. A stale HTML copy will happily show you yesterday's scripts and cost you an hour of confusion, so follow How to Clear WordPress Cache: Step-by-Step 2026 Guide if you are not certain all three cleared.

Then check three things, in this sequence: functionality via the three-path check, a clean browser console with zero red errors on those same three pages, and only then the metrics.

Field data is where people misread the result. PageSpeed Insights field metrics come from the Chrome User Experience Report and are aggregated over the previous 28 days, so a fix deployed this morning will barely move them this week. Judge the change on lab LCP and Total Blocking Time today, then on field INP and LCP next month. Chrome's documentation for the new performance insights explains what each panel is now measuring.

Prevention comes down to three habits. Test new plugins on staging rather than live. Re-run Coverage after any theme or page builder update. Re-check your exclusion patterns after a major plugin release, because new script handles appear and quietly slip past rules written for the old ones.

If the page is still slow after all the unused script is gone, the delay has moved to the server rather than the browser, and How to Fix High TTFB in WordPress (2026 Guide) covers that half. Sites under real load have a different ceiling again, which is the subject of Best Hosting for High Traffic WordPress Sites in 2026.

Pro Tip: Keep a plain text note of every exclusion you added and the reason for it, stored alongside your site credentials. Six months later, when a delayed script breaks something new, that file is the difference between a ten-minute fix and a two-hour bisect through 40 plugins.

Your Next Step: Fixed It, or Still Fighting It

You fixed it. Keep one habit and it stays fixed: re-run Coverage after every plugin or builder update, because new handles reappear quietly. Everything above is what it takes to reduce unused JavaScript WordPress sites ship by default, and it does work. It is also work you now own, every single month. On a managed stack it belongs to support instead, alongside NVMe SSD storage, a 99.99% uptime guarantee and engineers who read your console errors with you. Start on Hostaccent's Basic WordPress plan at $22.99/yr, renewing at $22.99/yr. Skip it if you run one hobby blog with four plugins, because you honestly will not feel the difference.

Still stuck. Open a ticket and our engineers will take it from here for a small one-time fee, with the exact quote sent to you before any work starts.

Frequently Asked Questions About Unused JavaScript

Can I reduce unused JavaScript WordPress warnings without a plugin?

Partly. You can dequeue scripts conditionally in a child theme, host third-party scripts locally, and drop the plugins responsible, none of which needs an optimisation plugin. What you cannot practically hand-code is interaction-based delay, since that means intercepting every enqueued script and maintaining it. Most owners get the bulk of the benefit from conditional dequeueing alone, then add one plugin for the delay layer rather than two overlapping ones.

Will delaying JavaScript break my contact forms?

It can, and forms are the most common casualty by a distance. Delayed scripts do not execute until the visitor interacts, so a form binding its validation at page load may submit nothing or throw a console error. Exclude your form plugin's script, jQuery and jquery-migrate before you enable delay. Then submit a real test entry and confirm it reaches both your inbox and the database, not just the thank-you page.

How much unused JavaScript is acceptable?

There is no pass mark, only a reporting threshold: Lighthouse lists any file carrying over 20 KiB of unused code. A realistic goal for a content site is under 100 KB of unused script per page, which most sites hit just by unloading plugin scripts on pages that do not use them. Stores and booking sites carry considerably more than that, and it is fine as long as your INP stays green.

Why does the warning come back after I update plugins?

New versions register new script handles, while your unload rules and exclusion patterns still match the old ones. A page builder update is the usual trigger. Re-run Chrome's Coverage tool after any major plugin, theme or builder release, confirm your per-page rules still name handles that exist, and repeat the three-path check before you call it done. Ten minutes after each update beats a month of silent breakage.

Does reducing unused JavaScript improve Core Web Vitals or just the score?

Both, though not equally. Cutting bytes helps LCP when scripts compete with your hero image for bandwidth, and it helps INP when it removes work from the main thread. The Lighthouse score is a lab estimate produced on a throttled test device, while Core Web Vitals come from real visits. If your score jumps and field INP does not move at all, you optimised the test rather than the experience.

Is unused JavaScript a hosting problem or a plugin problem?

Mostly a plugin problem. The bytes come from your themes and plugins, and no server can make unnecessary code necessary. Hosting decides how fast those bytes arrive and how quickly the HTML is generated, which surfaces in TTFB rather than in this diagnostic. Fix the scripts first. Then check whether server response time is stacking a second, separate delay on top of the first.

Professional help available

Checkout or store still affected? Bring in an eCommerce specialist.

Tell us which customer journey is failing and what changed. We can investigate the application, payment, database, and hosting layers without moving your store.

  • No hosting transfer required
  • Scope confirmed before paid work
  • No changes before your approval
Request store helpExplore eCommerce supportHosted elsewhere? One-time paid support is available after scope and price confirmation.
Reviewed by

Hostaccent Editorial Team

Reviewed for technical accuracy and clarity before publication.

Last updated

Sep 25, 2026

HostAccent Editorial Team publishes practical hosting guides, operations checklists, and SEO-focused tutorials for businesses building international web presence.

Discussion

Have a question or tip about this topic? Share it below — your comment will appear after review.

Your email stays private and is only used for moderation.

Write for the Community

Have a tutorial, tip, or insight to share? Get published on the Hostaccent Blog with your name, bio, and website link.

Become a Contributor

Need a faster setup for this workflow?