Render-Blocking Resources Checker
Short answer
Find the scripts and stylesheets that block rendering, plus script habits that slow pages down: missing async/defer, inline event handlers and document.write.
What it does not do: It reads the HTML and flags patterns; it does not load the page or time how long each resource blocks rendering. The page speed test gives measured timings.
What It Does
Checks a page's HTML in two parts. Render-blocking resources: scripts in `<head>` without `async` or `defer`, stylesheets that block rendering and CSS `@import` rules. Script hygiene: how many external and inline scripts the page loads, whether external scripts use `async` or `defer`, inline event handlers such as `onclick`, `document.write` calls and whether ES modules are used.
Why It Matters
A browser has to download and run every blocking script and stylesheet in `<head>` before it can paint anything, which delays First Contentful Paint and often Largest Contentful Paint. `document.write` makes this worse — Chrome may refuse to run scripts it injects on slow connections — and inline handlers stand in the way of a strict Content-Security-Policy.
How It Works
-
Enter a page URL or paste its HTML
-
We parse the `<head>` and every `<script>` on the page
-
Flag render-blocking scripts and stylesheets, then check the scripts for async/defer, inline handlers and document.write
-
Return a result for each part, with the resources we flagged
Sample input + output
url: https://rankproof.eu/tools
Render-blocking resources: 2 <script src="analytics.js"> blocking <link rel="stylesheet" href="theme.css"> blocking no @import in CSS OK Script hygiene scripts: 7 (5 external, 2 inline) external scripts use async or defer warn no inline event handlers OK no document.write OK uses ES modules OK 0 of 2 areas look good
Who Uses This
-
Performance Engineer
Before a busy season, move every blocking script to async or defer and re-check that nothing new crept into `<head>`.
-
Frontend Developer
Find the analytics or widget snippet that still loads synchronously and switch it to a deferred load.
-
SEO Specialist
Check the templates behind your slowest pages and hand the flagged resources to the development team.
Frequently Asked Questions
- How do I un-block a stylesheet?
- For non-critical CSS, add `media="print"` and `onload="this.media='all'"`. For critical CSS, inline it in `<style>` tags.
- Can I just defer all my scripts?
- Not always — scripts that must run before first paint, polyfills required for layout and inline scripts cannot always wait. Audit them by impact.
- What is wrong with document.write?
- It forces the browser to pause parsing, and Chrome may block the scripts it injects on slow connections. Insert elements with DOM methods instead.
- Why flag inline event handlers?
- Handlers such as `onclick="…"` mix behavior into markup and need `unsafe-inline` in a Content-Security-Policy. Attach listeners from a script file instead.
- What about third-party widgets?
- Load them with `<script async>` or through a tag manager with deferred loading. Better still, load widgets below the fold only on scroll or interaction.