saskatoon.ca 65 C
🛡️ SEO 46 🤖 GEO 84 ⚡ Perf 41 🏗️ Arch 80

saskatoon.ca — Global SEODiff Score 65/100

saskatoon.ca
📊

With a solid 82/100 ACRI, saskatoon.ca is well-positioned for AI search — better than 96% of sites in the Radar. Within the government vertical, this places saskatoon.ca above the industry average of 58 —, suggesting strong competitive positioning in AI search. Server-side rendering keeps the ghost ratio near zero, giving AI systems direct access to all visible content. With a 1.5× bloat ratio, the page delivers its content without excessive boilerplate, giving AI systems a clean extraction path. Zero schema blocks puts this site at a disadvantage in knowledge graph and AI-answer pipelines that rely on explicit structured data. All major AI bot user-agents (GPTBot, ClaudeBot, CCBot, Google-Extended) are permitted by robots.txt, ensuring broad AI crawler access.

65
C — Global SEODiff Score
Comprehensive search visibility assessment
Strong foundations, but Performance (41) is your bottleneck.
🎯 Top Fix: Add Organization + WebSite JSON-LD → +5–8 pts
🔬 Automated SEODiff Assessment · Snapshot: Feb 26, 2026 · 📋 API
📈 ACRI Trend 3 snapshots
Feb 23 Feb 26
🔔 Recent AI Indexing Activity
No recent changes detected by adaptive crawler.
Does your site score higher than saskatoon.ca?
Run the same 40-signal audit on your own domain — free, instant results.
Scan Your Site Free →
🧮 Score Transparency — How is this calculated?
🛡️ Traditional SEO (25% weight)46 × 0.25 = 11.5
🤖 AI Readiness / GEO (40% weight)84 × 0.40 = 33.6
⚡ Performance (20% weight)41 × 0.20 = 8.2
🏗️ Architecture & Trust (15% weight)80 × 0.15 = 12.0
Weighted sum = 11.5 + 33.6 + 8.2 + 12.0
Global SEODiff Score = 65 (C)
📊 ACRI Sub-Scores (AI Readiness Detail)
100
Bot Access
avg 92
100
Rendering
avg 93
99
Structure
avg 36
0
Schema
avg 9
70
Tech Stack
avg 63
🔀
Visibility Delta: Google vs AI
Google (Tranco)
Top 16%
Rank #157383
-11 pts
Gap
AI (ACRI)
Top 4%
Score 82/100

saskatoon.ca is more visible to Google than to AI models. There's room to improve AI discoverability to match your search reputation. ACRI measures technical crawler readiness. Read the methodology →

Why saskatoon.ca ranks here

Tech stackDrupal
Industrygovernment
RenderingSSR
Schema coverage0 blocks
Token bloat1.5×

Fastest improvements

  • Add basic Organization and WebSite JSON-LD to fix “0 schema blocks” (see Schema Coverage).
  • Create an llms.txt file so AI crawlers can discover your content structure without heavy crawling. Generate llms.txt →
  • Run a full entropy audit to find which DOM regions waste the most tokens. Run Entropy Audit →
🧪

JavaScript Rendering Check

We check what AI crawlers miss when they skip JavaScript execution.

Running headless browser to simulate AI extraction…
🛡️

Traditional SEO

46/100 25 % of Global Score 🟢 High Confidence

📝 Title Tag

24 chars
Too short

Optimal range: 30–60 characters for SERP display.

📋 Meta Description

127 chars
Good length

Optimal range: 120–160 characters for snippet control.

🔤 Heading Hierarchy

  • ✓ Exactly 1 <h1> tag — found 1
  • ✓ Has <h2> headings — found 11
  • ✗ <h2> not before <h1>

🔍 Indexability

  • ✓ Canonical tag present → https://www.saskatoon.ca/
  • ✓ No noindex directive
  • ✓ Meta viewport set
  • ✓ HTML lang attribute → en
  • ✗ Hreflang tags
  • ✓ Googlebot allowed by robots.txt

🌐 Social / OpenGraph

  • ✗ og:title
  • ✗ og:description
  • ✗ og:image
  • ✗ twitter:card
📐 How the SEO Pillar score is calculated

