Home›Features›JavaScript rendering

Crawl · Feature 08

JavaScript rendering

SiteAuditLint crawls raw HTML by default, which is fast and matches what crawlers see first. Turn on Render JavaScript to audit client-side rendered content and see which tracking tags really fire.

08 Crawl4 min Read timeAll editions Edition
Download SiteAuditLint

08 / Crawl

SiteAuditLint crawls raw HTML by default, which is fast and matches what crawlers see first. Turn on Render JavaScript to audit client-side rendered content and see which tracking tags really fire.

Search engines read the raw HTML first and render JavaScript later. Comparing the two is how you find content and links that only exist after rendering. SiteAuditLint keeps rendering optional: the option stays hidden until the Playwright component is installed.

1. Setting it up

pip install playwright
playwright install chromium

After installing, restart SiteAuditLint and switch on Render JavaScript in Settings > Crawl.

2. What rendering adds

Without renderingWith rendering
Links and content in the HTML sourceLinks and content added by JavaScript
Tags found in page code and GTM containersTracking requests each page really sends while loading and scrolling
No dataLayer contentsThe dataLayer and its events
No cookiesCookies set during the page load
Consent tool detected in codePixels and cookies that fire before the visitor accepts anything

3. Fired tracking hits

With rendering on, the Tracking & Pixels audit records real hits for GA4, Meta, TikTok, Google Ads, LinkedIn, Pinterest, Microsoft Ads and Clarity. This is how double page views and tracking before consent are detected.

CriticalPage view sent twice on one page load

The browser sent the same page view event twice while loading this page, so traffic is double counted in reports.

How to fix: Find the second source (hard-coded gtag plus GTM, or two GA4 config tags) with GTM Preview and remove one.

CriticalTracking before consent

The page has a consent banner, but a first-time visitor who has not accepted anything is already tracked: pixels fire or tracking cookies are set. That is what consent rules (GDPR, UK GDPR, ePrivacy) are meant to prevent. GA4 pings sent with Consent Mode denied are not counted here.

How to fix: Load these tags only after consent: use the consent tool's GTM integration or Consent Mode, set tags to require ad_storage / analytics_storage, and remove hard-coded pixels.

Slower by design

Rendering loads each page in a real browser, so audits take longer. Start with a smaller page limit on large JavaScript sites.

Frequently asked questions

Do I need JavaScript rendering?

Only if important content, links or tags are added by JavaScript after the page loads, as on many React, Vue and Angular sites. Most server-rendered sites audit fully without it.

How do I enable it?

Install the optional Playwright component with pip install playwright and playwright install chromium. The Render JavaScript option then appears in Settings > Crawl.

Does rendering click buttons or submit forms?

No. Pages are loaded and scrolled, but nothing is clicked or submitted, so sign-ups and purchases are never triggered on a live site.

Want the background first? Browse the SiteAuditLint Academy, or see all features.