Scanned sites / horizonheating.ca

SEO report for horizonheating.ca DR 37

The latest Site Spider scan of horizonheating.ca, with 1 scan on record. Each scan is at its own address, for example /domain/horizonheating-ca/2026-11-01-1816.

DR is Ahrefs Domain Rating (0-100, backlink strength), used under its Domain Rating License.

Latest scan

Scanned 2026-11-01 18:16:46 UTC, finished 2026-11-01 18:52:03 UTC. Found on page 3 of brave web search results

Site: https://horizonheating.ca/

Download SQLite databaseEvery page and asset from this scan, with the crawl events, in one file.

90/ 100Excellent

On November 1, 2026 the Site Spider crawled 54 pages and 257 assets of horizonheating.ca, starting from https://horizonheating.ca/. It scored 90 out of 100, an excellent result. 5 of 33 checks found something to fix, led by heavy assets (10), meta descriptions (11), title tags (7); 16 checks passed. Most of the points went to heavy assets (−6), meta descriptions (−1.6), title tags (−1.3). 12 checks found something the score does not count, listed as noted. 4 checks were not run because the crawl fetched nothing for them. The list below shows each check's result, the fix plan, when present, explains what to do first, and the security review at the end of the page covers headers, transport, libraries and exposed files.

Security review: Medium3 medium, 1 low and 1 info findings. See the security findings ↓

Pages crawled
54
Assets fetched
257
Status
Completed
Checks with issues
5 of 33
CoverageComplete crawl

311 of 311 discovered URLs were fetched. The crawl reached everything it found. HTML only: nothing here ran JavaScript. 8 link destinations on other sites were checked.

  • Title tags7 issues
    7 of 54 pages have title issues.
    −1.3 points
  • Meta descriptions11 issues
    11 of 54 pages have meta description issues.
    −1.6 points
  • HeadingsOK
    0 of 54 pages have heading issues.
  • Broken linksOK
    0 internal links point at 0 broken URLs.
  • Links to other sites1 issue
    1 destination answered with an error, 1 could not be determined (timeouts, rate limits or refusals), of 8 destinations checked.
    −0.4 points
  • Redirects1 noted
    1 redirecting URL, 0 of them chained.
  • Non-200 responses1 noted
    1 URL did not return a 2xx response. 0 of them are pages, 0 with an error status; the rest are assets or redirects.
  • Rate limitedOK
    The site did not rate limit the crawler.
  • IndexabilityOK
    0 of 54 indexable pages have indexability warnings.
  • Image alt textOK
    0 of 34 image references have no alt attribute.
  • Heavy assets10 issues
    10 assets larger than 500 KB among 257 fetched assets.
    −6 points
  • Orphan pagesOK
    0 pages have no internal links pointing at them.
  • Sitemap coverage4 issues
    3 sitemaps listing 50 URLs: 4 crawled pages missing, 0 listed URLs broken or redirecting, 0 reachable only via the sitemap.
    −0.4 points
  • Internal link counts1 noted
    Internal link counts for 54 pages; 1 worth a look.
  • Thin contentOK
    0 of 54 pages have fewer than 200 words.
  • Duplicate contentOK
    0 groups of pages with identical HTML.
  • URL formatOK
    All 54 page URLs are plain lowercase addresses without parameters.
  • CanonicalsOK
    0 of 54 pages have a canonical worth checking.
  • Robots directives54 noted
    54 pages carry a robots directive; 0 carry none.
  • Anchor text1 noted
    1 destination are linked without useful anchor text, or with nofollow.
  • Title and heading structure5 noted
    5 of 54 pages could use the title, heading and snippet space better.
  • Image weight and alt length1 noted
    1 image over 100 KB; 0 with alt text over 100 characters.
  • Response anomaliesOK
    No redirect loops, header redirects or pages served as something other than HTML.
  • HTML and head validation5 noted
    5 of 54 pages have HTML problems: 0 with head tags outside <head>, 0 over 2 MB.
  • hreflangOK
    No page declares hreflang.
  • Structured data1 noted
    15 of 54 indexable pages carry structured data: BreadcrumbList (14), ListItem (14), WebPage (14), Service (14), LocalBusiness (1). 1 page with errors a rich result would fail on.
  • Near duplicatesOK
    No near duplicates among 53 pages with enough text to compare.
  • Soft 404sOK
    None of 54 pages answering 200 reads like an error page.
  • AccessibilityNot checked
    Not checked: the accessibility audit runs in the browser. Tick "Include JavaScript rendering checks" when you request a scan to run it.
  • Link positions9 noted
    9 of 54 linked pages are linked only from the template, never from another page's content.
  • Pagination5 noted
    24 pages in pagination sequences; 5 with problems.
  • Headers and cookiesOK
    0 cookies set by the site; 15 response headers recorded across 311 URLs.
  • Orphans in searchNot checked
    Not checked: import a Search Console Pages export on the scan page to find pages Google shows that the site does not link to.
  • Link ScoreOK
    Link Score (internal PageRank, 0-100) for 54 pages; 0 hold almost none (10 or less).
  • JavaScript renderingNot checked
    Not checked: this scan did not render pages. Tick "Include JavaScript rendering checks" when you request a scan to compare the served HTML with what a browser builds.
  • PageSpeed InsightsNot checked
    Not checked yet: PageSpeed Insights runs on the top pages once the crawl has finished.
  • Spelling7 noted
    7 words an English dictionary does not know, on 11 pages. Product names and jargon will appear here too.