SEO Pillar = Title (20 pts) + Meta Desc (20 pts) + Heading Hierarchy (20 pts) + Indexability (20 pts) + Social/OG (20 pts)

Each sub-score is derived from the checks above. Canonical tag, lang attribute, og:image, and a single H1 are the highest-impact items.

🤖

AI Readiness / GEO

84/100 40 % of Global Score 🟢 High Confidence

This pillar aggregates citation share, hallucination risk, bot access, schema health, and content extractability. The individual diagnostic sections below contribute to this score.

🔗

Citation Alternatives

Research
💡
Insight: In the government sector, lancom-systems.com (ACRI: 83) currently has stronger AI extractability. AI models tend to prefer sources with higher semantic structure and schema coverage. Domains with ACRI < 40 see 3.5× more hallucinations. Read the research →
saskatoon.ca
78
Your ACRI Score
83
Industry Peer ACRI
AI models prioritize pages with strong semantic structure and schema coverage. lancom-systems.com has schema coverage of 1 blocks and uses TYPO3. Improve your score by implementing the remediation patches below.
📊 Side-by-Side Comparison →
🚨

Hallucination Risk

Research

Is AI lying about your brand? This panel measures how likely LLMs are to hallucinate facts when extracting information from your page.

Analyzing hallucination risk…

🤖 Bot Access Matrix

GPTBot (OpenAI)
Allowed
ClaudeBot (Anthropic)
Allowed
CCBot (Common Crawl)
Allowed
Google-Extended
Allowed
Googlebot
Allowed

👻 Rendering (Ghost Ratio) Docs

Ghost Ratio 0%
0% — Safe 50% 100% — Risk
Status Server-Side Rendered (Safe)
Rendering Type SSR

📊 Structure & Information Density Docs

Structure Grade 99/100 — Excellent
Structured Elements 923 elements (923 lists, 0 rows, 0 headers)
Total Words3139
Raw Density29.4%

🏷️ Schema Health Docs

Organization Schema ❌ Missing
Product / Service Schema ⚠️ Not Found
Total Schema Blocks0 — No JSON-LD detected

Schema Coverage Map

0/7 schema types detected
❌ Organization
❌ Product/Service
❌ Breadcrumb
❌ FAQ
❌ Article
❌ WebSite
💡Organization schema missing. AI models cannot identify your brand entity. Without it, your brand won't appear in Knowledge Panels or be associated with your content.
💡Product / Service schema missing. AI models don't know this is a SaaS product. Add Product or SoftwareApplication schema so AI understands what you offer and can surface pricing/features.
💡BreadcrumbList schema missing. AI cannot understand your site hierarchy or how pages relate to each other.
💡FAQ schema missing. Adding FAQPage schema lets AI models directly extract Q&A pairs for Featured Snippets and chatbot answers.
💡WebSite schema missing. Add WebSite + SearchAction so Google can generate a Sitelinks Search Box for your brand in AI results.

📐 AI Efficiency Metrics Docs

75
AI Extractability
High
Crawl Cost
None
Blocklist Risk
Extractability75/100 — AI models can easily extract answers from this page
Crawl CostHigh (70/100) — expensive for AI crawlers to process
Blocklist RiskNone — 0 of 5 AI crawlers blocked

Token Bloat Research

66%
🗑️ 34%
Useful Content (384.4 KB)Bloat (191.5 KB)
Token Bloat Ratio1.5× — Lean

Multimodal Readiness

Visual Context100% Optimized for Vision
Image Alt Coverage5 / 5 images have alt text

TDM Rights

TDM-Reservation HeaderNot set
X-Robots-Tag: noaiNot set

🔥 Structural Entropy Check Research

88 Entropy
Good Token Bloat: Low
Noise Ratio: 33.3% · SNR: 2.01 · Signal: 98411 / Noise: 49030 tokens

🔬 AI-Crawler Simulation

See your website the way AI crawlers do. CSS stripped, structure labeled, content chunked.

🌐
This is what humans see — styled, branded, visual.
Toggle to "AI Agent View" to see what GPTBot, ClaudeBot, and other AI crawlers actually extract from this page.
🤖

AI Answer Preview

NEW

See how AI models summarize your site. Left: your actual content. Right: what the LLM extracts and says about you.

