Methodology v1.2

Measure first. Explain second.

The scanner gathers observable website facts with deterministic checks. AI, when enabled, summarizes those findings but does not decide whether a technical check passed.

The complete scoring formula, published — every weight and what each finding costs →

Crawl scope

The free audit crawls up to 10 same-domain pages with a maximum configured crawl depth of 2. It also checks the root robots.txt and an advertised or default sitemap.xml.

Areas scored

The report scores SEO, technical health, performance, content, security and accessibility. Critical findings have the largest deduction, followed by high, medium and low severity findings. The overall score is weighted toward SEO, technical health and performance.

A seventh area, Local, is added when the site looks like a business with a location or a service area — judged from a street address, opening hours, a directions link or local structured data, not from one signal alone. It is worth 12% of the overall score, taken proportionally from the other areas rather than added on top, so a flawless site scores 100 either way. On every other site those checks are marked not applicable, with the reason, and are left out of the coverage count entirely.

Coverage: scores only count checks that ran

Every report lists each check with its outcome: passed, issue found, not tested or not applicable. A category score reflects only the checks that ran, and the report says how many that was. When Google PageSpeed is not available for an audit, Performance covers server response time only and the report says so. Security and accessibility are a basic automated sample: a good score there is not a security review or an accessibility conformance test.

Some findings are suggestions rather than problems (for example, a page without a canonical tag or without structured data). Suggestions do not lower the score.

Every report also states how many pages were checked and why the crawl stopped: every page found, the page limit reached, or the time limit reached.

Current checks

Checks include response errors, noindex directives, page titles, meta descriptions, heading structure, canonical declarations, mobile viewport, XML sitemap, robots directives, potential thin content, image alternative text, accessible form names, document language, HTTPS and HTTP-to-HTTPS redirects, mixed content, security headers, structured data, Open Graph metadata and basic response speed. For local businesses: a tappable phone number, consistent contact details across pages, a published address, opening hours, a map or directions link, LocalBusiness structured data, the town in the homepage title, and a warning when many pages differ only by a place name. When configured, Google PageSpeed Insights adds mobile Lighthouse measurements.

AI recommendations

If an OpenAI API key is enabled, only structured audit facts are sent to generate a short executive summary. The underlying pass/fail checks and scores remain deterministic. Without an AI key, the same report uses a local rule-based summary.

About the SEOPert crawler

Audits are fetched by a crawler that identifies itself with the user agent SEOPertBot/1.0 and a link to this page. It only runs when a person submits a website, requests at most 10 pages plus robots.txt and the sitemap, fetches pages one at a time, and never submits forms or logs in. Links to files such as PDFs and images are skipped.

The one exception is our own research. For published studies of small-business websites, the same crawler reads only the homepage, robots.txt and sitemap of each public site in the sample, obeys robots.txt, waits at least two seconds between requests and visits each site once. Results are only ever published as totals: no business is named.

Website owners who do not want to be audited can block SEOPertBot at their firewall or in robots.txt. Because each audit is a one-off request made on behalf of a person rather than a search index, contact hello@seopert.com if you would like your domain excluded entirely.

Limits

This scanner reads websites only: it cannot see your Google Business Profile, which lives on Google’s servers, so it cannot tell you whether that profile is verified, suspended or out of date. It does not replace Search Console, a full accessibility evaluation, penetration testing, legal review, analytics, a backlink database or a complete enterprise crawler. JavaScript-rendered content may not be visible to this PHP crawler. Scores should be treated as prioritization aids, not guarantees.