Browse recent website audits and performance trends
Explore technology stacks detected across the web
Side-by-side technology comparisons and market share
Curated technology stacks and the sites that use them
Editorial deep-dives on the state of web performance
Browse and download favicons from analyzed websites
Common questions about BeaverCheck scores and checks
How we calculate scores across 100+ checks
The story behind BeaverCheck and the team
Practical guides to fix common web performance issues
Step-by-step guides for moving between web technologies
Definitions for performance, SEO, and web platform terms
Check WCAG color contrast ratios between any two colors
Inspect HTTP response headers for any URL
Analyze SSL/TLS certificate details and chain
Look up DNS records for any domain
Trace the full redirect chain for any URL
Real-user INP and Core Web Vitals from Google's Chrome UX Report.
RESTful API for programmatic website audits
Embed an auto-updating health score badge on your site
Performance-focused optimization plan with CWV assessment, top offenders, and time estimates
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
2.82 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
6.42 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
1.46 s
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.305
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
3.13 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
10.39 s
Main Thread Breakdown
~160.6 KiB of savings available
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
JavaScript bundle is large — code-split routes and lazy-load off-screen components to defer.
Source: web.dev
Subset fonts to include only used characters, or switch to system font stacks.
Font payload is large — subset to used glyphs only, or fall back to system fonts (zero load time).
Source: web.dev font loading
Remove unused CSS rules with tools like PurgeCSS to reduce stylesheet size.
CSS bundle is large — purge unused styles (PurgeCSS, Tailwind JIT) to reduce CSS payload.
Each request adds latency. Bundle small files, use sprites, or eliminate unnecessary requests.
High HTTP request count — bundling, sprite-ing, and HTTP/2 server push can reduce per-request overhead.
Set explicit width and height to prevent CLS.
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Downloaded but never executed on this page.
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
No green hosting detected
s-maxage=3600, stale-while-revalidate=31535100, stale-if-error=31535100
Web fonts
4
396 KB total
Render-blocking
0
of 4
Dominant font-display
swap
Most common across fonts
Fixing the unchecked items could save ~127 KB and ~254 ms
Current Resource Hints
8 resource hints configured
Unattributable takes 485ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Google Tag Manager takes 322ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
How third-party costs are calculated
Send Feedback