Site scan

repnation.ca

An automated scan of the homepage, the sitemap and a handful of key pages. Everything below came from actual fetches of this site - nothing here is estimated, and what a scan cannot see is named rather than guessed at.

Overall

32/100

Poor · fetched https://repnation.ca/

Why the score is capped

  • Score capped: indexable junk pages are in the sitemap.
  • Score capped: the homepage and 5 main nav pages have no H1.
  • Score capped: most key page titles have no city or service, only the brand.
  • Score capped: 2 locations (Strathmore and Calgary) but no dedicated page for Strathmore and Calgary.
  • Score capped: there is no LocalBusiness-type schema with name, address and phone.
  • 5 hard fails cap the overall at 32 (40, minus 2 for each fail after the first).
Time to first byte
983 ms
HTML transferred
41 KB
What the scan found

Technical

33/100 · Poor
  • FAIL: 20 junk URLs in the XML sitemap: old / copy page (/home-old/); cart / checkout / account (/my-account/, /cart/, /checkout/); thank-you page (/thank-you/); coming-soon stub (/dashboard-coming-soon/); email-signature / dashboard stub (/email-signature/); default post (/2026/05/06/hello-world/); lorem ipsum (/testimonials/perspiciatis-esse-molestiae-vel-qui/, /testimonials/perspiciatis-esse-molestiae-vel-qui-2/, /testimonials/perspiciatis-esse-molestiae-vel-qui-3/ and 3 more); testimonial / review post type (/reviews/the-perfect-place-to-train/, /reviews/clean-modern-and-welcoming/, /reviews/a-gym-that-keeps-me-motivated/ and 2 more); uncategorized archive (/category/uncategorized/). The sitemap index also lists author archives (/author-sitemap.xml). Fetched and confirmed indexable (no noindex): /2026/05/06/hello-world/, /home-old/ (18 words), /email-signature/ (19 words), /dashboard-coming-soon/.
  • The homepage loads 35 scripts and 38 stylesheets (258 KB of HTML before any of them). Over 40 files is page-builder weight.
  • Server took 983 ms to respond (first byte). Aim under 800 ms.
  • 32 render-blocking stylesheets in <head> - nothing paints until they load.
  • 2 blocking scripts in <head> with no async or defer.
  • 2 viewport meta tags on the homepage; there should be one.
  • A Canadian business declared as US English (lang="en-US", og:locale en_US); en-CA fits.
  • The WordPress comments feed is advertised in <head> (/comments/feed/) on a site with no comments.

How this was measured - The homepage response, robots.txt, the XML sitemap (index plus up to five child sitemaps), and a sample of up to four junk URLs fetched to read their robots meta and X-Robots-Tag. Junk is judged by URL pattern (default posts, -old copies, author and tag archives, uncategorized archives, cart/checkout/account, thank-you pages, coming-soon and email-signature stubs, lorem ipsum and testimonial post types). A sitemap the scan could not fetch is inconclusive, not a pass. Page weight: One HTML response (plus a HEAD probe when the GET loses Content-Encoding). Transfer size is the compressed weight when Content-Encoding is visible (or a gzip estimate when that size is unknown). The uncompressed finding only fires when Content-Encoding is visible and is not gzip/br/zstd — platforms that strip encoding after decompress are treated as inconclusive, not as a fail. Uncompressed markup is reported alongside and only flagged when extreme. Scripts, images and CSS linked from the page are not downloaded.

On-page

28/100 · Poor
  • FAIL: No usable H1 on 6 of 7 pages checked: homepage (31 H2s, no H1), /contact-us/ (8 H2s, no H1), /about/ (13 H2s, no H1), /our-locations/ (10 H2s, no H1), /membership-plans/ (16 H2s, no H1), /facilities/ (17 H2s, no H1).
  • FAIL: 6 of 6 key page titles name no city and no service once the brand is removed: "Contact Us - RepNation", "About - RepNation", "Our Locations - RepNation", "Membership Plans - RepNation" and 2 more.
  • 35 of 36 images on the homepage have empty or missing alt text.
  • Thin key pages (under 150 words): /contact-us/ (126).

How this was measured - The homepage plus up to six key pages linked from its navigation (contact, about, services, locations, pricing or membership, then city or service pages). Each is checked for exactly one H1 that is more than the brand name, a title that still names a city or a service once the brand is removed, and word count. Image alt text is read on the homepage. Pages that could not be fetched are left out rather than counted as passing.

Local

