πŸ›

Browser Console Messages

Performance Auditor

Detects JavaScript errors and console messages

PerformanceJavaScript
50 credits
Per check
~30 seconds
Average runtime
Active
Status

Run this auditor

3 of 3 free audits left today

See what Browser Console Messages finds on your site. No sign-up needed.

How it works

  1. Load β€” launches a headless Chromium, opens the audited URL as 37AuditsBot and waits up to 60 s for the page's load event. The navigation that returns HTTP 403, HTTP 429 or a Cloudflare challenge ends the audit with 590; a navigation with no response or any other HTTP 4xx/5xx answer ends it with 500; a browser failure, after one relaunch on a crash, ends it with 501.

  2. Settle β€” waits up to 15 s more for the network to go idle, then 1.5 s for late assets. A page that keeps the network busy (polling, beacons, long-lived connections) is audited with what it logged by then and warns (301).

  3. Collect β€” every console message the page wrote while loading is recorded with its type, text and the script location the browser reports.

  4. Rules β€” each error message fails (400, one check per message) and each warn/warning message warns (300, one check per message). The check's resource is the script location when the browser reports one, otherwise the audited URL.

  5. Aggregate β€” FAIL wins over WARNING; when the page logged no error and no warning and went network-idle, the audit is SUCCESS (200) and the check data lists the info/debug messages it did log.

Preferences

KeyTypeDefaultDescription
evaluateExternalResourcesbooleantrueWhen false, resources served from a host other than the audited site or one of its subdomains (www. ignored) are ignored: console messages whose script location is on another host are not reported. Each one left out is listed as an INFORMATION check, 37A-BrowserConsoleMessagesAuditor-100. Set it per monitored URL on the Configuration tab.

An invalid value (anything but a boolean or "true"/"false") makes the auditor fall back to the default and log a warning.

What this auditor validates

Every row maps to one checkRule* method and one CheckCode, in the order the auditor runs them. CheckCode suffixes use status ranges: 200 success, 300–399 warning, 400–499 fail, 500–599 error.

CheckCodeStatusWhen it firesRecommendationWhy it matters
37A-BrowserConsoleMessagesAuditor-400FAILThe page logged an error message to the browser console. One check per message.Fix the script at {location} so it stops logging the error "{text}" while loading {url}.A console error usually means a script failed, so a feature of the page may be broken for visitors without anyone noticing, and search engines that render JavaScript may index an incomplete page.
37A-BrowserConsoleMessagesAuditor-300WARNINGThe page logged a warn/warning message to the browser console. One check per message.Review the script at {location} and resolve the warning "{text}" while loading {url}.Console warnings flag deprecated APIs, failed resources and insecure practices that browsers will soon stop tolerating, so what is only a warning today turns into a broken feature after the next browser update.
37A-BrowserConsoleMessagesAuditor-301WARNINGThe page did not go network-idle within 15 s after its load event, so the console was read before the page settled.Reduce the polling, beacons or long-lived requests that keep {url} busy after it loads, so the page goes network-idle within 15 s and every console message is captured.A page that keeps the network busy after it loads drains visitors' battery and data, and the audit has to read the console before the page settles, so errors that appear later go unreported.
37A-BrowserConsoleMessagesAuditor-200SUCCESSAll rules passed: the page logged no error and no warning. Message says No console messages were logged while loading {url}. or Only {n} info/debug console messages were logged while loading {url}; no errors or warnings.; the check data lists those messages.β€”β€”
37A-BrowserConsoleMessagesAuditor-500ERRORThe browser got no response for the audited page, or an HTTP 4xx/5xx answer other than a block.Make sure {url} answers with HTTP 2xx, then run the audit again. Last error: {error}.β€”
37A-BrowserConsoleMessagesAuditor-501ERRORThe headless browser failed to load the page (after one relaunch when it crashed).Make sure {url} loads in a headless Chromium browser, then run the audit again. Last error: {error}.β€”
37A-BrowserConsoleMessagesAuditor-590ERRORThe audited page answered HTTP 403, HTTP 429 or a Cloudflare challenge, so 37AuditsBot was blocked before it could read the page.Allow 37AuditsBot in your firewall or bot protection: allowlist its user agent, or verify its Web Bot Auth signature. See https://www.37audits.com/bot.While 37AuditsBot is blocked this audit cannot look at the site, so problems on it go unreported.
37A-BrowserConsoleMessagesAuditor-100INFORMATIONevaluateExternalResources is false: one check per script whose console messages were left out (one check per script URL, line and column dropped), served from a host other than the audited site or one of its subdomains. The check's resource is that URL; data carries host, siteHost and evaluateExternalResources: false. data.kind is script. Message: Not evaluated: the {kind} {resource} is served from {host}, outside {siteHost}, and Evaluate external resources is off. Never changes the result's status.Turn on Evaluate external resources for this monitored URL to assess third-party resources too.β€”

Output Documentation

StatusDescriptionTest logic
SUCCESSThe page logged no console error or warningNo error and no warn/warning message, and the page went network-idle within 15 s (200); info/debug messages are listed in the check data.
WARNINGSomething to review in the console, or the page never settledAt least one warn/warning message (300, one check each), or the page did not go network-idle within 15 s (301).
FAILA script logged an errorAt least one error message (400, one check each).
ERRORThe auditor could not load the pageNo response or HTTP 4xx/5xx (500); browser failure after the relaunch (501); site blocked 37AuditsBot (590).

Risks and Considerations

Why console errors matter

  • A console error is usually an uncaught exception: the script that was running stopped, so whatever it was doing (a form validation, a menu, a checkout step, a tracking call) silently did not happen for that visitor.

  • Nobody watches the console in production, so these failures surface as lost leads or support tickets rather than as bug reports.

  • Search engines render JavaScript; a page whose scripts fail may be indexed without the content they were meant to render.

Warnings and the network-idle wait

  • Warnings are usually deprecation notices, failed optional resources or insecure practices. They cost nothing today but turn into errors when the browser removes the deprecated API.

  • The auditor waits 60 s for the load event and 15 s more for the network to go idle. A page that keeps polling, sending analytics beacons or holding long-lived connections never goes idle; the audit then reports what the page logged up to that point and warns with 301, because messages logged later are not captured.

Changes from the previous version

  • log, info and debug messages no longer produce one SUCCESS check each; they are listed in the data of the single 200 check.

  • A page that never goes network-idle is now a WARNING (301) instead of a note appended to the message, so a page that logs nothing but never settles is WARNING where it used to be SUCCESS.

  • A page that answers HTTP 4xx/5xx is now an ERROR (500) instead of being audited as if it had loaded.

  • A browser failure that survives the relaunch is now ERROR with code 501 instead of an uncoded check.

What this auditor does not check

  • Only the messages logged while the audited URL loads are read; messages logged after a click, a scroll or a later interaction are not.

  • The console is read through a headless Chromium on Linux; a message specific to another browser or to a mobile device is not seen.

  • The page is loaded once; a message that only appears intermittently (a flaky third-party script, an ad) may be missed or reported on one run and not the next.

  • The auditor does not judge whether a message comes from your own code or from a third-party script; both are reported with the location the browser gives.

This documentation is built and hosted on Mintlify, a developer documentation platform.

Source: docs.37audits.com

Ready to start auditing?

Add this auditor to your monitoring setup and start identifying issues on your websites today.

Β© 2026 37 Audits. All rights reserved. Audit your websites with confidence.

Supported by

Made with ❀️ in Floripa