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
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.