19/100 · Poor
  • FAIL: 2 locations (Strathmore and Calgary) and no dedicated city page for Strathmore and Calgary; /our-locations/ combines them on one page.
  • FAIL: No LocalBusiness-type schema (ExerciseGym, Plumber, Dentist...); only WebPage, ImageObject, BreadcrumbList, WebSite, Organization.
  • FAIL: Schema is missing telephone (the phone is visible on the page but not in schema) and street address (shown on the page, not in schema).
  • No street address on the site for Strathmore (of 2 locations).
  • Schema is missing openingHours, geo and sameAs.
  • No opening hours on the homepage or key pages.
  • No Google Maps link or embed, a common local trust and relevance signal.

How this was measured - Cities are read from visible text on the fetched pages (addresses, '<City> location', 'locations in ...', service-area statements) and from schema addressLocality and areaServed. A dedicated city page means a URL in the sitemap or navigation whose path names the city (product, blog and archive URLs do not count). Schema is every JSON-LD block on the homepage; NAP means name, telephone, and either a matching PostalAddress street (when a street is visible on the pages) or areaServed / locality on a LocalBusiness-type node when no street is shown (service-area-only). Storefronts with a visible street still need that street in schema. This scan cannot see a Google Business Profile.

Mobilesecondary

100/100 · Solid

Conversionsecondary

80/100 · Solid
  • No online booking or scheduling link, so every lead waits on a callback.

How this was measured - One HTML response. A <form> on that page scores highest for the enquiry path; same-site contact, booking, quote or referral links, and recognised booking providers, count as a pass but the linked page itself is not fetched. Tel and mailto links are read from hrefs only.

Privacy & consentsecondary

100/100 · Solid

How this was measured - Checked by fetching the page once, server-side, without running JavaScript: which tracking scripts are in the markup, whether a consent tool is present and actually gating them, which cookies the server set on that first response, and which policy pages are linked. Cookies set later by JavaScript are not visible to this scan. These are observations about a single response, not legal advice.

What is already fine

Table stakes. They are reported here and carry almost no weight, so they cannot lift the score past a cap.

  • XML sitemap found (/sitemap_index.xml, 30 URLs read).
  • robots.txt present.
  • Served over HTTPS.
  • HSTS header set.
  • HTML is compressed (gzip).
  • Canonical tag present.
  • Homepage is indexable (index, follow).
  • JSON-LD present (WebPage, ReadAction, ImageObject, BreadcrumbList, ListItem).
  • <html lang="en-US">.
  • SEO plugin in place (Yoast SEO).
Every check
Show every check (54) with weights and evidence
CheckResultWeightWhat was found
Index hygiene (junk URLs)technical · hard failFail2420 junk URLs in the XML sitemap: old / copy page (/home-old/); cart / checkout / account (/my-account/, /cart/, /checkout/); thank-you page (/thank-you/); coming-soon stub (/dashboard-coming-soon/); email-signature / dashboard stub (/email-signature/); default post (/2026/05/06/hello-world/); lorem ipsum (/testimonials/perspiciatis-esse-molestiae-vel-qui/, /testimonials/perspiciatis-esse-molestiae-vel-qui-2/, /testimonials/perspiciatis-esse-molestiae-vel-qui-3/ and 3 more); testimonial / review post type (/reviews/the-perfect-place-to-train/, /reviews/clean-modern-and-welcoming/, /reviews/a-gym-that-keeps-me-motivated/ and 2 more); uncategorized archive (/category/uncategorized/). The sitemap index also lists author archives (/author-sitemap.xml). Fetched and confirmed indexable (no noindex): /2026/05/06/hello-world/, /home-old/ (18 words), /email-signature/ (19 words), /dashboard-coming-soon/.
  • https://repnation.ca/home-old/ [old / copy page; in sitemap]
  • https://repnation.ca/my-account/ [cart / checkout / account; in sitemap]
  • https://repnation.ca/cart/ [cart / checkout / account; in sitemap]
  • https://repnation.ca/thank-you/ [thank-you page; in sitemap]
  • https://repnation.ca/dashboard-coming-soon/ [coming-soon stub; in sitemap]
  • https://repnation.ca/checkout/ [cart / checkout / account; in sitemap]
  • https://repnation.ca/email-signature/ [email-signature / dashboard stub; in sitemap]
  • https://repnation.ca/2026/05/06/hello-world/ [default post; in sitemap]
  • https://repnation.ca/testimonials/perspiciatis-esse-molestiae-vel-qui/ [lorem ipsum; in sitemap]
  • https://repnation.ca/testimonials/perspiciatis-esse-molestiae-vel-qui-2/ [lorem ipsum; in sitemap]
  • https://repnation.ca/testimonials/perspiciatis-esse-molestiae-vel-qui-3/ [lorem ipsum; in sitemap]
  • https://repnation.ca/testimonials/perspiciatis-esse-molestiae-vel-qui-4/ [lorem ipsum; in sitemap]
  • https://repnation.ca/testimonials/perspiciatis-esse-molestiae-vel-qui-5/ [lorem ipsum; in sitemap]
  • https://repnation.ca/testimonials/perspiciatis-esse-molestiae-vel-qui-6/ [lorem ipsum; in sitemap]
  • https://repnation.ca/reviews/the-perfect-place-to-train/ [testimonial / review post type; in sitemap]
  • https://repnation.ca/reviews/clean-modern-and-welcoming/ [testimonial / review post type; in sitemap]
  • https://repnation.ca/reviews/a-gym-that-keeps-me-motivated/ [testimonial / review post type; in sitemap]
  • https://repnation.ca/reviews/great-equipment-and-friendly-staff/ [testimonial / review post type; in sitemap]
  • https://repnation.ca/reviews/clean-modern-and-welcoming-2/ [testimonial / review post type; in sitemap]
  • https://repnation.ca/category/uncategorized/ [uncategorized archive; in sitemap]
