HomeAPI StatusFree ToolsSEO Help Articles

Page Objects Test

The Page Objects Test counts every HTTP request the page makes during load, broken down by asset type (HTML, CSS, JS, image, font, XHR, third-party) and total bytes per category. High request counts and oversized payloads slow page load even on fast networks; the report shows you exactly which assets to consolidate, defer, lazy-load or remove.

What This Tool Checks

  • Total request count and total bytes
  • Requests per asset type (CSS, JS, image, font, XHR)
  • Third-party domain count
  • Largest individual assets
  • Failed (4xx / 5xx) requests
  • Cached vs non-cached request ratio

Why It Matters for SEO

Every additional request adds latency. Every additional third-party domain adds a DNS resolution plus TLS handshake (can be 100-300 ms each). Bloated pages with hundreds of small assets are slow even on HTTP/2 because of CPU cost, parsing time, and main-thread blocking. The fix is consolidation — bundle CSS / JS, sprite or inline small images, lazy-load below-the-fold assets, and audit third parties.

How to Fix It

Bundle CSS and JS so the browser fetches a few large files instead of dozens of small ones. Self-host stable third parties (fonts, GTM, fonts) where possible. Lazy-load images below the fold. Audit third-party scripts and remove anything not driving measurable value. Aim for under 100 total requests on most templates.

How It Works

Headless Chrome captures the full network waterfall during page load, classifies each request by MIME type and origin, and aggregates totals. Third-party domains are counted separately because each adds a DNS lookup and TLS handshake.

Common Mistakes to Avoid

  • 50+ small JavaScript files instead of a few bundles
  • 20+ third-party domains for analytics, ads and chat widgets
  • Loading the entire icon font when only 5 icons are used
  • Multiple A/B testing SDKs from different vendors
  • Forgetting that each third party blocks the user even if it loads async

Quick Checklist

  • Total requests under 100
  • Fewer than 10 third-party domains
  • CSS bundled into 1-2 files
  • JS code-split per route, not per component
  • Below-the-fold images lazy-loaded

Frequently Asked Questions