The first block of checks in any crawler answers one question: can this page be fetched, and is it allowed to be indexed. That splits into several signals that frequently contradict each other.
noindex. Blocking a page you want removed is the classic own goal.X-Robots-Tag header. Tools flag the header version specifically because it is invisible in the page source and gets set accidentally at the CDN or framework level.Every tool reports title length, meta description length, H1 count and duplicate content. The useful part is the prioritisation, which the tools rarely get right. Title tags matter, and the practical limit is pixel width rather than character count, which is why the same 60-character title truncates in one case and not another; most crawlers now measure pixels. Meta descriptions are not a ranking input, they influence click-through, and search engines rewrite them a large share of the time anyway, so a missing description on a page nobody clicks is a low-priority ticket presented as a warning.
Duplicate titles across a site are a genuinely useful finding because they usually reveal a templating bug or a faceted-navigation URL explosion rather than a copywriting problem. Multiple H1s are not a ranking penalty under the HTML5 outline, but a page with zero headings or with the heading rendered only by JavaScript often signals a bigger problem.
Crawl depth is the check worth acting on. A tool reports how many clicks from the homepage each URL sits at, and pages buried five or six levels down get crawled rarely and rank poorly. Orphan pages, which exist in the sitemap or analytics but have no internal links at all, are the extreme case and are almost always an accident.
hreflang validation is fiddly enough that manual checking is not viable. The rules a crawler enforces: return tags must be reciprocal, so if the English page points at the German one, the German one must point back; language and region codes must be valid ISO values, with en-GB not en-UK; each cluster should include a self-referencing tag; and every target must be indexable and canonical to itself. One broken reciprocal link silently disables the cluster.
Structured data checks parse your JSON-LD and validate it against schema.org and, separately, against the stricter requirements for rich results. Those are different bars: valid schema that omits a required property will pass a syntax check and still never produce a rich result.
Core Web Vitals appear in two different forms and people conflate them constantly. Lighthouse and the lab section of PageSpeed Insights run a simulated load on throttled conditions from wherever the test runs, and give you a repeatable diagnostic. The Chrome User Experience Report is field data collected from real Chrome users over a rolling 28-day window, reported at the 75th percentile.
Field data is the one that is used for assessment, and the current thresholds are Largest Contentful Paint at 2.5 seconds or less, Interaction to Next Paint at 200 milliseconds or less, and Cumulative Layout Shift at 0.1 or less. INP replaced First Input Delay, which matters because FID measured only the delay before the first interaction started and almost every site passed it; INP measures the full latency of interactions across the visit and is much harder to pass. Low-traffic pages have no CrUX data at all and fall back to origin-level numbers, which is why a small site can show a green origin score and a slow page.
Screaming Frog is the desktop crawler most audits run on. It is free for up to 500 URLs per crawl, which genuinely covers a small site, and the paid licence is billed annually per user and removes the limit while unlocking JavaScript rendering, scheduling, custom extraction and API connections to Search Console and analytics. It runs on your machine, so crawl speed depends on your RAM and you can hammer your own staging server.
Sitebulb crawls similarly but puts more effort into explaining why each issue matters and into visualising site architecture, which makes it the better tool for a report someone else has to read. The site audit modules inside Ahrefs and Semrush are cloud-based, run on a schedule, and are bundled into subscriptions you are probably buying for the backlink and keyword data rather than the crawler.
Google Search Console is free, and it is the only place your actual query, impression and click data exists. No third-party tool has it; they model it. The URL Inspection tool showing how Google actually rendered a page settles arguments that a crawler cannot. Bing Webmaster Tools is the same idea for Bing and gets ignored despite being free and including its own site scan. For a fuller comparison of the paid options, see the SEO analyzer buyer's guide.
Every one of these tools produces a number out of 100, and none of them is a ranking prediction. A site health score is an internal formula, weighting that vendor's issue categories by that vendor's severity assumptions. Two tools will score the same site 62 and 91, and neither is wrong, because they are measuring different things. A Lighthouse performance score is a weighted composite of lab metrics from one simulated run on one machine, and it moves several points between consecutive runs on identical code.
Use the score for one purpose only: as a trend line on the same tool with the same configuration over time. Report the underlying counts instead. "41 pages are noindexed that should not be" is actionable and verifiable. "Your health score is 68" is not, and chasing a score to 100 reliably leads to fixing 300 meta description warnings while the redirect chain on the money pages stays broken.