Simulating AI extraction…
🧠

The LLM Interpretation

AI-VERIFIED

A local LLM (mlx-community/Qwen2.5-7B-Instruct-4bit) analyzed the extracted content of saskatoon.ca and produced this structured business intelligence. Fields marked SEMANTIC VOID indicate information the AI could not find — a critical gap in your site’s machine-readability.

Core Offering
City services and programs
Target Audience
Citizens of Saskatoon
Pricing Model
Free
Model: mlx-community/Qwen2.5-7B-Instruct-4bit · Analyzed: 2026-02-26 · Data extracted from the site’s main content via strict JSON prompting.

🔧 Tech Stack

FrameworkDrupal
AI-Readiness Score70/100
Server
CDN
HTTP Status200
Load Time628 ms
Raw HTML Size575.9 KB
Visible Text Size384.4 KB

Performance & Speed

41/100 20 % of Global Score 🟢 High Confidence

⏱️ Time to First Byte

628 ms
Slow — bots may time out or deprioritise

Google considers <200 ms "good". AI crawlers may have even shorter timeouts.

📦 Page Weight

4038
DOM nodes
576 KB
HTML payload
Heavy page — consider reducing DOM complexity

🗄️ Cache & CDN

  • ✓ Cache-Control header → max-age=31536000, public
  • ✗ CDN cache status
  • ✗ CDN detected

🔬 Tracker Tax

1
tracker scripts
1
third-party domains
0.0%
token overhead
Minimal tracker load — clean signal for bots
googletagmanager.com
📐 How the Performance Pillar score is calculated

Perf Pillar = TTFB (35 pts) + Page Weight (25 pts) + Cache/CDN (20 pts) + Tracker Tax (20 pts)

TTFB <200 ms = full marks. DOM >3000 or payload >300 KB incurs heavy penalties. Tracker scripts beyond 5 reduce score.

🏗️

Architecture & Trust

80/100 15 % of Global Score 🟢 High Confidence

🗺️ Sitemap & Robots

  • ✗ Sitemap declared in robots.txt
  • ✓ Googlebot allowed
  • ✓ GPTBot allowed
  • ✓ ClaudeBot allowed

🔗 Linking

942
internal links
2
external links
Good internal linking — helps crawlers discover content

🔒 Security & Trust

  • ✓ HSTS header (Strict-Transport-Security)
  • ✗ Content-Security-Policy header
  • ✓ HTTP status 200 OK (got 200)

♿ Accessibility Signals

  • ✓ HTML lang attribute → en
  • ✓ Meta viewport for mobile
  • ✓ Single H1 for screen readers
📐 How the Architecture Pillar score is calculated

Arch Pillar = Sitemap & Robots (30 pts) + Linking (25 pts) + Security (25 pts) + Accessibility (20 pts)

Having a valid sitemap, allowing AI bots, HSTS, and a good internal link count are the highest-impact items.

🏅 AI-Verified Trust Badge

Your site scores 78/100. Reach 80+ to unlock the green "AI-Verified" badge. Fix the issues below to improve your score.

AI-Verified badge for saskatoon.ca
Pending Audit — score below 80 threshold
<a href="https://seodiff.io/radar/domains/saskatoon.ca" rel="noopener"><img src="https://seodiff.io/api/v1/badge?domain=saskatoon.ca" alt="AI-Verified by SEODiff" width="280" height="52"></a>

💡 Paste in your site footer, GitHub README, or email signature. Badge updates automatically as your score changes.

� Deep Crawl Analysis 630 pages · Deep-10

Homepage ACRI
78
Single-page score
-38
Severe hidden bloat
Δ delta
Site-Wide ACRI
41
Avg across 630 pages · Range 26–82
🔍
Hidden Bloat Detected

Homepage scores 78, but internal pages average only 41 — a -38-point gap. Blogs, docs, and legacy content are dragging down AI readability site-wide.

Topical Cohesion
3%
Topical Drift
TF-IDF cosine similarity
Total Words
180591
Avg Bloat
1088.2×
RAG Fractures [?]
1
⚠️
1 RAG-Chunking Fracture Detected

Poorly formatted tables or pricing grids on 1 page will be split incorrectly during RAG chunking, causing AI models to hallucinate prices and features.