XML sitemaptechnical · floorPass2XML sitemap found (/sitemap_index.xml, 30 URLs read).
  • https://repnation.ca/sitemap_index.xml
robots.txttechnical · floorPass1robots.txt present.
HTTPStechnical · floorPass2Served over HTTPS.
HSTStechnical · floorPass1HSTS header set.
Compressiontechnical · floorPass2HTML is compressed (gzip).
Canonical tagtechnical · floorPass2Canonical tag present.
Homepage indexabletechnical · floorPass2Homepage is indexable (index, follow).
Server response timetechnical · issueFail3Server took 983 ms to respond (first byte). Aim under 800 ms.
HTML transfer sizetechnical · issuePass4HTML is 41 KB transferred, 258 KB uncompressed. Under 100 KB transferred is healthy.
Uncompressed markuptechnical · issuePass2Uncompressed HTML is 258 KB. Over 1 MB of markup is extreme even when the transfer compresses well.
Scripts and stylesheetstechnical · issueFail5The homepage loads 35 scripts and 38 stylesheets (258 KB of HTML before any of them). Over 40 files is page-builder weight.
Render-blocking CSStechnical · issueFail332 render-blocking stylesheets in <head> - nothing paints until they load.
Blocking scriptstechnical · issueFail32 blocking scripts in <head> with no async or defer.
Image dimensionstechnical · issuePass21 of 36 images have no width/height, so the page shifts as they load.
Single viewport tagtechnical · minorFail12 viewport meta tags on the homepage; there should be one.
Language / localetechnical · minorFail1A Canadian business declared as US English (lang="en-US", og:locale en_US); en-CA fits.
Comments feedtechnical · minorFail1The WordPress comments feed is advertised in <head> (/comments/feed/) on a site with no comments.
One real H1 per key pageonpage · hard failFail22No usable H1 on 6 of 7 pages checked: homepage (31 H2s, no H1), /contact-us/ (8 H2s, no H1), /about/ (13 H2s, no H1), /our-locations/ (10 H2s, no H1), /membership-plans/ (16 H2s, no H1), /facilities/ (17 H2s, no H1).
  • https://repnation.ca/ [H1: none]
  • https://repnation.ca/contact-us/ [H1: none]
  • https://repnation.ca/about/ [H1: none]
  • https://repnation.ca/our-locations/ [H1: none]
  • https://repnation.ca/membership-plans/ [H1: none]
  • https://repnation.ca/facilities/ [H1: none]
  • https://repnation.ca/sign-up/ [H1: "tell Us about yourself"]
No duplicate H1sonpage · minorPass2No page checked has more than one H1.
Titles name a city or serviceonpage · hard failFail166 of 6 key page titles name no city and no service once the brand is removed: "Contact Us - RepNation", "About - RepNation", "Our Locations - RepNation", "Membership Plans - RepNation" and 2 more.
  • https://repnation.ca/contact-us/ [title: "Contact Us - RepNation"; brand-only]
  • https://repnation.ca/about/ [title: "About - RepNation"; brand-only]
  • https://repnation.ca/our-locations/ [title: "Our Locations - RepNation"; brand-only]
  • https://repnation.ca/membership-plans/ [title: "Membership Plans - RepNation"; brand-only]
  • https://repnation.ca/facilities/ [title: "Facilities - RepNation"; brand-only]
  • https://repnation.ca/sign-up/ [title: "Sign Up - RepNation"; brand-only]
Image alt textonpage · issueFail1035 of 36 images on the homepage have empty or missing alt text.
Homepage title lengthonpage · issuePass3Title tag is 36 characters ("RepNation Fitness Center - RepNation"). 15-65 reads best in results.
Meta descriptiononpage · issuePass3Meta description is 147 characters. 70-165 avoids truncation.
Content depth on key pagesonpage · issueFail4Thin key pages (under 150 words): /contact-us/ (126).
  • https://repnation.ca/ [1439 words]
  • https://repnation.ca/contact-us/ [126 words]
  • https://repnation.ca/about/ [366 words]
  • https://repnation.ca/our-locations/ [226 words]
  • https://repnation.ca/membership-plans/ [321 words]
  • https://repnation.ca/facilities/ [303 words]
  • https://repnation.ca/sign-up/ [574 words]