Where this site sits among all scanned sites

2561 sites, median 80%, average 78%

horizonheating.ca scores 90%, higher than 88% of the 2561 scanned sites. See the full ranking.

0601190%: 0 sites1%: 0 sites2%: 0 sites3%: 0 sites4%: 0 sites5%: 0 sites6%: 0 sites7%: 0 sites8%: 0 sites9%: 1 site10%: 0 sites11%: 0 sites12%: 0 sites13%: 0 sites14%: 1 site15%: 0 sites16%: 0 sites17%: 0 sites18%: 0 sites19%: 0 sites20%: 0 sites21%: 1 site22%: 0 sites23%: 0 sites24%: 0 sites25%: 0 sites26%: 0 sites27%: 0 sites28%: 1 site29%: 0 sites30%: 0 sites31%: 0 sites32%: 0 sites33%: 0 sites34%: 0 sites35%: 2 sites36%: 1 site37%: 1 site38%: 3 sites39%: 2 sites40%: 3 sites41%: 1 site42%: 2 sites43%: 3 sites44%: 1 site45%: 4 sites46%: 5 sites47%: 5 sites48%: 4 sites49%: 7 sites50%: 6 sites51%: 6 sites52%: 8 sites53%: 8 sites54%: 9 sites55%: 10 sites56%: 8 sites57%: 12 sites58%: 18 sites59%: 9 sites60%: 15 sites61%: 12 sites62%: 20 sites63%: 29 sites64%: 21 sites65%: 31 sites66%: 38 sites67%: 39 sites68%: 38 sites69%: 48 sites70%: 48 sites71%: 74 sites72%: 72 sites73%: 76 sites74%: 76 sites75%: 80 sites76%: 93 sites77%: 103 sites78%: 115 sites79%: 103 sites80%: 119 sites81%: 112 sites82%: 116 sites83%: 116 sites84%: 118 sites85%: 95 sites86%: 81 sites87%: 85 sites88%: 66 sites89%: 71 sites90%: 47 sites91%: 56 sites92%: 40 sites93%: 28 sites94%: 20 sites95%: 13 sites96%: 15 sites97%: 14 sites98%: 6 sites99%: 2 sites100%: 68 sites90% here100%90%80%70%60%50%40%30%20%10%0%

Green 90% and up (Excellent), lime 75 to 89 (Good), amber 50 to 74 (Needs work), red below 50 (Poor).

Internal link map

Loading the link map...

Start page (centre)OKRedirectErrorOrphanLinked from most pagesOne inbound link or noneRings = clicks from the start page. Size = inbound links. Drag to pan, scroll to zoom, click a page to see only its links.

Fix plan

Written by gpt-4o-mini from the scan findings

Your site has a solid health score, but there are a few areas for improvement, particularly around title tags, meta descriptions, and asset optimization. Prioritize these fixes for better performance.

  1. 1

    Fix Title Issues

    Why: Seven pages have duplicate or long titles, affecting SEO.

    How: Give each affected page a unique title of 60 characters or less.

    Checks: titles

  2. 2

    Improve Meta Descriptions

    Why: Eleven pages share meta descriptions, leading to poor SEO.

    How: Create unique meta descriptions for the pages with issues, ensuring they're under 160 characters.

    Checks: meta-descriptions

  3. 3

    Resolve Redirect for Sitemap

    Why: A redirect from the sitemap.xml could impact visibility.

    How: Update or remove the 301 redirect to ensure search engines access the correct sitemap file.

    Checks: redirects

  4. 4

    Optimize Heavy Assets

    Why: Ten assets are over 500 KB, slowing down page load.

    How: Compress heavy assets such as images and stylesheets to improve performance.

    Checks: heavy-assets

  5. 5

    Update Sitemap Coverage

    Why: Four crawled pages are missing from the sitemap, risking indexability.

    How: Add the missing pages to the sitemap to ensure they're indexed.

    Checks: sitemap-coverage

Generated automatically; verify each change against your own site before relying on it.

Security review

