Rule category · weight 12
SEO technical
13 rules. Each returns pass (counts fully), partial (counts half) or fail (counts zero) toward the category score, weighted by the rule’s own weight. A rule is not assessable when its source is unavailable, a credential is missing or the check could not run; it is then left out of the score with the reason shown, never counted as a failure.
Sources used in this category: crawler, html, http, llm, serp. “a, else b” means the first source that answers is used; “a + b” means both are required.
| Id | What it checks | Severity | Weight | Source | Fix |
|---|---|---|---|---|---|
| S1 | unique title on homepage 30-60 chars containing service or brand | High | 2 | html | Rewrite title tag. |
| S2 | meta description 70-160 chars unique | Medium | 1 | html | Write meta description with CTA. |
| S3 | exactly one H1 on homepage | Medium | 1 | html | Set one H1. |
| S4 | sitemap.xml exists and parses | Medium | 2 | http | Generate sitemap; submit to Search Console. |
| S5 | robots.txt exists and does not block / | Critical | 2 | http | Fix robots.txt disallow. |
| S6 | canonical tag present and self-referencing | Low | 1 | html | Add canonical. |
| S7 | LocalBusiness or Organization schema present | High | 2 | html | Add JSON-LD LocalBusiness schema. |
| S8 | images have alt text (>80%) | Low | 1 | html | Add descriptive alt text. |
| S9 | site indexed (site query returns >=1 result) | Critical | 3 | serp | Request indexing in Search Console. |
| S10 | brand name query shows site in top 3 | High | 2 | serp | Strengthen brand signals: GBP, schema, consistent name. |
| S11 | primary service + city query shows site in top 20 | Medium | 2 | serp | Create a dedicated service+location page. |
| S12 | service pages exist (>=1 per core service) | Medium | 2 | crawler + llm (all required) | Split services into individual pages. |
| S13 | OpenGraph title and image present | Low | 1 | html | Add OG tags for link previews. |
Still stuck? Email [email protected] and a person will answer.