Contents
Why traditional auditors stopped being enough
Screaming Frog launched in 2010 as a pure crawler. It fetched HTML, followed links, flagged broken ones. For fifteen years the state of the art in technical SEO was exactly that: download HTML, count errors. In 2026 that approach misses 60% of the real problems affecting ranking.
The reason is simple: Google stopped using your server HTML as its primary source. Since the full switch to mobile-first indexing in 2020 and the adoption of a Chromium 128+ renderer (updated September 2025), Google runs your JavaScript, measures actual LCP and CLS, validates every schema, and decides which part of your content counts as visible. A crawler that stops at HTML is like reading a movie script without watching the acting.
The Semalt Site Audit engine was built to close that gap. Every URL is crawled, then rendered in a real headless Chromium, then measured with field data (CrUX plus proprietary RUM), then diffed against Google's indexed version, then joined with the site's semantic structure to spot cannibalisation, content gaps and broken schema.
How the Semalt engine is built
Under the hood Semalt runs four layers in sequence:
- Distributed crawler. Proprietary cluster in six regions (including a South America node) that honours robots.txt, sitemap.xml and crawl-delay. Configurable rate limit.
- Chromium renderer. Every URL is executed in Chromium with the official Semalt user-agent. Waterfall, final DOM, console errors, and mobile+desktop screenshots are captured. Hydration errors, late-rendering content and elements Google will never see all surface here.
- Field data blend. CrUX (Chrome User Experience Report, Google's official source) is combined with proprietary RUM via the Analytics tag. Core Web Vitals stop being synthetic lab numbers — they become the actual experience of real users.
- Semantic layer. An inverted index of every text on every URL detects internal duplicates, thin content and keyword cannibalisation — problems no pure crawler can catch.
The 7 check families (400+ controls)
1. Indexability and crawlability (68 checks)
Every URL is tagged as «indexable», «robots-blocked», «noindex», «canonicalised to another» or «orphan» (no internal links). Declared sitemap URLs are cross-referenced with URLs actually found by the crawler to spot the classic gap — in 71% of the sites we audit, more than 25% of the sitemap URLs return 404, redirect chain or noindex. Semalt flags it in red with the exact example.
2. Core Web Vitals with field data (32 checks)
LCP, INP (which replaced FID in March 2024), CLS — the three official Core Web Vitals metrics — are shown with real p75 data, not just synthetic Lighthouse. For every page template you see what percentage of real users had «Good», «Needs Improvement» or «Poor» experience. The renderer waterfall identifies the specific resource blocking LCP (usually a web font or a hero image without preload).
3. Rendering and JavaScript (54 checks)
Diffs server HTML against post-render DOM. If your main text appears only after hydration (React, Vue, Svelte), Semalt flags it as risk. Detects hydration errors, components that block fetch, and CSS that triggers CLS. Large SPAs have discovered here that Google sees only 40% of their content, even when the user sees everything.
4. Semantic structure and schema (89 checks)
Validates every JSON-LD and microdata against strict Schema.org 25.0. Catches common mistakes like misspelled @type, prices without priceCurrency, inconsistent breadcrumb URLs, or FAQPage with more than one main entity (a violation of Google's August 2023 policy). Verifies that the declared schema matches what Google's Rich Results Test accepts — something no other tool does in batch.
5. Content and cannibalisation (61 checks)
The semantic index catches where two URLs compete for the same keyword (cannibalisation) and where you have thin content (less than 300 useful words in a competitive topic). Classic example: a store with 20 «nike sneakers» category URLs with near-identical text — Semalt groups them and proposes consolidation or differentiation. No other tool does this at scale without an internal dev.
6. Authority, backlinks and profile (48 checks)
Cross-references your URLs against the Semalt backlink base (over 30 trillion links indexed in 2026). Detects toxic backlinks, recent losses (backlinks that vanished in the last 4 weeks), reclaim opportunities (unlinked mentions) and anchor-text imbalance.
7. Internationalisation and hreflang (48 checks)
For sites targeting multiple countries, validates cascading hreflang tags. Detects broken loops (page A points to B but B does not point back to A), invalid ISO codes (common mistake: es-LA does not exist; use es-419), and missing x-default. A silent hreflang bug can collapse ranking in an entire country, and that is exactly the kind of failure a CEO never knows they have until Semalt shows them.
How Semalt prioritises what to fix first
Finding 400 issues is easy; deciding which ones move the needle is the hard part. Semalt assigns each issue an Impact Score between 0 and 100 calculated from three factors:
- Reach (40% weight): how many URLs it affects and how much aggregate organic traffic those URLs get. Bad CLS on the home is worth more than on a forgotten blog post.
- Severity (35% weight): how much current Google rankers penalise the issue. An accidental noindex scores 100; a missing alt on a decorative image scores 5.
- Inverse effort (25% weight): how expensive the fix is. A duplicate H1 changes in 30 seconds; migrating from HTTP to HTTPS takes weeks.
The report delivers three views: Quick Wins (high impact, low effort), Strategic (high impact, high effort — for the quarterly roadmap), and Cleanup (low impact, accumulate for hygiene sprints). The dev team knows exactly what to do Monday morning and the CEO knows what to expect next month.
Case study: dental clinic in Santiago, 143 issues to 12 in six weeks
In June 2026 we audited a dental clinic with four branches in Santiago. The site had 340 URLs, a good domain with 8 years of history, but organic traffic had been stuck at 6,200 sessions/month for 14 months.
The Semalt report returned 143 classified issues. The 12 «critical» ones explained the stagnation by themselves:
- 4 branch URLs with canonical pointing to the home — WordPress template bug. Effect: Google was deindexing local pages.
- Dentist schema misnested (declared areaServed as string, not Place). Rich results were lost in August 2025.
- Mobile LCP p75 of 4.8s because of an autoplay hero video without poster.
- Broken hreflang pointing to a forgotten Peruvian version.
- Sitemap.xml not updated since 2023 — 41 new URLs were never actively discovered.
- (+7 minor technical issues)
The client's dev resolved the 12 in three 2-week sprints. Week 7 result (measured in Semalt Analytics): organic sessions from 6,200 to 11,400/month (+84%), branch rich results restored, and 3 head keywords jumped from page 3 to top 5.
Semalt Site Audit vs the classics
| Capability | Semalt | Screaming Frog | Sitebulb | Ahrefs | SEMrush |
|---|---|---|---|---|---|
| Real Chromium rendering | ✓ always | Optional (limited) | ✓ with limits | ✓ | ✓ |
| Field Core Web Vitals | ✓ | No | Partial (CrUX) | Partial | Partial |
| Semantic cannibalisation detection | ✓ | No | No | Partial | Partial |
| Strict schema v25 validation | ✓ | Syntax | Syntax | Syntax | Syntax |
| Server HTML vs rendered DOM diff | ✓ | No | No | No | No |
| Prioritised Impact Score | ✓ | No | ✓ | ✓ basic | ✓ basic |
| Auto-scheduled audits | ✓ daily | Manual | Weekly | Weekly | Weekly |
| URLs in standard plan | 500k | Unlimited (desktop) | 250k | 500k | 100k |
The right way to use the audit
Do not run it once a year. In Semalt you schedule daily audits (for large sites) or weekly (medium). Changes are detected the day after they happen — a dev who introduced an accidental noindex on Thursday's deploy sees it flagged as critical on Friday morning, not two months later when traffic already collapsed.
More in this series: Semalt Analytics: the SEO data GA4 hides, Semalt AutoSEO: optimisation that runs 24/7, Competitor analysis without leaving a trace.
Technical FAQs
Can I exclude sections (staging, /admin/)?
Yes. The engine respects custom rules at three levels: the site's own robots.txt, Semalt exclusion patterns (glob), and an optional allow-list for crawling only specific paths. It also skips URLs with session querystrings by default.
Does it run from Chile or Europe?
By default from the region closest to the server detected via reverse DNS. For Chilean sites, the crawler runs from AWS São Paulo or, if it detects Cloudflare Latam CDN, from Santiago. You can force any of the 6 regions if you need to verify response by geography.
Will it overload my server?
Default rate limit is 5 req/s with automatic backoff. For shared hosting, drop it to 1 rps. Semalt honours the Crawl-Delay header of robots.txt and reacts automatically to 429/503 responses.
How does it integrate with Jira or Linear?
Natively. Every critical or high issue can be exported as a ticket in one click. Bidirectional sync closes the ticket automatically once the next audit confirms the issue is resolved — no more pasting screenshots into a ticket to prove the fix.
Can I compare two periods?
Yes. The Compare view shows which issues appeared new, which were resolved and which returned (regressions). Perfect for reviewing the impact of a deploy or migration. In clients with weekly releases it is the view we open every Monday morning.
A traditional crawler gives you a list of errors. Semalt Site Audit gives you prioritised diagnosis with estimated impact. The difference between knowing you are sick and knowing which medicine to take first.
Practical next step
Run a first Semalt audit on your site this afternoon. A 5,000-URL domain takes between 40 minutes and 3 hours. Next day you have the prioritised report ready to hand to your dev.
Sign in to Semalt Site Audit →