What we check
In the HTML: the scan collects every <script src> in the delivered HTML and keeps those whose host sits on a different domain than the page; subdomains of your own domain count as your own, protocol-relative URLs count as well. Up to 10 foreign scripts means "ok", up to 20 "to review", above that critical. None at all means a note, because that can also mean everything is inline or loaded dynamically.
On top, the scan checks five embeds that are privacy-relevant regardless of the count: Google Fonts from fonts.googleapis.com, embedded Google Maps, YouTube embeds without the nocookie domain, Adobe Fonts from use.typekit.net and the Vimeo player. If it finds one, the line reads at least "to review" and names it. It never becomes critical because of that; the legal assessment belongs in consulting, not in an automated verdict.
What the scan cannot see: scripts a tag manager or another script loads later, inline code, and anything that only comes after interaction.
Why it matters
Every script from a foreign domain is a request that sends the visitor's IP address to a third party before anyone consents. With a pixel that is the familiar case; with a font, a map or a video it is the same process, just without anyone thinking of it as tracking. And the number itself tells the state of the template. Twenty foreign scripts directly in the HTML mean twenty places where someone built something in past the tag manager, without a consent trigger and without an owner. Cleaning up starts with counting.
Common causes
- Tools were added over years and never removed, chat widgets, heatmaps, and A/B tests from finished projects keep running.
- Every marketing platform got its own script instead of running through the tag manager.
- Embeds (video, maps, social) pull in whole script families nobody planned for.
- Agency changes: the new tags arrived, the old ones stayed in.