Written by gpt-4o-mini from 16 checks over the crawl

The website horizonheating.ca lacks critical security headers, which exposes it to potential risks such as interception and script injection. Immediate implementation of these headers and upgrading a vulnerable library are recommended to enhance security.

  • 0 high
  • 3 medium
  • 1 low
  • 1 info
  1. 1

    Missing HTTP Strict Transport Security (HSTS)Medium

    Why it matters: Without HSTS, visitors could be intercepted on their first request by typing the site address without HTTPS.

    Fix: Implement HSTS by adding the header: Strict-Transport-Security: max-age=31536000; includeSubDomains.

    Evidence: HTTP Strict Transport Security

  2. 2

    Missing Content Security Policy (CSP)Medium

    Why it matters: The absence of a CSP allows unrestricted loading of scripts and resources, increasing the risk of cross-site scripting attacks.

    Fix: Add a CSP header: Content-Security-Policy: default-src 'self';.

    Evidence: Content Security Policy

  3. 3

    Vulnerable JavaScript Library DetectedMedium

    Why it matters: jQuery 3.2.1 has known vulnerabilities that could be exploited under certain conditions.

    Fix: Upgrade jQuery to version 3.5.0 or higher to mitigate risks.

    Evidence: Vulnerable JavaScript libraries

  4. 4

    Missing Referrer-PolicyLow

    Why it matters: Without a Referrer-Policy, sensitive URL data may be sent to external sites a user visits.

    Fix: Implement referrer policy by adding the header: Referrer-Policy: no-referrer.

    Evidence: Referrer policy

  5. 5

    Missing Permissions PolicyInfo

    Why it matters: No Permissions-Policy limits potentially harmful browser features for scripts injected on the site.

    Fix: Add the header: Permissions-Policy: geolocation=(), microphone=(), camera=();.

    Evidence: Permissions policy

