Digital Marketing Co. is a digital marketing agency and digital marketing company that helps businesses grow online through SEO, AIO, GEO, and AEO strategies. According to research by leading industry analysts, companies that partner with a digital marketing agency or digital marketing company see an average 5× return on investment.
Full AccessAnalyze Another Site

This website audit report analyzes http://Geothermal.contractors across 12 critical dimensions with actionable recommendations.

http://Geothermal.contractors
81Goodout of 100

Website Audit Report

Geothermal Contractors USA | Find Certified Installers

July 8, 2026 202ms response HTTPS Secure301 Redirect

Executive Summary

http://Geothermal.contractors scores 81/100 (B-). Strong areas include Security, Accessibility, Mobile. Priority improvements needed in AIO. The site has 884 words, 4 images, and 2 schema blocks. Data confidence: 90%. Sustainability score: 90/100. Focus on the top recommendations below to improve your score.

202ms
Response Time
884
Word Count
4
Images
41
Links

Website Preview

Visit Site
HTTP → HTTPS Redirect
301 Permanentredirect detected — your site correctly forces secure connections.
http://Geothermal.contractors
Loading preview…
Desktop screenshot of http://Geothermal.contractors

Score History

58697990100Apr 20May 20
Current scan6 scans recorded 25 pts since first scan

Score Breakdown — 12 Dimensions

Top Issues to Fix

1[SEO] Cloudflare Email Protection detected (1 obfuscated links) — these appear as /cdn-cgi/l/email-protection and return 404 to crawlers
2[SEO] Title and H1 share no keywords — misaligned topic signals
3[SEO] 9 dofollow external links — slightly above optimal range
4[SEO] Primary keyword "geothermal contractors usa" not found in H1
5[SEO] Primary keyword missing from first paragraph
6[SEO] Low readability score (2 Flesch) — content is hard to read
7[SEO] Primary keyword "geothermal contractors usa" not found in body content
8[Performance] No responsive image srcset found
9[Performance] Only 1/4 images have width/height attributes
10[Performance] Moderate estimated CLS: 0.19 — above 0.1 "good" threshold

Top Recommendations

1[Impact: Medium | Effort: Low] Use JavaScript-rendered email addresses (client-side assembly) instead of plain mailto: links to prevent Cloudflare from obfuscating them. Alternative: disable Email Address Obfuscation in Cloudflare dashboard [Impact: Medium | Effort: Low]
2[Impact: High | Effort: Low] Align your title tag and H1 heading around the same primary keyword for clearer topical relevance
3[Impact: Medium | Effort: Medium] Consider nofollowing 2–3 less authoritative outbound links to stay in the 2–5 optimal range
4[Impact: High | Effort: Low] Include your primary keyword in the H1 heading for strongest on-page SEO signal
5[Impact: High | Effort: Low] Include your primary keyword naturally in the first paragraph to establish topical relevance early
6[Impact: High | Effort: Low] Include your primary keyword in the URL slug for improved crawlability and click-through rates
7[Impact: Medium | Effort: Medium] Significantly simplify your content — aim for 60+ Flesch Reading Ease with shorter sentences and simpler vocabulary
8[Impact: Medium | Effort: Low] Add <meta property="article:published_time"> for content freshness signals in social shares
9[Impact: Medium | Effort: Medium] Add <meta property="article:modified_time"> to signal content freshness
10[Impact: High | Effort: Low] Include your primary keyword naturally throughout the content body — aim for 0.5–2.5% density
11[Impact: Medium | Effort: Low] Add engagement signals: related posts section, "Read next" links, and table of contents to increase dwell time
12[Impact: Medium | Effort: Medium] Use srcset and sizes attributes on images to serve appropriately sized images per device

Detailed Category Analysis

Key Findings