Page Type ACRI Token Bloat Words Status
https://www.saskatoon.ca/business-development/land-development/faq
FAQ | City of Saskatoon
pricing 82 2.9× 4974 💰 Pricing
https://www.saskatoon.ca/business-development/major-projects/upcoming-projects/downtown-event-entertainment-district/resources
Resources | City of Saskatoon
pricing 59 27.3× 4587 💰 Pricing
https://www.saskatoon.ca/engage/circle-drive-west-functional-planning-study
Circle Drive West Functional Planning Study | City of Saskatoon
pricing 59 29.5× 4202 💰 Pricing
https://www.saskatoon.ca/engage/montgomery-place-drainage-improvements
Montgomery Place Drainage Improvements | City of Saskatoon
pricing 59 47.5× 2544 💰 Pricing
https://www.saskatoon.ca/engage/519-2nd-ave-n
519 2nd Ave N | City of Saskatoon
pricing 59 85.9× 1385 💰 Pricing
https://www.saskatoon.ca/engage/connecting-avenue-c
Connecting Avenue C | City of Saskatoon
pricing 59 63.9× 1897 💰 Pricing
https://www.saskatoon.ca/engage/willows-concept-plan-amendment
The Willows Concept Plan Amendment | City of Saskatoon
pricing 59 85.8× 1392 💰 Pricing
https://www.saskatoon.ca/engage/555-eastlake-avenue-403-12th-street-east
555 Eastlake Avenue & 403 12th Street East | City of Saskatoon
pricing 59 78.2× 1546 💰 Pricing
https://www.saskatoon.ca/engage/willows-concept-plan-amendment-not-approved
The Willows Concept Plan Amendment - NOT APPROVED | City of Saskatoon
pricing 59 45.6× 2692 💰 Pricing
https://www.saskatoon.ca/engage/speed-limit-review
Speed Limit Review | City of Saskatoon
pricing 59 44.0× 2870 💰 Pricing
https://www.saskatoon.ca/engage/churchill-park-redesign
Churchill Park Redesign | City of Saskatoon
pricing 59 75.9× 1576 💰 Pricing
https://www.saskatoon.ca/engage/college-corridor-plan
College Corridor Plan | City of Saskatoon
pricing 59 55.0× 2229 💰 Pricing
https://www.saskatoon.ca/engage/cn-industrial-drainage-improvements
CN Industrial Drainage Improvements | City of Saskatoon
pricing 59 76.5× 1556 💰 Pricing
https://www.saskatoon.ca/engage/weaver-park-redesign
Weaver Park Redesign | City of Saskatoon
pricing 59 71.5× 1677 💰 Pricing
https://www.saskatoon.ca/city-statement/statement-regarding-concert-diefenbaker-park
Statement regarding concert in Diefenbaker Park | City of Saskatoon
pricing 59 84.5× 1390 💰 Pricing
https://www.saskatoon.ca/engage/industrial-residential-interface
Industrial-Residential Interface | City of Saskatoon
pricing 56 156.3× 757 💰 Pricing
https://www.saskatoon.ca/community-culture-heritage/neighbourhoods-community-associations/buena-vista
Buena Vista | City of Saskatoon
pricing 56 234.4× 526 💰 Pricing
https://www.saskatoon.ca/engage/308-110th-street-west
308 110th Street West | City of Saskatoon
pricing 56 162.6× 724 💰 Pricing
https://www.saskatoon.ca/community-culture-heritage/neighbourhoods-community-associations/stonebridge
Stonebridge | City of Saskatoon
pricing 56 187.3× 667 💰 Pricing
https://www.saskatoon.ca/engage/720-albert-avenue
720 Albert Avenue | City of Saskatoon
pricing 56 185.2× 635 💰 Pricing
Showing 20 of 100 pages. Unlock full subpage table →
📂
Health by Sub-Directory
Average ACRI and top issues aggregated by URL path prefix
Path Pages Avg ACRI Ghost % Bloat Top Issue
/content/ 324 36 0% 1397.0× High JS Bloat
/engage/ 123 56 0% 156.7× High JS Bloat
/community-culture-heritage/ 47 45 0% 445.3× High JS Bloat
/city-statement/ 2 52 0% 313.9× High JS Bloat
/business-development/ 2 70 0% 15.1× High JS Bloat
/contact/ 1 46 0% 258.9× High JS Bloat
/parks-recreation-attractions/ 1 46 0% 413.9× High JS Bloat
🔗
Outbound External Citations
0 unique external domains cited across 630 pages
cityofsaskatoon.sharepoint.com ×629
opendata-saskatoon.cloudapp.net ×629
apps5.saskatoon.ca ×629
google.com ×45
facebook.com ×45
pub-saskatoon.escribemeetings.com ×42
youtube.com ×17
tel:3069863699 ×16
🔄 Re-Crawl & Update 📡 Track this Domain