What the checks found

  • FoundHTTP Strict Transport SecurityMedium

    No HTML page sends strict-transport-security. Without it a visitor who types the address without https:// can be intercepted on the first request.

    • https://horizonheating.ca/ → no strict-transport-security
    • https://horizonheating.ca/contact-us/ → no strict-transport-security
    • https://horizonheating.ca/about-us/ → no strict-transport-security
    • https://horizonheating.ca/charity-golf-tournament/ → no strict-transport-security
    • https://horizonheating.ca/blogs/ → no strict-transport-security
    • https://horizonheating.ca/ckua-radio/ → no strict-transport-security
    • https://horizonheating.ca/furnaces/furnace-repair-calgary/ → no strict-transport-security
    • https://horizonheating.ca/furnaces/calgary-furnace-replacement/ → no strict-transport-security
    • https://horizonheating.ca/furnaces/furnace-tune-up-calgary/ → no strict-transport-security
    • https://horizonheating.ca/furnaces/furnace-cleaning-calgary/ → no strict-transport-security
    • https://horizonheating.ca/furnaces/carrier-furnace-repair-calgary/ → no strict-transport-security
    • https://horizonheating.ca/heat-pump-installation-repair-calgary/ → no strict-transport-security
  • FoundContent Security PolicyMedium

    None of the 54 HTML pages send a Content-Security-Policy header or meta tag, so the browser has no restriction on where scripts, styles and frames may load from.

    • https://horizonheating.ca/ → no content-security-policy
    • https://horizonheating.ca/contact-us/ → no content-security-policy
    • https://horizonheating.ca/about-us/ → no content-security-policy
    • https://horizonheating.ca/charity-golf-tournament/ → no content-security-policy
    • https://horizonheating.ca/blogs/ → no content-security-policy
    • https://horizonheating.ca/ckua-radio/ → no content-security-policy
    • https://horizonheating.ca/furnaces/furnace-repair-calgary/ → no content-security-policy
    • https://horizonheating.ca/furnaces/calgary-furnace-replacement/ → no content-security-policy
    • https://horizonheating.ca/furnaces/furnace-tune-up-calgary/ → no content-security-policy
    • https://horizonheating.ca/furnaces/furnace-cleaning-calgary/ → no content-security-policy
    • https://horizonheating.ca/furnaces/carrier-furnace-repair-calgary/ → no content-security-policy
    • https://horizonheating.ca/heat-pump-installation-repair-calgary/ → no content-security-policy
  • FoundReferrer policyLow

    No HTML page sends referrer-policy. Without a Referrer-Policy the full page address, including any query string, is sent to every site a visitor clicks through to.

    • https://horizonheating.ca/ → no referrer-policy
    • https://horizonheating.ca/contact-us/ → no referrer-policy
    • https://horizonheating.ca/about-us/ → no referrer-policy
    • https://horizonheating.ca/charity-golf-tournament/ → no referrer-policy
    • https://horizonheating.ca/blogs/ → no referrer-policy
    • https://horizonheating.ca/ckua-radio/ → no referrer-policy
    • https://horizonheating.ca/furnaces/furnace-repair-calgary/ → no referrer-policy
    • https://horizonheating.ca/furnaces/calgary-furnace-replacement/ → no referrer-policy
    • https://horizonheating.ca/furnaces/furnace-tune-up-calgary/ → no referrer-policy
    • https://horizonheating.ca/furnaces/furnace-cleaning-calgary/ → no referrer-policy
    • https://horizonheating.ca/furnaces/carrier-furnace-repair-calgary/ → no referrer-policy
    • https://horizonheating.ca/heat-pump-installation-repair-calgary/ → no referrer-policy
  • FoundPermissions policyInfo

    No HTML page sends permissions-policy. A Permissions-Policy header turns off browser features the site does not use (camera, microphone, geolocation), limiting what an injected script could do.

    • https://horizonheating.ca/ → no permissions-policy
    • https://horizonheating.ca/contact-us/ → no permissions-policy
    • https://horizonheating.ca/about-us/ → no permissions-policy
    • https://horizonheating.ca/charity-golf-tournament/ → no permissions-policy
    • https://horizonheating.ca/blogs/ → no permissions-policy
    • https://horizonheating.ca/ckua-radio/ → no permissions-policy
    • https://horizonheating.ca/furnaces/furnace-repair-calgary/ → no permissions-policy
    • https://horizonheating.ca/furnaces/calgary-furnace-replacement/ → no permissions-policy
    • https://horizonheating.ca/furnaces/furnace-tune-up-calgary/ → no permissions-policy
    • https://horizonheating.ca/furnaces/furnace-cleaning-calgary/ → no permissions-policy
    • https://horizonheating.ca/furnaces/carrier-furnace-repair-calgary/ → no permissions-policy
    • https://horizonheating.ca/heat-pump-installation-repair-calgary/ → no permissions-policy
  • FoundVulnerable JavaScript librariesMedium

    1 library with published vulnerabilities: jQuery 3.2.1. Whether they are exploitable depends on how the site uses them, but each has a fixed release.

    • jQuery 3.2.1 in https://horizonheating.ca/wp-content/plugins/gravityforms/js/placeholders.jquer…: CVE-2019-11358 (prototype pollution), CVE-2020-11022, CVE-2020-11023 (XSS via HTML passed to DOM methods); fixed in 3.5.0
  • NoteThird-party scripts

    Scripts run from 1 other domain without Subresource Integrity, so a compromise of any of them changes what runs on this site. (Tag managers and analytics rarely support SRI; a Content-Security-Policy that names these hosts is the usual control.)

    • www.google.com (40 script tags)
  • NoteSensitive paths in robots.txt

    robots.txt lists 2 paths that look private. robots.txt is public and does not restrict access, so it doubles as a map for anyone probing the site; those paths need real access control.

    • Disallow: /cgi-bin
    • Disallow: /wp-admin/
8 checks passed, 1 not applicable
  • OKHTTPS

    All 54 crawled pages were served over HTTPS.

  • OKClickjacking protection

    x-frame-options is set on all 54 HTML pages.

  • OKMIME sniffing protection

    x-content-type-options is set on all 54 HTML pages.

  • OKSoftware version disclosure

    The Server header names a product without a version, and there is no X-Powered-By header.

  • OKMixed content

    No HTTPS page loads a script, stylesheet, font or image over plain HTTP.

  • OKForms over HTTPS

    40 forms found, all on HTTPS pages posting to HTTPS addresses.

  • OKKeys and secrets in page code

    No API keys, tokens or private keys were found in the sampled HTML and scripts.

  • OKExposed files and listings

    None of the crawled URLs is a configuration file, backup, dump, repository folder or directory listing.

  • Not applicableCookie flags

    The crawl set no cookies, so there are no cookie flags to check.

A passive review of what the crawl recorded: response headers, page and script contents and the URLs it found. It does not probe the site, test TLS settings or look for files that were not linked. Generated automatically; verify each finding against your own site before acting on it.

Earlier scans of horizonheating.ca

No other scans of this site yet.

Sites scoring near horizonheating.ca

Their neighbours in the SEO rank table, which orders every scanned site by health score.

DR is Ahrefs Domain Rating (0-100, backlink strength), used under its Domain Rating License.

This report was produced by the DIY SEO Hub Site Spider crawling horizonheating.ca from its pages as published, the way a search engine does. It shows summary figures only.

Own horizonheating.ca?

  • Claim this site to manage the listing, hide it from the public lists, or keep it.
  • Want it gone instead? Ask through the support form or e-mail support@diyseohub.com, naming horizonheating.ca. Removal needs no account and no proof of purchase.