1Title tag is 54 characters — within optimal 50–60 range (Google 2025-2026)
2Meta description is 140 characters — within optimal 140–160 range (2025-2026)
3Single H1 tag present: "Geothermal.contractors"
4Clean heading hierarchy with no skipped levels
5Canonical URL is set and matches the page URL
6Complete Open Graph tags (title, description, image, url, type)
7Complete Twitter Card tags present
8HTML lang attribute set to "en"
9Favicon present
1032 internal links help establish site architecture
119 external links provide reference signals
12Content length of 884 words is adequate
1341 total links — within recommended range
14URL length (31 chars) is within optimal range
15All external links have proper rel attributes (nofollow/noopener)
16No redirect chain — direct URL resolution
17Healthy internal link ratio: 78% of links are internal
18Good anchor text diversity: 84% unique anchor texts
19Primary keyword not in URL — acceptable for homepage/root URLs
20Moderate E-E-A-T signals (3 indicators)
21og:locale set to "en_US"
22OG image uses WebP format — optimal for quality/size balance
23OG image dimensions ≥1200×630px — optimal for all platforms
24Twitter card uses summary_large_image — maximum visual impact
25Internal link density (36.2/1k words) — above average but acceptable for navigation-heavy pages
26Low passive voice ratio (2%) — clear, active writing style
27Zero-click optimized: 0 TL;DR/summary block(s) + 2 definition-style lead paragraph(s)
28Moderate entity presence: Geothermal Contractor, Inflation Reduction Act, Trusted Geothermal
29Social share buttons detected: ShareThis
30OG sharing completeness: 100% — all tags present for optimal social previews

Issues Found

1Cloudflare Email Protection detected (1 obfuscated links) — these appear as /cdn-cgi/l/email-protection and return 404 to crawlers
2Title and H1 share no keywords — misaligned topic signals
39 dofollow external links — slightly above optimal range
4Primary keyword "geothermal contractors usa" not found in H1
5Primary keyword missing from first paragraph
6Low readability score (2 Flesch) — content is hard to read
7Primary keyword "geothermal contractors usa" not found in body content

Recommendations to Reach 100%

1Use JavaScript-rendered email addresses (client-side assembly) instead of plain mailto: links to prevent Cloudflare from obfuscating them. Alternative: disable Email Address Obfuscation in Cloudflare dashboard [Impact: Medium | Effort: Low]
2Align your title tag and H1 heading around the same primary keyword for clearer topical relevance
3Consider nofollowing 2–3 less authoritative outbound links to stay in the 2–5 optimal range
4Include your primary keyword in the H1 heading for strongest on-page SEO signal
5Include your primary keyword naturally in the first paragraph to establish topical relevance early
6Include your primary keyword in the URL slug for improved crawlability and click-through rates
7Significantly simplify your content — aim for 60+ Flesch Reading Ease with shorter sentences and simpler vocabulary
8Add <meta property="article:published_time"> for content freshness signals in social shares
9Add <meta property="article:modified_time"> to signal content freshness
10Include your primary keyword naturally throughout the content body — aim for 0.5–2.5% density
11Add engagement signals: related posts section, "Read next" links, and table of contents to increase dwell time

Key Findings

1Excellent server response time: 202ms
2Lean HTML document: 95KB
33 framework-managed script(s) — optimized by build pipeline
42/4 images use lazy loading
5Modern image formats (WebP/AVIF) detected
6Preloaded resources: image, image, script, script
7font-display property detected — reduces invisible text during font loading
818 async and 0 deferred scripts
9Cache-Control header with max-age is set
1013 inline scripts (framework hydration/data — standard for SSR apps)
11Lean CSS payload (~60KB)
12JavaScript payload (~1076KB) is acceptable for framework app
13HTTP/1.1 detected — protocol upgrade managed at CDN/infrastructure level
14CDN detected: Cloudflare — reduces latency for global users
15Gzip compression enabled
161 third-party script(s) — manageable count
176 resource hints (preconnect/prefetch/preload) optimize loading
18Estimated LCP: ~1062ms — within Google's "good" threshold (<2.5s)
19Estimated INP: ~189ms — within Google's "good" threshold (<200ms)
20Variable fonts detected — reduces total font file downloads
21Good analytics setup: GA4 + event tracking

Issues Found

1No responsive image srcset found
2Only 1/4 images have width/height attributes
3Moderate estimated CLS: 0.19 — above 0.1 "good" threshold

