How our diagnostic scores work
Model: 2026-09-25-context-1
GeoSEO inspects fetched pages and declared access rules. A public scan does not measure actual rankings, Google indexation, consumer AI mentions, citation probability, traffic or leads.
Our weights and deductions are internal prioritization heuristics, not scientifically calibrated against business outcomes and not Google's formula. Research can motivate a check; it does not validate our exact weights or promise an uplift.
Two different audit paths
Single-page SEO: scored checks map pass/info/warning/critical to 1/0.8/0.5/0. Each category is their mean × 100; categories are combined with the weights below. Review-only observations are excluded. Categories without scored checks are excluded from the weighted mean.
Full-site SEO: each retrieved page starts at 100 minus its deductions, floored at zero. SEO is the mean page score minus the curved site-wide penalty, again floored at zero. These two audit paths are not interchangeable.
Health = round(SEO × 0.70 + GEO × 0.30). This blend is an internal product choice, not a measured causal relationship. No retrieved pages means not measured, not zero. Old stored scores are not recalculated. Different scoring versions must not be read as website improvement.
Single-page SEO category weights
Relative weights, normalized over measured categories, read from the running engine.
| Category | Weight |
|---|---|
| Content Quality | 22 |
| Meta & Social Tags | 12 |
| Technical | 12 |
| Headings Structure | 10 |
| Links | 10 |
| Robots.txt & Crawlability | 8 |
| Images | 6 |
| Performance (Core Web Vitals) | 5 |
| Security | 4 |
| URL & Keywords | 3 |
| HTML Validation | 2 |
| Schema / Structured Data | 3 |
| Indexation & Authority | 4 |
Full-site page deductions
Internal diagnostic points, not ranking penalties. Count-scaled overrides below take precedence; otherwise the first matching prefix wins. Zero means a retired or review-only deduction retained for compatibility. Unknown issue strings currently deduct 3 points.
| Issue prefix | Points |
|---|---|
| missing title | 15 |
| title too short | 0 |
| title too long | 0 |
| missing description | 12 |
| description too short | 0 |
| description too long | 0 |
| missing H1 | 12 |
| multiple H1s | 0 |
| image controls without accessible name | 5 |
| no schema | 6 |
| no canonical | 8 |
| canonical mismatch | 10 |
| noindex set | 15 |
| very thin | 0 |
| thin content | 0 |
| missing OG | 5 |
| heading skip | 3 |
| redirect chain | 5 |
| broken URL slug | 5 |
| URL slug has double hyphen | 5 |
| slow | 5 |
| FAQ schema | 3 |
| H1 repeated | 3 |
Count-scaled overrides
base + (count − 1) × increment, limited to the ceiling, replaces the flat deduction. Contributions are summed and the total is rounded once. Image deductions apply to absent alt attributes, not every empty alt value. Empty alt needs purpose review; image controls with no detected accessible name are flagged separately.
| Issue | Base | Increment | Ceiling |
|---|---|---|---|
| images without alt | 3 | 0.45 | 12 |
| images missing alt | 3 | 0.45 | 12 |
| heading skip | 2 | 2.0 | 6 |
| missing OG | 3 | 1.5 | 6 |
Page purpose and editorial observations
URL patterns and limited HTML signals identify contact, legal, gallery, utility, listing and article pages. This is a conservative hint, not verified intent. Ambiguous pages stay generic.
Word count alone no longer deducts full-site page points or single-page content points. Functional pages do not need article-length prose; their paragraph count is review-only, and the full-site crawler does not require schema on them. Short text on other pages prompts review, not a low-quality finding.
Titles outside 20–60 characters and descriptions outside 80–160 trigger editorial review without a length penalty. These are our review thresholds, not Google's limits. Missing metadata, headings and other checks can still affect the diagnostic score.
Legal aliases and editorial archives share a purpose policy across SEO and GEO. Article-specific author/date rules do not apply to recognized listings. Full GEO's internal word-count penalties also exempt functional pages.
Multiple H1 elements are review-only: the raw HTML count is retained but CSS visibility is not measured. Empty alt is not automatically a defect. Decorative intent is not inferred from an image's filename or its location in a navigation/footer area; accessible-control names are checked using limited source signals, not a complete browser accessibility tree.
Not every remaining rule is purpose-aware: full GEO categories, heading-level skips, canonical intent, image semantics and duplicate-content heuristics still need review and further calibration. Scores do not authorize deletion, consolidation or publication.
Site-wide penalty curve
Raw penalties count in full up to 25. Above that: round(25 + (raw − 25) × 0.45), capped at 55.
- Confirmed broken links: 3 each, maximum 15; blocked/time-out responses are not confirmed broken links.
- Duplicate titles/descriptions: affected-page share × 25/20, rounded, minimum 1 when present, capped at 10/8.
- Site-level canonical conflicts or failing targets: 2 each, maximum 10. Duplicate H1 groups: 2 each, maximum 8.
- FAQ questions repeated on at least 3 pages: 1 per question, maximum 5. Internal relevance heuristic, not a Google FAQ rich-result penalty.
- Orphans: 2 each, maximum 8, assessed with at least 80% known-URL coverage. Known-URL coverage does not prove every URL was discovered.
- Missing social links: 5 only with complete reported coverage. Absence does not prove ranking loss.
- A www-redirect warning contributes 5 points.
- Near-duplicate main-content groups: 3–5 affected pages → 10, 6–15 → 20, at least 16 → 30. Similarity is heuristic, not proof of a Google penalty; inspect purpose and usefulness before acting.
- URL inventory: No score penalty. Index bloat not assessed by this count.
GEO diagnostic weights and sampling
| Category | Weight |
|---|---|
| Brand & Entity Clarity | 16 |
| Content Structure & Citability | 16 |
| Evidence, Data & Citations | 15 |
| E-E-A-T & Trust Signals | 12 |
| Answer-First Content | 11 |
| Content Freshness | 9 |
| Technical AI Access | 14 |
| Competitive Context | 7 |
Single-page GEO uses the weighted category mean with reported gates/caps. Full-site GEO analyzes a limited page sample and averages final page scores, not the entire site. Category breakdowns are averaged separately. Sample and fallback source are recorded in the result.
If all checked citation and search agents are restricted for the URL, diagnostic GEO is zero. This does not prove absence from indexes or answers. Googlebot alone does not close every AI platform; training-only opt-outs do not activate this gate.
Fetched HTML with no headings, fewer than 100 words and script/text ratio above 5 may be capped at 50 as a rendering heuristic. Non-functional pages below 50/100 visible words may be capped at 35/60; these are evidence-availability heuristics, not universal content minimums. Word-count-only caps do not apply to recognized functional pages. Their lightweight structural fallback is not used. Other GEO categories remain heuristic and require review.
When sampled GEO fails, generic pages can fall back to a lightweight structural score. Some unavailable submeasurements still use legacy defaults; a successful report does not prove every category was measured. The complete-failure guard is not complete measurement-state coverage.
citation: OAI-SearchBot, Claude-SearchBot, PerplexityBot
training: GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, Bytespider, Meta-ExternalAgent, FacebookBot, cohere-ai, Amazonbot, anthropic-ai, CCBot
user triggered: ChatGPT-User, Claude-User
search: Googlebot, Bingbot, Applebot, DuckDuckBot, YandexBot
Coverage, safety and verification limits
The public full-site route requests up to 200 pages. Sitemap discovery has host, cycle, depth, document/URL and time limits. Cutoffs reduce reported coverage. JavaScript rendering is attempted when detected, not guaranteed for every application or bot challenge.
A fetched noindex directive or robots restriction is evidence of a declared rule, not a live Google index check. Response time is not field Core Web Vitals. Schema presence is not validation, rich-result eligibility or a ranking guarantee. No approved-keyword rank query or consumer ChatGPT/Gemini answer test runs in this public scan.
Proposals quote page observations or contain unverified AI drafts, not source-verified business facts. They must not be autonomously published. Historical payloads and scores are preserved; comparisons across model versions are not attributed to site changes.
Primary references and limits
- Google: helpful content — usefulness and purpose, not a preferred word count.
- Google: title links and snippets — display varies with device width, not a fixed character maximum.
- Google documentation updates — FAQ rich results no longer appear, as announced in May 2026. Useful FAQs can still be reviewed without promising this feature.
- Research library — background studies, not validation of our exact formula or guaranteed client outcomes.