Scores update automatically each month. Create a free account for on-demand re-crawls (3/month free).

🔌 API Access

Pull this data programmatically. All sub-page metrics are available via our public API.

curl https://seodiff.io/api/v1/deep10/domain/saskatoon.ca

Get your free API key — 100 requests/month included.

🔗 Similar government Sites

Domains with a similar tech stack, industry, and AI readiness profile to saskatoon.ca. Compare side-by-side.

Domain ACRI AI Score Tech Stack Token Bloat Schema
saskatoon.ca (this site) 78 82 Drupal 1.5× 0
gep.com 83 86 Drupal 2.1× 3 Compare →
mentalhealth.gov 79 81 Drupal 4.1× 3 Compare →
marsh.com 79 83 Adobe Experience Manager 1.5× 1 Compare →
bitdefender.de 78 85 Adobe Experience Manager 2.5× 1 Compare →
bitdefender.com.au 78 85 Adobe Experience Manager 2.5× 1 Compare →
Compare All 5 Similar Sites →
🩹

Remediation Patches

COPY-PASTE

Auto-generated code fixes tailored to saskatoon.ca. Copy and paste these into your codebase to improve AI visibility. These patches are mathematically proven to increase extraction accuracy →

Add Organization JSON-LD
High Impact ⏱ 5 min
AI models cannot identify your brand entity without Organization schema. This is the #1 fix for AI visibility.
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Saskatoon",
  "url": "https://saskatoon.ca",
  "logo": "https://saskatoon.ca/themes/saskatoon_ca/favicon.ico",
  "sameAs": []
}
</script>
Add WebSite + SearchAction JSON-LD
High Impact ⏱ 5 min
Enables the Sitelinks Search Box in Google and allows AI to understand your site structure.
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Saskatoon",
  "url": "https://saskatoon.ca",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://saskatoon.ca/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>
Add FAQ Schema
Medium Impact ⏱ 10 min
FAQ schema lets AI models directly extract Q&A pairs. This is the easiest way to get featured in AI responses.
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is Saskatoon?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Add your answer here — describe what Saskatoon does in 1-2 sentences."
      }
    },
    {
      "@type": "Question",
      "name": "How does Saskatoon work?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Explain the key features and how users interact with Saskatoon."
      }
    }
  ]
}
</script>
📈

Projected Impact

ROI EST.

If you apply the patches above, here's the estimated improvement for saskatoon.ca:

Current Score
82
Projected Score
95
Improvement
+13 pts
Add Organization schema +6 pts
Add WebSite schema +4 pts
Add FAQ schema +3 pts

*Estimates based on SEODiff's scoring model. Actual results depend on implementation quality.

📋 Data Export

Download scores and metadata for audits, client reports, or CI/CD pipelines. Exports contain computed metrics only (no copyrighted content).

All data is generated automatically and updated with each crawl. JSON exports contain scores and metadata only (no copyrighted content).

Is this your company?

Monitor your AI visibility score weekly and get alerted when changes happen.

Start Free →

🧭 Self-Diffing (Private Layer)

For owned domains, combine this world snapshot with private drift + regression history.
Template Drift
Track in My Site
Drift → Traffic Impact
In development coming soon
Regression Incidents
Track in My Site
Internal Linking
Deep Audit graph
Semantic Structure
GEO view in Deep Audit
Content Quality
Thin/duplicate tracking

🕒 History

Score over timeAvailable in My Site history
Drift eventsTemplate timeline + incidents
Drift → Revenue AttributionComing soon
Schema/rendering/extractability changesTracked per scan in project history