Methodology: This check follows wSEO methodology 1.0. How the assessment works

Verify both speed and behavior

How to audit deferred JavaScript

Source HTML reveals attributes, Network shows loading, Performance shows execution, and functional tests reveal lost user actions. One green audit is not sufficient evidence.

Auditing JavaScript through source HTML, Network, Performance and a user journey
A good result avoids parser blockage without breaking dependent features.

Quick check

  1. View page source and find external script src tags inside head.
  2. Mark classic tags without defer, async or type="module"; these are candidates, not automatic failures.
  3. Open DevTools → Network, enable Disable cache, filter JS and reload.
  4. Record reload in Performance and inspect long Script/Evaluate Script tasks before rendering and around interaction.
  5. On a throttled network, test menus, forms, search, cart, checkout, chat and agreed analytics events.

Good result: critical content appears without waiting for non-critical JS, dependencies produce no errors, and every important action works on the first attempt.

Issue levels

How to classify the result
ObservationLevelAction
No non-critical parser blockers and journeys workNo issueSave waterfall and test list
A small first-party tag blocks head with no clear delayLowVerify dependency and likely benefit
Large or third-party JS delays contentHighChoose defer, async or late loading
Deferral breaks a form, order, menu or measurementCriticalRoll back and repair order before release

Technical tag inspection

[...document.scripts].map(s => ({ src: s.src || 'inline', async: s.async, defer: s.defer, type: s.type || 'classic' }))

This describes the rendered DOM. It does not prove a tag was parser-blocking or show execution cost; use source HTML, Network and Performance for that.

Discrepancies and scope

  • Lighthouse may not label a script render-blocking even when execution occupies the main thread.
  • async downloads without blocking but can interrupt HTML parsing when it executes.
  • Tag managers, consent, A/B tests and caches can change requests between runs.
  • Extensions and authenticated state distort results; use a clean profile.
  • One URL does not prove every template and action.

Automated pricing applies to the agreed templates on the service page. Use the step-by-step guide for repairs.