Scoring methodology
Every number in our reports comes from documented checks with published weights. This page is generated from the live scoring configuration (version 1.0), so it always matches what the tool actually does.
Important: AEO, AIO, GEO, SXO and the other category scores are calculated by our audit methodology from measurable website signals. They are not official scores issued by Google, OpenAI, Anthropic, Microsoft, Perplexity or any other search or AI platform, and no audit can guarantee rankings or AI visibility.
1. Individual checks
Each check has a category, a name, a status, evidence, a recommendation and a severity. Statuses are scored like this:
| Status | Score | Meaning |
|---|---|---|
| Pass | 1.0 | The best practice is in place. |
| Warning | 0 to 1 (default 0.5) | Partly met. Where we can measure a share (for example 7 of 10 images with alt text) the score is that share. |
| Fail | 0.0 | Not met. |
| Not applicable / Info | Not scored | Does not apply to this page, or is informational only. |
| Manual review / Unavailable | Not scored | Cannot be measured reliably, or a data source failed. These reduce a score's coverage instead of being guessed. |
2. From checks to scores
Checks are grouped into weighted components. A component's score is the weighted average of its scored checks. A category score is the weighted average of its components that have data, multiplied by 100. Some checks feed several categories; for example, H1 presence counts toward SEO, AEO, AIO and Accessibility.
Coverage rule. If the components with data make up less than 50% of a category's applicable weight (60% for Performance), we show "Insufficient data" instead of a number. This is why Performance is unavailable when the PageSpeed Insights API is not configured.
Score bands. 90 to 100 Excellent; 75 to 89 Good; 50 to 74 Needs improvement; below 50 Critical.
3. Overall score
The overall score is the weighted average of the category scores that are available. Unavailable categories are left out and the remaining weights are rescaled.
| Category | Weight |
|---|---|
| SEO | 20% |
| Technical SEO | 12% |
| Content | 10% |
| AEO | 8% |
| AIO | 8% |
| SXO | 8% |
| Performance | 8% |
| GEO | 6% |
| Schema | 6% |
| Mobile | 5% |
| Accessibility | 5% |
| Security | 4% |
4. Category scores
SEO score
Blend of on-page, indexability, technical, content, linking and markup signals that affect how search engines read the page.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Title tag | 12% | Title tag present (3); Title length (1); Title quality (1); Duplicate titles (crawl sample) (1) |
| Meta description | 8% | Meta description present (2); Meta description length (1); Duplicate descriptions (crawl sample) (1) |
| Headings | 10% | H1 heading present (3); Single H1 (1); Heading hierarchy (1); Empty headings (1); Heading keyword repetition (1) |
| Indexability | 16% | HTTP status code (3); Robots meta tag (3); Allowed by robots.txt (3); Canonical target (2); X-Robots-Tag header (2) |
| Technical signals | 14% | HTTPS (2); robots.txt (1); XML sitemap (1); HTML lang attribute (1); Redirects (1); Canonical tag (1) |
| Content | 15% | Content depth (word count) (2); Readability (1); Repeated content (1); Server-rendered content (1) |
| Linking | 10% | Internal links (2); Broken internal links (2); Broken external links (1); Descriptive anchor text (1); Links without accessible text (1) |
| Images | 5% | Image alt attributes (2); Image filenames (1) |
| Structured data | 5% | Structured data present (2); JSON-LD syntax (1); Basic schema properties (1) |
| Social metadata | 5% | Open Graph tags (2); Twitter/X card (1) |
Technical SEO score
Crawlability, indexability, protocol, markup and URL hygiene.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Crawlability | 25% | HTTP status code (3); robots.txt (1); Allowed by robots.txt (3); XML sitemap (2); Sitemap referenced in robots.txt (1); Redirects (1) |
| Indexability | 25% | Robots meta tag (3); X-Robots-Tag header (2); Canonical tag (1); Canonical target (2); Indexable (3) |
| HTTPS & protocol | 15% | HTTPS (3); Mixed content (1); HTTP redirects to HTTPS (1) |
| Document markup | 15% | HTML5 doctype (1); Character encoding declared (1); HTML lang attribute (1); Server-rendered content (1); Favicon (1) |
| URL hygiene | 10% | URL structure (1); Trailing slash consistency (1); Links to redirecting URLs (1) |
| International (hreflang) | 5% | Hreflang annotations (2); Hreflang return links (1) |
| Broken links | 5% | Broken internal links (2); Broken external links (1) |
Content score
Measurable content properties. True quality, originality and accuracy need human review.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Content depth | 25% | Content depth (word count) (1) |
| Readability | 20% | Readability (1); Average sentence length (1) |
| Structure | 20% | Paragraph length (1); Scannability (1); Heading hierarchy (1) |
| Repetition | 10% | Repeated content (1) |
| Trust signals | 15% | Author information (1, YMYL 3); Date published (1); Date modified / updated (1, YMYL 2); Sources / references (1, YMYL 3); Reviewer information (YMYL only, YMYL 2); Credentials stated (YMYL only, YMYL 2) |
| Server-rendered text | 10% | Server-rendered content (1) |
AEO score
Answer Engine Optimization readiness: question targeting, direct answers, FAQ and definition patterns, scannable structure.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Question targeting | 15% | Question-based headings (1) |
| Direct answers | 20% | Direct answers to questions (1) |
| FAQ coverage | 10% | FAQ / Q&A content (2); FAQ structured data (1) |
| Definitions | 10% | Definition patterns (1) |
| Content clarity | 15% | Short paragraphs (1); Lists and tables (1); Descriptive subheadings (1) |
| Structured data | 10% | Structured data present (1); JSON-LD syntax (1); Basic schema properties (1) |
| Heading structure | 10% | H1 heading present (1); Heading hierarchy (1) |
| Conversational queries | 5% | Conversational query coverage (1) |
| Entity clarity | 5% | Main topic stated early (1) |
AIO score
AI search readiness: signals that make content easier for machines to read, attribute and extract. Visibility in AI systems cannot be guaranteed.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| AI-readable structure | 15% | Semantic HTML landmarks (2); Heading hierarchy (1); H1 heading present (1) |
| Entity signals | 15% | Entity identity markup (2); Main topic stated early (1) |
| Authorship & about | 15% | Author information (2, YMYL 3); Author bio or profile (1, YMYL 2); About page (1); First-hand experience language (1); Reviewer information (YMYL only, YMYL 2); Credentials stated (YMYL only, YMYL 2); Editorial policy (YMYL only, YMYL 2) |
| Citations & references | 10% | Sources / references (1, YMYL 3) |
| Machine-readable data | 10% | Structured data present (1); JSON-LD syntax (1); Basic schema properties (1) |
| Content clarity | 10% | Direct answers to questions (1); Definition patterns (1); Short paragraphs (1) |
| Dates | 5% | Date modified / updated (1, YMYL 2); Date published (1) |
| Content relationships | 10% | Internal links (1); Breadcrumb navigation (1) |
| Crawler access | 10% | Search and AI crawler access (2); Allowed by robots.txt (1); Server-rendered content (1) |
GEO score
Generative Engine Optimization readiness: clear, consistent entity, contact, location and offering information.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Organization identity | 20% | Business / organization name (2); Organization / LocalBusiness schema (2); Entity identity markup (1) |
| Contact information | 20% | Physical address (1); Phone number (1); Email address (1); Contact information (1, YMYL 2) |
| Location signals | 15% | LocalBusiness schema (1); Location / service area (1); Map or geo coordinates (1) |
| Consistency (NAP) | 10% | Name/address/phone consistency (1); Conflicting entity data (1) |
| External references | 10% | External profile references (sameAs) (1) |
| Trust pages | 15% | About page (1); Privacy policy (1); Terms / legal (1); Organization information (1) |
| Services / products | 10% | Clear service/product descriptions (1) |
SXO score
Search Experience Optimization: automated UX signals. Human UX quality needs manual review.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Navigation | 15% | Navigation menu (2); Breadcrumb navigation (1) |
| Calls to action | 10% | Calls to action (1) |
| Readability | 15% | Readability (1); Paragraph length (1); Average sentence length (1) |
| Mobile usability | 15% | Viewport meta tag (2); Pinch-zoom allowed (1) |
| Page speed | 15% | Lighthouse performance (mobile, lab) (2); Server response time (TTFB) (1) |
| Intrusive elements | 5% | Intrusive pop-ups / interstitials (1) |
| Accessibility basics | 10% | Form field labels (1); Links without accessible text (1); Button accessible names (1) |
| Scannability | 10% | Scannability (1); Lists and tables (1) |
| Forms | 5% | Form length (1) |
Schema score
Structured data presence, syntax and completeness. Valid schema does not guarantee rich results.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Presence | 25% | Structured data present (1) |
| Syntax | 25% | JSON-LD syntax (1) |
| Basic properties | 20% | Basic schema properties (1) |
| Identity schema | 10% | Identity schema (Organization/Person/WebSite) (1) |
| Consistency | 15% | Duplicate schema (1); Conflicting entity data (1); Schema URL consistency (1) |
| Breadcrumbs | 5% | BreadcrumbList schema (1) |
Performance score
Mostly Google Lighthouse lab data via the PageSpeed Insights API. Unavailable when the API is not configured or fails.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Lighthouse mobile (lab) | 45% | Lighthouse performance (mobile, lab) (1) |
| Lighthouse desktop (lab) | 15% | Lighthouse performance (desktop, lab) (1) |
| Real-user field data | 10% | Real-user Core Web Vitals (field) (1) |
| Server response | 10% | Server response time (TTFB) (2); Text compression (1) |
| Page weight | 10% | HTML document size (1); Image file sizes (1); Modern image formats (1) |
| Loading behaviour | 10% | Render-blocking scripts (1); Lazy loading (1); Width/height attributes (1) |
Mobile score
Mobile-friendliness signals readable from HTML, plus Lighthouse mobile when available.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Viewport | 35% | Viewport meta tag (2); Fixed-width layout (1) |
| Zoom allowed | 15% | Pinch-zoom allowed (1) |
| Responsive images | 15% | Responsive images (srcset/picture) (1) |
| No legacy plugins | 10% | No legacy plugins (1) |
| Lighthouse mobile (lab) | 25% | Lighthouse performance (mobile, lab) (1) |
Accessibility score
Static HTML accessibility checks. Colour contrast and keyboard behaviour need a browser or manual testing.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Image alternatives | 15% | Image alt attributes (1) |
| Form labels | 15% | Form field labels (1) |
| Accessible names | 15% | Links without accessible text (1); Button accessible names (1); Iframe titles (1) |
| Page language | 10% | HTML lang attribute (1) |
| Structure | 15% | H1 heading present (1); Heading hierarchy (1); Main landmark (1); Skip to content link (1) |
| Focus & IDs | 10% | Positive tabindex (1); Duplicate IDs (1) |
| Zoom | 10% | Pinch-zoom allowed (1) |
| Media | 10% | Autoplaying audio (1) |
Security score
Observable transport security and HTTP security headers. Reported separately from SEO.
| Component | Weight | Checks (relative weight) |
|---|---|---|
| Transport | 30% | HTTPS (3); HTTP redirects to HTTPS (1); Strict-Transport-Security (HSTS) (1) |
| Mixed content | 15% | Mixed content (1) |
| Security headers | 35% | Content-Security-Policy (2); X-Content-Type-Options (1); Referrer-Policy (1); Permissions-Policy (1); Clickjacking protection (1) |
| Cookie flags | 10% | Cookie security flags (1) |
| Version disclosure | 10% | Software version disclosure (1) |
5. YMYL pages
If a page appears to cover health, finance, legal, safety, government, employment or immigration topics (detected from keywords in the title, headings and text), trust-related checks get higher weights: Author information 3, Author bio or profile 2, Reviewer information 2, Credentials stated 2, Editorial policy 2, Sources / references 3, Date modified / updated 2, Contact information 2. Detection is a heuristic. It is not Google's classification and it says nothing about how Google ranks the page.
6. Severity and action-plan priority
Each failed or partial check has a severity (Critical, Warning or Notice) and an impact (high, medium or low) set by fixed rules in the code. The action plan assigns priority from those two values:
| Severity | Impact | Priority |
|---|---|---|
| Critical | Any | Immediate |
| Warning | High | High |
| Warning | Any | Medium |
| Notice | High | Medium |
| Notice | Any | Low |
7. Data sources
- Page HTML and headers: fetched once by our server, parsed with a standards-based HTML parser. We do not run JavaScript, so content that only appears after scripts run may be missed. The report warns when this seems likely.
- robots.txt, sitemaps, linked pages: fetched from your site. The crawl is limited to 20 pages and 40 link checks per audit.
- Lab data: Google Lighthouse via the PageSpeed Insights API, run in simulated conditions. Useful for diagnosis, but not what real visitors experienced.
- Field data: the Chrome UX Report via the same API: the 75th percentile of real Chrome users over the previous 28 days, shown only when Google has enough data.
- Domain Authority: shown only from a connected third-party provider. We never calculate or estimate it.
8. What needs manual review
Some things cannot be judged reliably from code, so we label them "Manual review recommended" and leave them out of scores: true content quality and originality, first-hand experience, factual accuracy, search intent satisfaction, brand reputation, visual design and real UX quality, colour contrast and keyboard behaviour, and the likelihood of being cited by any AI system.
9. Limitations
Results reflect one moment in time and the page version our server received. Some sites serve different content to different visitors or block automated requests. Our timings are measured from our server's location. Treat this report as a structured starting point for improvement, not as a verdict from a search engine.