Structured data presentonpage · floorPass2JSON-LD present (WebPage, ReadAction, ImageObject, BreadcrumbList, ListItem).
lang attributeonpage · floorPass1<html lang="en-US">.
Dedicated city / location pageslocal · hard failFail222 locations (Strathmore and Calgary) and no dedicated city page for Strathmore and Calgary; /our-locations/ combines them on one page.
  • Strathmore -> no dedicated URL
  • Calgary -> no dedicated URL
Street address for every locationlocal · issueFail8No street address on the site for Strathmore (of 2 locations).
  • Strathmore: no street address
  • Calgary: street address found
LocalBusiness-type schemalocal · hard failFail14No LocalBusiness-type schema (ExerciseGym, Plumber, Dentist...); only WebPage, ImageObject, BreadcrumbList, WebSite, Organization.
  • WebPage
  • ReadAction
  • ImageObject
  • BreadcrumbList
  • ListItem
  • WebSite
  • SearchAction
  • EntryPoint
  • PropertyValueSpecification
  • Organization
NAP inside schemalocal · hard failFail12Schema is missing telephone (the phone is visible on the page but not in schema) and street address (shown on the page, not in schema).
  • visible phones: 8259179737
  • visible street: yes
  • schema node: name="RepNation" tel="" street="" locality="" areaServed=""
Hours, geo and sameAs in schemalocal · issueFail4Schema is missing openingHours, geo and sameAs.
Phone and address visible on the sitelocal · issuePass5Phone and street address are visible on the page.
Tap-to-call linklocal · issuePass3Tap-to-call tel: link present.
Opening hours on the pagelocal · issueFail3No opening hours on the homepage or key pages.
Map link or embedlocal · minorFail2No Google Maps link or embed, a common local trust and relevance signal.
Viewport tagmobile · issuePass1Viewport tag: passed.
Pinch-zoom allowedmobile · issuePass1Pinch-zoom allowed: passed.
Responsive imagesmobile · issuePass1Responsive images: passed.
No Not Secure warningmobile · issuePass1No Not Secure warning: passed.
Clickable phonecvr · issuePass1Clickable phone: passed.
Enquiry pathcvr · issuePass1Enquiry form present on the page.
Online bookingcvr · issueFail1No online booking or scheduling link, so every lead waits on a callback.
Any way to make contactcvr · issuePass1Any way to make contact: passed.
Share previewcvr · issuePass1Share preview: passed.
Privacy check 1privacy · issuePass1Privacy check 1: passed.
Privacy check 2privacy · issuePass1Privacy check 2: passed.
Privacy check 3privacy · issuePass1Privacy check 3: passed.
Privacy check 4privacy · issuePass1Privacy check 4: passed.
Privacy check 5privacy · issuePass1Privacy check 5: passed.
Privacy check 6privacy · issuePass1Privacy check 6: passed.
Privacy check 7privacy · issuePass1Privacy check 7: passed.
Privacy check 8privacy · issuePass1Privacy check 8: passed.
Privacy check 9privacy · issuePass1Privacy check 9: passed.
What this scan cannot see

About twenty requests: the homepage, robots.txt, the sitemap, up to six key pages and a few sample URLs. It does not measure what real visitors experience on their own phones, it cannot check tap targets or anything that depends on rendering, and it knows nothing about a Google Business Profile, review velocity, citations or search positions. Those often decide whether a local business gets calls, and none of them are in the numbers above.

Compare

Side-by-side with another host — same checker, hard-fail deltas only, no ranking language. Curated live comparisons

If you want the rest

The half a scan cannot reach.

A thirty-minute call covers what this page could not: the profile, the pack, what the site actually ranks for, and where enquiries are being lost between the page and the phone. No deck and no pitch - if there is nothing worth fixing we say so.

Bring your site. Leave with a plan.

A free 30-minute call with the founder. We review your site and your local market, then tell you straight what will bring in more work.

  • A read of your current site and your local market
  • A straight answer: a new site, SEO, or nothing yet
  • The audit doc before the call, not after
JJ Wardorx, founder of WARDORXYou talk to JJ WardorxFounder, WARDORX · CalgaryMeet the team

Book a call · 30 min

Live availability

Times shown in your local zone.

Free 30-minute call

Book your free site review

You talk to the founder. We look at your current site and your market, then tell you straight what would bring in more work. No obligation.

Read our Google reviews

Choose your field

What kind of business do you run?

Pick yours to see how we build the site and the search work for it.