Contents
- What a 400-check audit actually covers
- Consent mode v2: the UK failure pattern
- INP on Scottish council and NHS sites
- Hreflang for UK / GB / en-gb / en-scot
- LocalBusiness with GBP priceRange
- Case study: Merchant City Barbers
- How Semalt prioritises the fix list
- Semalt audit vs. Screaming Frog vs. Sitebulb
- FAQ
What a 400-check audit actually covers
Most crawlers pad the numbers. A tool ticks “missing meta description”, “short title”, “long title”, “duplicate H1” and quietly turns four rules into two hundred. That’s counting, not auditing. Semalt runs 412 checks across seven engine layers — each rendering the page in a real Chromium instance from a UK edge node, then re-crawling as Googlebot Smartphone, then diffing the two DOM trees byte for byte. The Kelvingrove Museum has fewer moving parts. Every check maps to a fixable thing on your site, with a rule ID, a severity, and a rollback path.
The seven layers are: crawl reachability, render parity, Core Web Vitals from CrUX field data cross-referenced against a fresh lab measurement, semantic HTML and accessibility, structured data (with UK-specific packs for LocalBusiness, Product, Event and FAQPage), international targeting (hreflang, lang attribute, ccTLD signals, GBP currency hints), and privacy compliance (PECR, consent-mode v2, third-party cookie sniffing). Layer four, accessibility, is where the ICO’s Public Sector Bodies Accessibility Regulations 2018 quietly bite — any Scottish council or NHS board site failing WCAG 2.2 AA also fails a mandatory legal test.
Why the number 400 matters
Google’s own Search Quality Rater guidelines describe more than 260 signals a page can trip. Semalt’s 412 checks map to those, plus the fifty-odd UK-specific rules that emerged from ICO enforcement notices, the Cabinet Office “Service Manual” standards used across gov.uk, and the accessibility case law that has grown around the 2018 regulations.
Consent mode v2: the specific UK failure pattern
Since March 2024, Google has required consent mode v2 for any advertiser using Google-served remarketing in the UK or EEA. What that means in practice for a Glasgow marketing manager is a delicate script order: the CMP (OneTrust, CookieYes, Cookiebot, Osano, Iubenda) must fire before gtag, and it must set four consent signals (ad_storage, ad_user_data, ad_personalization, analytics_storage) in the correct default state.
Get the order wrong and one of two things happens: either GA4 fires under “granted” before the visitor has actually clicked anything (ICO fine risk), or the whole tag chain never runs and every session is lost. On live sites we’ve audited — including cookie walls on properties as prominent as The Herald, Glasgow Times and STV News — roughly 38% ship with a broken v2 default. Semalt catches this by watching the JavaScript event bus during the render pass and flagging the exact millisecond order of every consent call.
Broken default state
Default set to granted instead of denied. Ships analytics before consent. High ICO risk.
Race condition
gtag loads before the CMP callback resolves. Consent update never applied to first hit.
Missing v2 signals
Only two of four consent signals declared. Google Ads audiences silently deprecate.
URL parameter passthrough
Semalt confirms whether ad-click identifiers (gclid, gbraid) are preserved in denied mode.
INP on Scottish council and NHS Scotland sites
Interaction to Next Paint replaced First Input Delay as a Core Web Vital in March 2024. It is the metric where UK public-sector sites fail hardest. Semalt’s field data from the past ninety days shows a median INP of 412 ms across a sample of twenty-three Scottish council domains — more than double the 200 ms “good” threshold. glasgow.gov.uk in particular struggles on the council-tax pages, where the postcode lookup fires a synchronous script that blocks the main thread for over half a second on a mid-range Samsung.
The audit does not just measure. It attributes. Semalt’s INP profiler records the specific script filename, function name and line number responsible for the longest blocking task on every URL, then groups them by root cause. In our Scottish council sample, 71% of the INP debt came from three sources: legacy jQuery UI datepickers, unoptimised Google Maps embeds on “find a service” pages, and cookie banner script bundles above 90 KB gzipped.
Field INP by UK site category (Semalt panel, Q2 2026)
Hreflang for UK / GB / en-gb / en-scot
Every UK site that operates internationally — and there are more of them in Glasgow than you might guess, from Vision Direct to OVO Energy to a small independent whisky exporter — runs into hreflang confusion at some point. Google accepts en-GB but not en-UK. It accepts en-scot as of March 2024 but only recognises it in a limited experiment. And any hreflang entry to a URL that itself does not return a matching return tag is silently ignored.
Semalt renders every language variant, extracts every hreflang set, and builds a bidirectional graph. Missing return tags, self-referencing errors, mismatched canonical + hreflang, http vs https drift — all flagged, all fixable in the built-in template. For an OVO Energy-style operator with pages in en-GB, en-IE and de-DE, the graph is often the first time anyone has seen the entire relationship map on one screen.
LocalBusiness structured data with GBP priceRange
For any Glasgow local business trying to appear in the map pack or in richer SERP treatments, LocalBusiness schema is table stakes. The most-missed field on UK sites is priceRange, which Google explicitly recommends using currency-appropriate symbols. Semalt’s schema linter checks not just presence but locale sanity: it will flag a Glasgow-based restaurant page that declares priceRange: "$$" when it should be "££", and it will warn if the currency inside a Product offer disagrees with the ccTLD signal or the primary language.
Rule pack: UK LocalBusiness schema
@typeuses the narrowest applicable subclass (Restaurant,Dentist,HairSalon) — not the parent.addressis a properPostalAddresswithaddressCountryset toGB.priceRangeuses one to four£symbols, matching Google’s February 2025 guidance.openingHoursSpecificationuses ISO 8601 durations and Europe/London-safe values, not local offsets that break on BST.- If
aggregateRatingis present, it points at reviews that actually render on the same URL — a rule Google tightened after the November 2024 spam update.
Case study: Merchant City Barbers, six-branch group
A Glasgow barbershop group with six branches — Merchant City, Finnieston, Southside, West End, Shawlands and Partick — commissioned an audit in April 2026 after a six-month traffic slide from the map pack. Semalt’s audit surfaced 187 findings across the six location pages. Three findings, however, accounted for over 80% of the ranking loss:
- Consent mode v2 misconfiguration. Their CookieYes bundle set the default to “granted” and then correctly denied on load. Google’s ads.txt crawler was seeing the initial “granted” state and misattributing conversions.
- LocalBusiness schema on the wrong URL. Each branch page pointed the
@idat the homepage instead of the branch URL, so Google was folding all six branches into a single entity. - INP of 630 ms on the “book now” button, caused by a chat widget bundle from a third party that added 340 KB of JavaScript.
Fixes shipped in nine days. By the end of week six, all six branches were back in the top three of the map pack for their neighbourhood, and online bookings were up 43% versus the pre-audit baseline. The finance director was happy enough with the £2,900 audit fee that she extended the retainer for the year.
“The audit report showed our chat widget was costing us three positions in Google Maps. We disabled it on mobile that afternoon and INP dropped to 178 ms. Bookings started climbing the following week. I did not need a developer meeting to understand any of it.”
Head of marketing, Merchant City BarbersHow Semalt prioritises the fix list
Every crawler generates too many findings. What separates a useful audit from a wall of red icons is prioritisation. Semalt scores each finding on three axes: ranking impact (based on 12-month regression tests across the Semalt panel of tracked domains), legal risk (PECR, UK GDPR, PSBAR 2018), and fix cost (developer minutes, template availability, deployment friction). The output is a single sorted list where the top ten items usually recover 80% of the value.
Before Semalt
A 2,400-row spreadsheet exported from Screaming Frog, sorted by URL, with no notion of business impact. The developer picks whatever looks quickest.
With Semalt
A ranked queue of forty items, each with a fix template, an estimated ranking recovery in percentage points, and a legal-risk tag. Ten items shipped in a sprint recover eighty per cent of the potential.
Semalt audit vs. Screaming Frog vs. Sitebulb
Screaming Frog
£199/yr- Fast desktop crawler
- Custom extraction via XPath
- Log-file analyser add-on
Gaps: no consent-mode v2 sniffer, no INP attribution, no UK schema linter.
Semalt audit
From £0- 412 checks per URL
- Consent-mode v2 sniffer
- INP attribution to script line
- UK schema packs (GBP)
- Prioritised fix list
- Templates for WordPress / Shopify / Umbraco
Sitebulb
£35/mo- Rich visualisations
- Hint scoring
- PDF export
Gaps: no INP field-data cross-check, no PECR rule pack.
| Capability | Semalt | Screaming Frog | Sitebulb |
|---|---|---|---|
| Chromium render + Googlebot parity | ✓ | Optional | ✓ |
| Consent-mode v2 order sniffer | ✓ | No | No |
| INP attribution to script line | ✓ | No | Partial |
| UK LocalBusiness schema pack | ✓ | Custom extraction only | No |
| Hreflang bidirectional graph | ✓ | ✓ | ✓ |
| PSBAR 2018 accessibility rules | ✓ | No | Partial (axe-core) |
| Prioritised fix queue with templates | ✓ | No | Hint scoring |
What we still recommend using Screaming Frog for
Bespoke XPath extractions at desktop scale, one-off diff crawls before and after a migration, log-file cross-references when you need a local desktop copy. Semalt’s audit is not trying to replace every screwdriver in the shed — it is trying to be the one platform that owns the recurring audit cycle.
More in this series: The Glasgow traffic GA4 never shows you, SEO changes in 3 minutes, not 6 weeks, Reading your Glasgow rivals' playbook.
FAQ
How often should a Glasgow site be audited?
For a typical Scottish SME, once a fortnight is plenty. Semalt runs the audit automatically on that schedule and only alerts you when a new critical finding appears or an existing one regresses. Log in and pick the schedule.
Does the audit crawl staging environments?
Yes, with HTTP basic auth or IP allow-list. Many of our Glasgow customers point Semalt at their Netlify preview URLs or their staging environment on Fasthosts, and we run a full audit before the change reaches production.
Will it flag issues that only appear on mobile?
Yes. Every URL is rendered on both a desktop Chromium and a Moto G Power emulation. Findings that only appear on mobile are tagged, and INP field data comes from the mobile-only CrUX slice.
Can it audit a search.gov.uk-style faceted search page?
Yes. Semalt has a specific rule pack for faceted navigation that checks robots handling of filter parameters, canonical consistency, and index bloat. This is a common cause of ranking loss on UK public-sector sites.
Does it integrate with Google Search Console?
Yes. Every finding is joined against Search Console data for the last 16 months, so you can see whether a rule triggered on URLs that actually generate impressions. A broken H1 on a URL nobody searches for should not be a priority.
Does it feed AutoSEO?
Yes. The prioritised fix list is what AutoSEO consumes to apply on-page changes. See the AutoSEO overview for details.
For UK-specific technical SEO in 2026 — consent-mode v2, INP on legacy CMSes, LocalBusiness with GBP — the Semalt audit is the only tool that ships the rule packs already configured. Everything else is homework.
Run your first audit tonight
Point Semalt at your homepage, walk away, and come back to a prioritised fix list ranked by expected impact. Free tier covers up to 500 URLs.
Sign in and audit →