Recommendations to Reach 100%

1Use srcset and sizes attributes on images to serve appropriately sized images per device
2Add explicit width and height to all images to prevent Cumulative Layout Shift (CLS)
3Add <link rel="preconnect"> for critical third-party domains to reduce DNS lookup time
4Upgrade to HTTP/2 or HTTP/3 for faster parallel resource loading and header compression
5Reduce CLS: set image dimensions, preload web fonts, reserve space for ads and dynamic content

Key Findings

1Viewport meta tag present: width=device-width, initial-scale=1
2HTML5 doctype declared
3Character encoding declared
4Theme color meta tag set for mobile browsers
5Web app manifest detected — PWA-ready
6Apple touch icons present
7Service worker detected — offline capability possible
82 images with lazy loading benefit mobile data users
9Mobile-responsive hamburger menu detected
10PWA install-ready: manifest + service worker + HTTPS all present
11Web app manifest includes 7 icon sizes — good coverage

Issues Found

1No responsive image srcset — mobile users may download oversized images
2Popup/modal/interstitial detected — Google penalizes intrusive interstitials on mobile

Recommendations to Reach 100%

1Implement srcset to serve smaller images on mobile devices, saving bandwidth
2Remove or minimize intrusive interstitials on mobile — Google's Page Experience update penalizes full-screen popups that block content
3Add env(safe-area-inset-*) CSS for proper display on notched/island devices
4Add :active / touch-action CSS for tactile feedback on mobile interactions

Key Findings

1HTTPS enabled — encrypted connection
2HTTP → HTTPS 301 redirect detected — properly forces secure connections
3HSTS header present — enforces HTTPS
4Content Security Policy header present
5X-Content-Type-Options: nosniff is set
6X-Frame-Options header prevents clickjacking
7Referrer-Policy set to: strict-origin-when-cross-origin
8Permissions-Policy header restricts browser features
9Cross-Origin-Opener-Policy set
10Cross-Origin-Resource-Policy set
11Cross-Origin-Embedder-Policy set
12Server via CDN proxy (cloudflare) — header added by infrastructure, not application
13X-Powered-By: Next.js — framework header, minimal risk
14All external links have security-safe rel attributes
15HSTS with preload and adequate max-age — eligible for browser preload list
16No cookie security issues detected
17CSP strictness score 40/100 — adequate for modern framework apps that require inline styles/scripts
18CSP uses 2 unsafe-inline directive(s) — standard requirement for modern SSR frameworks
19Permissions-Policy restricts 4 feature(s) — consider expanding to more features

Issues Found

1No privacy policy detected
2No cookie consent banner detected
3No Subresource Integrity (SRI) on external scripts

Recommendations to Reach 100%

1Add a privacy policy link — required by GDPR, CCPA, and builds user trust
2Implement a cookie consent banner for GDPR/ePrivacy compliance
3Add integrity attributes to external scripts/stylesheets to prevent supply-chain attacks
4Strengthen CSP: consider nonce-based policies when feasible
5When feasible, migrate to nonce-based CSP for inline scripts/styles
6Expand Permissions-Policy to restrict camera, microphone, geolocation, payment, usb, and autoplay

Key Findings

1Language declared: en
2Skip navigation link present
3All key landmarks present (main, nav, footer)
4All 4 images have alt attributes
5All iframes have title attributes
6All 3 buttons have accessible labels
78 ARIA-attributed elements found
8Focus styles detected for keyboard navigation
93 minor HTML validity issue(s) — common in modern framework component patterns

Issues Found

1Potential contrast issues: white text on very light background detected, white text on very light background detected
23 images missing explicit dimensions — causes layout shifts for screen reader users
31 focusable element(s) inside aria-hidden containers

Recommendations to Reach 100%

1Ensure all text meets WCAG AA contrast ratio of at least 4.5:1
2Review HTML structure for any non-framework-related nesting issues
3Set explicit width and height (or CSS aspect-ratio) on all images to prevent layout shifts that disorient assistive technology users
4Remove focusable elements (links, buttons, inputs) from aria-hidden regions — they trap keyboard users in invisible content

