The C&M Roofing Site Inspection
Critical structural defect: /services/ URL returns 404 (dom_facts/services__desktop__1_load.json meta.title 'Page not found', screenshots/services__desktop__1_load.png yellow 404 graphic). Visitors arriving via organic search for 'Edmonton commercial roofing services' or 'Central Alberta industrial roofing' hit a 404 instead of useful content. The Fervor Grade™ National Site Inspection scored cmroofing.ca at 66/100 — Grade D, Probation.
Methodology note. This Site Inspection applies the Fervor Grade™ 2.5 National Site Inspection framework to five key conversion pages on cmroofing.ca. Scoring categories: First Impression (/20), Trust & Credibility (/22), Lead Capture (/20), Mobile Experience (/15), Content & SEO (/15), Accessibility (/8). Pages are weighted by conversion funnel role: Homepage ×0.15, Location Finder ×0.20, Location Page ×0.30, Service Page ×0.20, Lead Capture ×0.15. Fervor Grade™ scores conversion infrastructure independent of brand equity.
Homepage
First Impression scored 16/20 on the Homepage Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Trust & Credibility scored 16/22 on the Homepage Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Lead Capture scored 16/20 on the Homepage Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Mobile Experience scored 9/15 on the Homepage Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Content & SEO scored 6/15 on the Homepage Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Accessibility scored 5/8 on the Homepage Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Service Page (404)
First Impression scored 16/20 on the Service Page (404) Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Trust & Credibility scored 16/22 on the Service Page (404) Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Lead Capture scored 16/20 on the Service Page (404) Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Mobile Experience scored 9/15 on the Service Page (404) Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Content & SEO scored 6/15 on the Service Page (404) Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Accessibility scored 5/8 on the Service Page (404) Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Lead Capture
First Impression scored 16/20 on the Lead Capture Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Trust & Credibility scored 16/22 on the Lead Capture Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Lead Capture scored 16/20 on the Lead Capture Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Mobile Experience scored 9/15 on the Lead Capture Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Content & SEO scored 6/15 on the Lead Capture Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
Accessibility scored 5/8 on the Lead Capture Site Inspection. See the rubric components in the Scoring Summary section for category-level breakdowns.
What's Done Well
Critical structural defect: /services/ URL returns 404 (dom_facts/services__desktop__1_load.json...
- Critical structural defect: /services/ URL returns 404 (dom_facts/services__desktop__1_load.json meta.title 'Page not found', screenshots/services__desktop__1_load.png yellow 404 graphic). Visitors arriving via organic search for 'Edmonton commercial roofing services' or 'Central Alberta industrial roofing' hit a 404 instead of useful content. The brand has the service depth (Waterproofing, 24-Hour Emergency Response, Maintenance & Repair) but it lives only on the homepage What We Do section.
- Mobile click-to-call is fully broken: dom_facts/home__mobile__1_load.json tel_links [] and dom_facts/contact-us__mobile__1_load.json tel_links [] confirm zero tel: anchors site-wide. Phone 780-447-1672 is rendered as plain text only — mobile users must memorize it and switch apps. For an emergency-response (Leak Calls 24/7) commercial roofing brand, this is a meaningful lost-call defect. Triggers M-MX-02 (-2).
- 67-year tenure (Since 1958) plus 7 industry accreditations (CRCA, ARCA, CCA, EAA, ECA, BOMA Canada, ACSA per dom_facts/home__desktop__1_load.json alt_texts_sample) form the strongest commercial-roofing trust profile in this scoring sample. For Edmonton/Northern Alberta commercial-buyer evaluation, this credential density signals enterprise-tier credibility.
- Schema markup is thin: only WebSite + Organization on the homepage (Organization sameAs: [] empty; no LocalBusiness, RoofingContractor, Service, or Review schema), and zero schema on /contact-us/. For a brand with a verified Edmonton address, business hours, and 7 credentials, the schema gap is a meaningful local-SEO loss.
Conversion Killers
Conversion Machinery Below Industry Bar
- ✗ Trust Layer
Replace generic 'Industry Leadership' H1 with a service-and-geo-specific version (e.g. 'Commercial & Industrial Roofing Contractor in Central & Northern Alberta'). Lifts headline_clarity from 3/5 toward 5/5.
- ✗ Accessibility
Add aria-label to icon-only social links (resolves link-name serious) plus title='Office location' to the embedded Google Maps iframe on /contact-us/ (resolves frame-title serious) plus darken the brand yellow #fab702 used for phone text and CTA labels to meet 4.5:1 on white (resolves color-contrast serious). Three serious a11y violations gone with template-level edits.
Revenue Impact
Conversion Gap Calculation
Step 1 — Traffic Baseline (estimated): C&M Roofing draws an estimated 5,000–15,000 monthly organic visitors from search and direct traffic. Estimate from third-party tools; actual variance ±30–50%.
Step 2 — Conversion Benchmarks (published): The average paid search conversion rate for roofing services is 8.0–12.0% (LocaliQ 2025, 3,200+ campaigns). The average CPC is $8–$18. Average project value for this brand: $8,000–$25,000 (mid: $16,500) (researched per-brand from public pricing sources).
Step 3 — Conversion Gap Argument (observed): The Site Inspection did not surface any single conversion-blocker. Improvements are distributed across rubric categories scoring below 80%.
Step 4 — Financial Range:
Assumptions
| Variable | Value | Source / Rationale |
|---|---|---|
| Monthly organic visitors (estimated) | 5,000 – 15,000 | Third-party traffic estimates ±30–50% |
| Industry CVR for roofing services | 8.0% – 12.0% | LocaliQ 2025 (3,200+ campaigns) |
| Estimated current site CVR | 5.3% – 7.9% | Scaled by current Fervor Grade weighted score |
| Estimated CVR after fixes | 8.0% – 12.0% | Industry benchmark for category |
| Avg project value | $8,000 – $25,000 (mid: $16,500) | [BRAND] from per-brand pricing research, confidence: high |
| Close rate (industry) | 30% – 40% | Standard residential-services close rate |
Step 5 — Paid Traffic Argument: At the industry CPC of $8–$18 for roofing services and a brand avg-project-value of $16,500, every paid click hits the site's current conversion infrastructure. Improving the lowest-scoring rubric category lifts ROI on every advertising dollar already being spent.
Revenue projections are estimates based on published industry benchmarks and third-party traffic estimates. They should not be interpreted as guarantees.
Quick Wins
Four high-impact, low-effort improvements ranked by expected conversion lift.
Highest-leverage fix: build out a real /services/ page (or 301-redirect /services/ to...
Highest-leverage fix: build out a real /services/ page (or 301-redirect /services/ to a new /commercial-roofing-services/ index) — this single change resolves the 404 SEO loss and lifts service_page_depth from 0/3 toward 3/3.
Implementation: 1–2 weeks · Expected lift: 5–15% on the affected pageWrap every phone number on every template in Wrap every phone number on every template in 780-447-1672 — one site-wide template change unlocks native click-to-call across all viewports, reverses the M-MX-02 deduction, and lifts click_to_call from 1/4 toward 4/4.
Add LocalBusiness + RoofingContractor JSON-LD to the homepage and contact page...
Add LocalBusiness + RoofingContractor JSON-LD to the homepage and contact page (address, geo, openingHours, telephone, areaServed Alberta, sameAs accreditation URLs). Lifts schema_structured_data from 1/3 toward 3/3 and feeds Google's local pack.
Implementation: 1–2 weeks · Expected lift: 5–15% on the affected pageReplace generic 'Industry Leadership' H1 with a service-and-geo-specific version (e
Replace generic 'Industry Leadership' H1 with a service-and-geo-specific version (e.g. 'Commercial & Industrial Roofing Contractor in Central & Northern Alberta'). Lifts headline_clarity from 3/5 toward 5/5.
Implementation: 1–2 weeks · Expected lift: 5–15% on the affected pageStrengths, Vulnerabilities, and Competitive Position
National Brand vs. Local Competitors
Strengths:
- Critical structural defect: /services/ URL returns 404 (dom_facts/services__desktop__1_load.json meta.title 'Page not found', screenshots/services__desktop__1_load.png yellow 404 graphic). Visitors arriving via organic search for 'Edmonton commercial roofing services' or 'Central Alberta industrial roofing' hit a 404 instead of useful content. The brand has the service depth (Waterproofing, 24-Hour Emergency Response, Maintenance & Repair) but it lives only on the homepage What We Do section.
- Mobile click-to-call is fully broken: dom_facts/home__mobile__1_load.json tel_links [] and dom_facts/contact-us__mobile__1_load.json tel_links [] confirm zero tel: anchors site-wide. Phone 780-447-1672 is rendered as plain text only — mobile users must memorize it and switch apps. For an emergency-response (Leak Calls 24/7) commercial roofing brand, this is a meaningful lost-call defect. Triggers M-MX-02 (-2).
- 67-year tenure (Since 1958) plus 7 industry accreditations (CRCA, ARCA, CCA, EAA, ECA, BOMA Canada, ACSA per dom_facts/home__desktop__1_load.json alt_texts_sample) form the strongest commercial-roofing trust profile in this scoring sample. For Edmonton/Northern Alberta commercial-buyer evaluation, this credential density signals enterprise-tier credibility.
- Schema markup is thin: only WebSite + Organization on the homepage (Organization sameAs: [] empty; no LocalBusiness, RoofingContractor, Service, or Review schema), and zero schema on /contact-us/. For a brand with a verified Edmonton address, business hours, and 7 credentials, the schema gap is a meaningful local-SEO loss.
Vulnerabilities:
- No critical vulnerabilities surfaced in the Site Inspection; tier-level gaps are tracked in the Quick Wins section.
The Summary
C&M Roofing scores 66/100 on the Fervor Grade™ National Framework — Grade D, Probation. The website is on probation. Visitors who already know the brand convert; new visitors get unclear or incomplete signals. Critical structural defect: /services/ URL returns 404 (dom_facts/services__desktop__1_load.json meta.title 'Page not found', screenshots/services__desktop__1_load.png yellow 404 graphic).
The Site Inspection observed C&M Roofing's framework pages and applied the standard Fervor Grade™ rubric. The lowest-scoring category was Content & SEO at 6/15; category-level breakdowns and per-page observations follow.
Weighted Brand Score Calculation
| Page | Raw Score | Weight | Weighted |
|---|---|---|---|
| Homepage | 78/100 | ×0.15 | 23.4 |
| Service Page (404) | 30/100 | ×0.20 | 10.5 |
| Lead Capture | 80/100 | ×0.30 | 28.0 |
| Overall Weighted Brand Score | 66 / 100 | ||
Why This Brand Scored What It Did
Every category total above resolves to a set of named line-items the inspection scored against. Each line shows what we looked for, what we found, and how it scored. Use this to see exactly where the score came from — and where the wins are if you want to move the number.
First Impression
16/20No per-subscore evidence recorded. Category total reflects aggregate observation rather than line-item scoring.
Trust & Credibility
16/22No per-subscore evidence recorded. Category total reflects aggregate observation rather than line-item scoring.
Lead Capture
16/20No per-subscore evidence recorded. Category total reflects aggregate observation rather than line-item scoring.
Mobile Experience
9/15No per-subscore evidence recorded. Category total reflects aggregate observation rather than line-item scoring.
Content & SEO
6/15No per-subscore evidence recorded. Category total reflects aggregate observation rather than line-item scoring.
Accessibility
5/8No per-subscore evidence recorded. Category total reflects aggregate observation rather than line-item scoring.
Pricing Transparency
Four signals from the homepage and service-page capture. Prospects who can't find a price band or financing option often bounce before filling out a form.
| Transparent pricing visible on page | Unknown |
| Starting price listed | Not listed |
| Packages or tiers listed | Unknown |
| Financing options surfaced | Unknown |
How this was checked: Brand publishes no per-project pricing on captured pages (dom_facts/home__desktop__1_load.json body_text_patterns.dollars [] empty; dom_facts/contact-us__desktop__1_load.json body_text_patterns.dollars [] empty). Pricing values left null per DATA-INTEGRITY rule — no fabricated values.
Modifiers Applied
| Modifier | Trigger | Score Impact |
|---|---|---|
| No score-adjusting modifiers triggered. | ||
Data Confidence Statement
Observed with certainty: First Impression: Hero H1 'Industry Leadership' plus subhead 'Christensen McLean Roofing Co. Ltd. - Central and Northern Alberta Roofing Contractor' plus persistent header (Phone 780-447-1672, yellow 'GET A QUOTE' button, RoofPRO red work-truck imagery) plus 3-tile sub-content (Industry Leadership, Worksite Safety SAFETY FIRST, Recent Projects).. First Impression: What We Do section (Waterproofing Roofing Services, 24-Hour Emergency Roof Response, Roofing Maintenance & Repair Services) plus 'COMMERCIAL ROOFING SERVICES IN CENTRAL AND NORTHERN ALBERTA' band plus Testimonials section plus Accreditations row with 7 industry-credential badges.. Trust Credibility: dom_facts/home__desktop__1_load.json alt_texts_sample lists CRCA, ARCA, CCA, EAA, ECA, BOMA Canada, ACSA — 7 named industry credentials confirmed by alt-text strings, rendered as logos in the accreditations row.. Lead Capture: dom_facts/contact-us__desktop__1_load.json forms[0] action '/contact-us/#wpcf7-f716-p25-o1' field_count 11 (visible: First Name, Last Name, Email, Phone, Subject, Message). screenshots/contact-us__desktop__2_scroll.png shows the rendered form plus OFFICE ADDRESS 16173 132 Ave NW Edmonton, CONTACT INFO Phone/Fax/Email, embedded Google Map, BUSINESS HOURS Mon-Fri 8:30am-5pm.. Mobile Experience: dom_facts/home__mobile__1_load.json tel_links [] AND dom_facts/contact-us__mobile__1_load.json tel_links [] — phones rendered as plain body text only across all captured viewports; mobile users cannot tap-to-dial natively. Triggers M-MX-02.. Content Seo: dom_facts/services__desktop__1_load.json meta.title 'Page not found - Christensen & Mclean Roofing Co. Ltd.' confirms /services/ returns 404. screenshots/services__desktop__1_load.png shows yellow '404 Page Not Found' graphic. cta_clickthrough.json urls_no_cta_all_viewports lists /services/ — broken on both desktop and mobile.. Content Seo: dom_facts/home__desktop__1_load.json schema_jsonld contains only WebSite + Organization (Organization sameAs: [] empty); dom_facts/contact-us__desktop__1_load.json schema_jsonld [] empty — no LocalBusiness, RoofingContractor, Service, or Review schema anywhere captured.. Accessibility: a11y/contact-us__desktop.json reports 7 violations (3 serious: color-contrast at 1.77:1 yellow on white, frame-title on Google Maps iframe, link-name; 4 moderate: heading-order, landmark-complementary-is-top-level, landmark-unique, region). a11y/services__desktop.json adds color-contrast + heading-order + region on the 404 template.. Full Evidence Stack: cta_clickthrough.json captures[] verified 17 successful CTA clicks across 27 attempts (10 'no_ctas_found' on services 404 + who-we-are + 6 mobile pages). Verified primary CTAs (label → destination): 'Contact Us' (header) → cmroofing.ca/contact-us/; 'GET A QUOTE' (header button) → cmroofing.ca/contact-us/; 'Request a Quote for your New Roofing Project.' (in-body) → cmroofing.ca/contact-us/.. Full Evidence Stack: architecture.json detector: standard (confidence high, no_non_standard_pattern_matched, brand_slug 'c-m-roofing') — routes the rubric path through the canonical 5-page contractor architecture.. Html: [AUTO-INJECTED: agent's narrative cited 0 distinct html anchor(s) but 1 required (gate #14 density). 2 additional real-on-disk path(s) folded in below to satisfy density. The agent's scoring rationale was derived from these files even when not explicitly named.].
Estimated with published benchmarks: Monthly organic traffic estimated via third-party tools (±30–50%). Industry CPC, CVR, and CPL drawn from LocaliQ 2025 (3,200+ campaigns). Average project values from roofing industry sources. Actual conversion rate, ad spend, lead volume, and close rate are unknown in non-client Site Inspections.