v0.0.149
Released Oct 31, 2026
Release Notes
squirrel pages lists the pages of a stored audit as a table, writes a standalone HTML table and compares two audits. eeat/about-page and eeat/privacy-policy probe a configured path the crawl did not reach, technology detection finds an inline loader URL on every page whatever the byte caps, and integrity/brand-impersonation says when <template> elements were past its limit. Thanks to William for keeping the [[ignore]] timeout notice when the rules phase is cut (#1426).
Added
eeat/about-pageandeeat/privacy-policyprobe a configured path the crawl did not reach. Apathsentry that names one page (/agentur,/policies/privacy-policy) and that no crawled page links to is requested once after the crawl, so a page that exists but is not linked, common for Shopify/pages/*and/policies/*, is no longer reported missing. A path that answers 404 still reports the page missing and the message names the probed path. The request honours robots.txt and the per-host limits, runs with the other discovery probes (disable_discovery_probesturns it off), is never counted as a crawled page and costs no credits. (#1428)squirrel pageslists the pages of a stored audit as a table. One row per crawled page: URL, final URL, status, depth, canonical, noindex, title and description with their lengths, H1 text and count, heading count, word count, schema types and JSON-LD@ids, in-links, internal and external out-links with the external hosts, load time, last modified, and aflagscolumn taken from the audit's own rule results so the table and the issue list agree.-f json|csv|markdown, and filters that combine:--missing title|description|h1|schema,--duplicate title|description,--too-long,--orphan,--section /blog,--page <text>. Everything is read from what the crawl stored, so it makes no request and costs no credits. (#701)squirrel pageshas an HTML table and compares two audits.-f htmlwrites one standalone page, sortable by any column and filterable by text and by flag, with no network requests.--diffcompares the latest audit with the previous one of the same site (or two named with--crawl) and lists the pages added, removed and changed, with each changed field's before and after, as markdown, JSON or CSV, so a title rewrite or a fixed 404 can be checked. (#701)
Changed
integrity/brand-impersonationsays when<template>elements were past its limit. The info note for a scan cut by the template limit now names templates (details.templatesUnread, "N <template> elements were past the template limit and not read") instead of counting them as sign-in controls (details.controlsUnread). (#784)
Fixed
- Technology detection finds an inline loader URL on every page, whatever the byte caps. A
script-urlsignature read the page HTML only when the page had no script bodies attached, so Microsoft Clarity's standard inline snippet (which builds thewww.clarity.ms/tag/URL inside a<script>) was found on pages that ran out of the byte budget and missed on pages that had bodies: a re-run of a stored corpus lost 24 Clarity sites under the local scan's whole-bundle reading. Signatures now always read the page's markup (script, link, image and frame tags, and the text of JavaScript scripts up to 16 KB) in addition to the listed script URLs; text between tags, links, meta text, JSON data blocks and large inline bundles are not read, so a vendor named in a paragraph or linked is not detected as its script. The Contentful script-URL signature now needs a URL or package form (cdn.contentful.com,contentful.js,contentful@) rather than the word. (#1430)
Update to this version
squirrelscan will auto-update, or run this command to update now:
$