← SOFTWARE & PROJECTS
● ONLINE
TOOL

Skanno

Automatic website audit: enter a URL and get a scored report across 31 categories and 315 tests, from SEO to security.

STATUSOnline
PUBLISHEDJuly 13, 2026
STACKPHP · Chrome Extension · AI

Skanno grew out of a flaw I learned to use as a method: an obsession with control. Before I would call a website «finished» I wanted to put it through an X-ray — SEO, speed, security, cookies, accessibility — but every check lived in a different tool: one for SEO, another for performance, a separate validator, a console for HTTP headers, yet another service for GDPR. I would open ten tabs, paste the same URL ten times, and end up not with a verdict but with ten fragments of a verdict that never talked to each other.

Hence the fixed idea: a single place where you paste a URL once and get all the checks you need, with a clear, comparable score. Not one more vertical tool, but the place where every check happens together.

315 tests, 31 categories, one score

Today Skanno runs 315 tests across 31 categories — from on-page SEO to security, from cookies and GDPR to accessibility, from structured data to energy sustainability, all the way to EU AI Act compliance. The result is a report graded from A+ to F, with a breakdown category by category: so you don't just learn «how good you are», but exactly where you're losing points.

Two scans, because one is not enough

This is the technically most interesting part, and the reason Skanno exists the way you know it. A website can be looked at from the outside or from the inside, and the two see different realities.

The server scan (147 tests) starts from PHP and curl: it downloads the HTML exactly as served, reads the HTTP headers, the SSL certificate, the DNS records, and queries external APIs such as Google PageSpeed, Google Safe Browsing, the W3C validator and The Green Web Foundation. It is fast and objective, but it only sees the static HTML: it doesn't know what happens when the page is actually opened in a browser.

This is where the Chrome Extension comes in (171 check functions). Many of the real problems — cookies written after load, third-party scripts that fire only once the page is open, banners covering the content, performance as the user actually feels it, content injected via JavaScript — don't exist in the static HTML: they exist only in the rendered DOM. To see them you need a real browser. The extension (Manifest V3) injects a script into the already-loaded page and measures reality, not theory. And the convenience is exactly there: you install it once, and then whatever site you are visiting you scan it as it really is, cookies and localStorage included, without having to reconstruct anything server-side.

The two worlds meet: the extension data is mapped onto the same test identifiers used by the server and merged into a single report. One score, built on what the site is on the wire and on what it becomes in the browser.

How the score is built

Not all tests weigh the same, and not all categories count equally. Every category has a weight: performance 18, SEO 15, security 15 lead the ranking, then mobile and cookies (10 each), accessibility (8), and the rest below. Each category's score is the weighted average of its tests; the global score is the weighted average of the categories. So a lightning-fast site with no HTTPS can't buy a passing grade with speed alone.

Then there is a rule I deliberately made harsh: the critical cap. Some tests are flagged as «critical» — the things you cannot get wrong. If even one of them fails, the global score is cut to 49, meaning it cannot rise above a D, no matter how well everything else goes. It is Skanno's way of saying that some mistakes don't get compensated: there is no such thing as a site that is «excellent except for security».

The scale is: A+ from 90, A from 80, B+ from 75, B from 65, C from 50, D from 35, F below. And where it makes sense the score is graduated rather than pass/fail: the W3C validation check, for instance, doesn't zero you out on the first error — 0 errors is full marks, up to 5 is 80%, up to 20 is half, beyond that it drops to 20%. Because a markup error is not the same as missing an SSL certificate, and the score has to reflect that.

The Trust Score, deliberately kept separate

Alongside the technical score there is a second number: the Trust Score, the site's perceived reliability. I deliberately isolated it into its own category, calculated apart and shown separately. The reason is that they are two different questions: «is this site well built?» and «can I trust this site?» don't always have the same answer. A site can be technically impeccable and still inspire little trust, or the other way round. Merging the two numbers would have diluted each with the other; keeping them apart makes sure neither one hides the other.

AI Act: a leaderboard for an obligation almost nobody checks

The category I most enjoyed building is the one on the EU AI Act. The European regulation on artificial intelligence introduces concrete transparency obligations: if a site uses a chatbot, the user must know; AI-generated content must be labelled; deepfakes must be declared; you need provider information, human oversight, an opt-out mechanism. These are verifiable things — and almost no tool verifies them. Skanno checks for the chatbot disclosure, the labelling of AI content, the deepfake notice, the AI policy page, the human-oversight notice, the opt-out, the llms.txt file and how AI bots are handled in robots.txt. And from these checks comes a dedicated leaderboard that ranks the most compliant sites. It is a head start on a problem everyone will soon have.

What the numbers actually say

As I write, Skanno has run 172 scans across 62 distinct domains, with an average of 227 tests actually run per site (not all 315 apply to every page). The overall average is 72.7%: a B. And the distribution tells something I didn't expect to be so clear-cut: the vast majority of sites crowd into the B band, very few reach an A, and none — so far — has touched either A+ or F. Translated: almost every site is «decent but not great». The critical cap and the sheer breadth of the checks make an A genuinely hard to earn, and that is exactly what I wanted: a B shouldn't feel like a failure, but an A has to be worth something.

Under the hood

Skanno is PHP 8 with no framework, vanilla JavaScript, MySQL, Google OAuth authentication and Stripe payments for the premium part — some of the more advanced tests are reserved for the paid plan, the bulk is free. No build step, no heavy dependencies: a single registry of tests from which everything else — scores, categories, reports — is derived. The same obsession with control it started from, applied to the way it is built too.