Key Findings

12 schema block(s): LocalBusiness, ProfessionalService, WebSite, WebPage, BreadcrumbList, Service, FAQPage, HowTo
2Hreflang tags: en-US, x-default, en-US
3Strong semantic markup: header, nav, main, section, details, summary, footer
4Complete social metadata (OG + Twitter Card)
5FAQ/Q&A content patterns detected — highly valuable for AI citation
6Sitemap reference detected
7Social presence signals: facebook, twitter
82 call-to-action elements detected
9No AI crawlers blocked via meta tags — content accessible to AI search engines
10robots.txt file found
11robots.txt references 1 sitemap(s) — aids AI crawler discoverability
12Content provenance signals detected (citations with sources, attributed claims)
13Good HTML-to-text ratio (44%) — AI crawlers can extract content efficiently

Issues Found

1No breadcrumb navigation
2No llms.txt file found — AI models cannot find structured guidance for your site
3Low RAG-friendliness (26/100) — AI systems cannot anchor into specific sections
4No content freshness signals (dateModified, datePublished, <time> elements)

Recommendations to Reach 100%

1Add more structured data types (FAQ, HowTo, Breadcrumb) to improve AI comprehension
2Add breadcrumb navigation with BreadcrumbList schema for better site hierarchy signals
3Create /llms.txt following the llms.txt standard: # Title, > description, ## Overview, ## Core Services, ## Key Pages with full URLs
4Create /llms-full.txt with comprehensive documentation (services, pricing, team, case studies) for AI models that need depth
5Add <link rel="alternate" type="text/plain" href="/llms.txt"> in your HTML <head> for AI discoverability
6Add id attributes to all H2/H3 headings and wrap content sections in <section id="..."> for vector-embeddable, RAG-friendly content chunks
7Add dateModified and datePublished meta tags and use <time datetime="..."> elements — AI models prefer fresh, timestamped content

Key Findings

1Moderate content depth (884 words)
2Rich Q&A content (11 FAQ/accordion elements)
3Good semantic-to-div ratio: 27 semantic elements
4Structured content: 3 lists, 1 tables — easily parsed by AI
5Good paragraph length for readability and AI parsing
6Speakable schema detected — content optimized for voice assistants
77 external citations — strong reference density for AI model training
829 statistics/data points — excellent for AI knowledge extraction
91 call-to-action element(s) detected
10Clear value proposition detected in heading elements

Issues Found

1Weak entity markup — few terms emphasized
2Weak E-E-A-T schema signals
3No author or expertise signals
4No CTA above the fold
5Insufficient trust signals for conversion optimization
6No social proof elements

Recommendations to Reach 100%

1Use <strong>, <em>, and <mark> to highlight key entities, concepts, and brand terms for AI comprehension
2Add Person, Article, and Review schemas to demonstrate expertise, experience, authoritativeness, and trustworthiness
3Include expert quotes in <blockquote> elements to boost E-E-A-T and citation potential
4Add visible author bylines with bios and link to author pages — AI models evaluate content credibility through authorship signals
5Add more clear CTAs ("Get Started", "Request Quote", "Contact Us") throughout the page for higher conversion rates
6Place a clear CTA in your hero/header section so visitors see a conversion path immediately upon landing
7Add trust signals: testimonials, trust badges, guarantees, client logos, and privacy indicators to boost conversion confidence
8Add social proof: testimonials, client counts ("500+ businesses served"), case studies, or review snippets near CTAs

Key Findings

1Direct question-answer patterns found — good for Google SGE and AI citations
21 comparison/data table(s) — highly extractable by AI
33 lists detected
42 schema blocks help AI engines understand content context
5Hreflang includes self-referencing tag
6x-default hreflang fallback present
729 data points/statistics — content has original research signals

Recommendations to Reach 100%

1Include how-to or step-by-step instructional content for generative AI answer inclusion
2Consider using <dl>/<dt>/<dd> definition lists for key terms and concepts
3Include unique statistics, expert quotes, and original insights that generative AI would want to cite
4Add original data visualizations, charts, or data tables — generative engines cite pages with unique, first-party data
5Include first-hand insights using phrases like "our research found" or "based on our analysis" to demonstrate original expertise

