How We Grade Your Website
The grader runs 29 checks on your public homepage and adds them up to a score out of 100. Here is every check, what it's worth and why it matters to a local business.
What we read
Your homepage HTML, robots.txt, XML sitemap and llms.txt, the same public files any visitor or search engine can see. Speed comes from Google PageSpeed Insights (mobile).
How points work
Each check earns full, partial or zero points. Issues are ranked by points lost and impact, so the top of your list is what to fix first.
Grades
A 90–100 · B 80–89 · C 70–79 · D 55–69 · F below 55.
| Check | What earns points | Points |
|---|---|---|
| Mobile page speed | Google PageSpeed mobile performance score. 90+ earns full points; lower scores earn a share. If PageSpeed is unavailable we estimate from server response time and say so. | 10 |
| Mobile-friendly layout | A viewport tag with width=device-width, so phones get a mobile layout. | 5 |
| Server response time | Under 0.8 s full points, under 1.8 s half. | 2 |
| Check | What earns points | Points |
|---|---|---|
| Page title | 25–65 characters for full points; present but too short or long earns 3. Google sets no length limit; this range keeps titles from being cut off in results. | 5 |
| Meta description | 70–165 characters for full points; present but outside that range earns 2. | 4 |
| Main heading (H1) | At least one H1 heading. Google says more than one is fine, so extra H1s cost nothing. | 4 |
| Google can index your site | No noindex tag or header, and robots.txt doesn't block the whole site. | 5 |
| Canonical URL | A rel="canonical" link is present. | 2 |
| XML sitemap | Found via robots.txt, /sitemap.xml, /sitemap_index.xml or /wp-sitemap.xml. | 2 |
| Image descriptions | 90% of images have an alt attribute for full points, 60% for half. Empty alt on decorative images counts. | 3 |
| Check | What earns points | Points |
|---|---|---|
| City or service area | The page mentions Winnipeg, Manitoba, a Winnipeg neighbourhood or a nearby community. | 5 |
| Phone number | A visible North American phone number or a tel: link. | 5 |
| Address or postal code | A street address or Canadian postal code. Service-area businesses can skip this and list areas instead. | 3 |
| Local business schema | JSON-LD or microdata with a LocalBusiness type (or a subtype such as Plumber or HairSalon). Organization only earns 2. | 4 |
| Google Maps or profile link | A link to Google Maps or your Google Business Profile, or an embedded Google map. | 3 |
| Check | What earns points | Points |
|---|---|---|
| Tap-to-call link | At least one tel: link so phone visitors can call with one tap. | 4 |
| Contact or quote form | A form with an email, phone or message field, or an embedded form or booking tool. | 4 |
| Clear call to action | A link or button such as "Get a quote", "Book", "Call" or "Contact". | 3 |
| Email or contact page | A mailto: link or a link to a contact page. | 2 |
| Check | What earns points | Points |
|---|---|---|
| Secure connection | The page loads over HTTPS with a valid certificate. | 3 |
| Reviews or testimonials | Reviews, testimonials or star ratings on the page, or Review / AggregateRating schema. | 3 |
| Social sharing preview | 1 point each for og:title and og:image, so shared links show a title and picture. | 2 |
| About and privacy pages | Half a point each for a link to an About page and a privacy policy. | 1 |
| Looks up to date | The footer copyright year isn't more than a year old. Years filled in by JavaScript aren't penalised. | 1 |
| Check | What earns points | Points |
|---|---|---|
| AI search crawlers allowed | robots.txt doesn't block the crawlers that fetch pages for AI answers: OAI-SearchBot and ChatGPT-User (ChatGPT), PerplexityBot, Claude-SearchBot and Bingbot (Microsoft Copilot, and a source for ChatGPT search). Bingbot costs 2 points, the others 1 each. Blocking training-only crawlers such as GPTBot, ClaudeBot or Google-Extended is a fair choice and costs nothing. We report whether you have an llms.txt file but don't score it, because major AI tools haven't confirmed they use it. | 4 |
| Readable without JavaScript | 150+ words of text in the HTML your server sends for full points, 50+ for half. Many AI crawlers don't run JavaScript, so text that only appears after scripts load may be invisible to them. | 3 |
| Business identity for AI | 1 point each for structured data with a business type (LocalBusiness or Organization), your phone, address or service area, and sameAs links to your other profiles such as Google, Facebook or directories. | 3 |
| Answers common questions | 2 points for an FAQ section or at least two question-style headings, plus 1 for FAQPage schema. | 3 |
| Services and prices explained | 1 point for 300+ words of readable text, 1 for mentioning prices or linking to a pricing page. | 2 |
What the score can't tell you
- It's not a ranking prediction. Rankings also depend on your Google Business Profile, reviews, competitors, links and how long your site has been around.
- Only the homepage is scanned. Problems on other pages need a manual audit.
- JavaScript-heavy sites may show less text to us than to a browser. Google renders JavaScript, but slowly and not always completely.
- AI search readiness isn't AI visibility. We check whether AI tools can read and understand your site, not whether ChatGPT or Google's AI answers mention you today. Those answers change from one question to the next, and no one can guarantee them.
- Firewall blocks aren't visible to us. Some hosts and Cloudflare settings block AI crawlers at the server instead of in robots.txt. We can only see robots.txt rules.
- Speed scores vary a little between runs. Reports are cached for 24 hours.
- Some sites block automated checks. If yours does, contact us and we'll review it by hand.
Our scanner
Requests come from YWGGradeBot/1.0 and are made only when someone grades a site. We read a handful of public files, never log in, never submit forms and never store page content beyond the score and findings.
Opting out
Website owners who don't want their site graded can block our scanner in robots.txt:
User-agent: YWGGradeBot
Disallow: /
Or email hello@ywggrade.com from an address at your domain and we'll exclude it. If you think a result for your site is wrong, let us know and we'll review it by hand.
Sources
Every check is based on public guidance from Google, schema.org and the companies that run AI search. The point values, thresholds and grade bands are our own judgment of what matters most for a local business site. They are not an official standard, and Google doesn't publish a score like this.
- Speed and mobile: About PageSpeed Insights · Google page experience
- Google basics: SEO Starter Guide · Title links · Snippets and meta descriptions · noindex · Canonical URLs · Sitemaps · Image alt text
- Local SEO: Tips to improve your local ranking on Google · Local business structured data · schema.org LocalBusiness
- Trust signals: The Open Graph protocol. Reviews, About and privacy pages and an up-to-date footer are common trust and conversion practice rather than Google ranking factors.
- AI search: OpenAI crawlers · Perplexity crawlers · Anthropic crawlers · Bing crawlers · Google crawlers, including Google-Extended · AI features and your website · JavaScript SEO basics · llms.txt proposal
AI search is new and changing quickly. We review these checks when the companies above update their guidance.
A grade is an automated technical check, not an assessment of any business's skills or service quality. See our terms of use.