Key Findings

1FAQPage schema markup present — eligible for rich FAQ results
2HowTo schema markup present — eligible for how-to rich results
3Question-answer heading patterns support featured snippet capture
4Speakable schema supports voice search optimization
5Short paragraphs are well-suited for answer extraction
63 lists provide scannable answers for People Also Ask
728 concise answer-length paragraphs (10–50 words) — ideal for snippet extraction
8Content length and paragraph structure are voice-search optimized

Issues Found

1No breadcrumb navigation
2No direct answer patterns ("X is defined as...", "X refers to...")

Recommendations to Reach 100%

1Add breadcrumb navigation with BreadcrumbList schema for better content hierarchy signals
2Consider adding video content with VideoObject schema for multimedia search results
3Include direct definitional statements like "X is..." or "X refers to..." — answer engines extract these as zero-click results

Key Findings

1NAP information detected: phone: 12587520, email: [email protected]
2Phone number(s) visible: 12587520, 17000000000
3Email address found: [email protected]
4LocalBusiness schema: LocalBusiness
5Google Maps embed present — provides visual location confirmation
6Address microdata markup detected
7Geo meta tags present for location targeting
8Service area defined in schema

Issues Found

1LocalBusiness schema present but no opening hours
2No review/rating schema

Recommendations to Reach 100%

1Add openingHoursSpecification to your LocalBusiness schema — hours are a top local ranking factor
2Add AggregateRating schema to display star ratings in search results — reviews significantly impact local click-through rates

Key Findings

12 JSON-LD block(s) with types: LocalBusiness, ProfessionalService, WebSite, WebPage, BreadcrumbList, Service, FAQPage, HowTo
2Some microdata attributes detected alongside JSON-LD — common for address/local business markup in modern frameworks
3Comprehensive schema implementation
4Strong top-tier schema coverage: LocalBusiness, FAQPage, BreadcrumbList, WebSite
5Good secondary schema coverage: HowTo, Service
6BreadcrumbList schema → breadcrumb rich results
7FAQPage schema → expandable FAQ rich results
8Service schema describes your offerings
9HowTo schema → step-by-step rich results
10No schema validity issues detected
11Rich schema diversity: 7 distinct types with properties
122 sameAs link(s) for entity matching
13Average schema property completeness: 89% — well-implemented
14Rich results eligible: FAQ, HowTo, Breadcrumbs
15Schema nesting depth: 3 levels — rich entity relationships
16SearchAction schema present — eligible for sitelinks search box in Google

Recommendations to Reach 100%

1When feasible, consolidate all structured data into JSON-LD format

Key Findings

1prefers-reduced-motion support detected — respects user motion preferences
2High contrast / forced-colors mode supported
3Links are visually distinguishable (underline or decoration detected)
4Relative units (rem/em/clamp) detected — supports text resizing
5Good semantic element usage (27 semantic elements)
6Focus styles detected for keyboard navigation visibility
7Page language declared — aids assistive technology
8All ARIA roles are valid
9Moderate cognitive load — acceptable for interactive modern web apps with rich UI patterns
10Focus not obscured by sticky/fixed elements (WCAG 2.4.11)
11prefers-reduced-motion detected but enforcement unclear

Issues Found

12 potential color contrast issue(s)

Recommendations to Reach 100%

1Audit color contrast ratios — ensure at least 4.5:1 for normal text and 3:1 for large text (WCAG 1.4.3)
2Ensure prefers-reduced-motion actually disables animations (set animation: none and transition: none in the media query)
Limited-Time Offer

All 12 Optimizations — Bundled Into Your Custom Website

We're currently bundling every optimization from this audit — SEO, AIO, GEO, AEO, Schema.org, WCAG accessibility, performance, security, and more — directly into our Custom Web Application Development service.

Instead of fixing issues after launch, we eliminate them from the start. Every website we build ships production-ready with a 90+ score across all 12 audit dimensions.