grademywebsite.ai JUL 1, 2026 · Report
The verdict

roofsolutionsca.com

Your site is invisible to AI search—no schema, no meta description, and zero structured data means ChatGPT and Perplexity can't cite you when customers ask for roofers in Northern California.”

Grade another site
https://
D
0/ 100

Category breakdown

  • 01 Performance 48
  • 02 SEO 42
  • 03 AI Visibility 38
  • 04 Design & UX 58
  • 05 Conversion & Trust 74

Inside the grade

01 · Performance

Performance

48/ 100

The site loads 224 KB of HTML and deploys 62 scripts plus 43 stylesheets—bloated for a local roofing contractor. Images use data-URI placeholders and a CDN (exactdn.com), but 38 of 43 images lack alt text. No PageSpeed data was returned, suggesting the site may have blocked or failed the audit.

What's working

  • HTTPS is enabled and the site loads without errors.
  • Uses a CDN (exactdn.com) for image delivery.
  • Viewport meta tag is present for mobile rendering.

What needs work

  • 224 KB HTML payload is excessive for a simple service site.
  • 62 JavaScript files and 43 stylesheets indicate severe asset bloat.
  • 38 of 43 images missing alt attributes hurts accessibility and SEO.
  • PageSpeed Insights returned no data, suggesting blocking or configuration issues.
  • Data-URI placeholder images add unnecessary inline weight.

Comments for whoever manages your website

  1. Audit and consolidate the 62 JavaScript files and 43 stylesheets—defer non-critical scripts and inline critical CSS.
    105 asset requests kill mobile load time, spiking bounce rate by 15-25% and tanking your Google Core Web Vitals score.
  2. Add descriptive alt text to all 38 images currently missing it—include keywords like 'roof repair Sacramento' where relevant.
    Missing alt text is an accessibility violation and a missed SEO opportunity; Google Images is a major traffic source for contractors.
  3. Remove or lazy-load the data-URI placeholder images—they add 10-15 KB of inline weight per image with no UX benefit.
    Inline base64 images bloat HTML and delay first paint; modern lazy-loading is faster and cleaner.
02 · SEO

SEO

42/ 100

The site has no meta description, no Open Graph tags, and zero JSON-LD schema despite being a local service business. The title tag is generic ('Roofing Solutions That Last') with no location keyword. No H1 tag is present; the highest heading is an H2.

What's working

  • Canonical tag is set correctly to the homepage URL.
  • Sitemap is present at /wp-sitemap.xml and referenced in robots.txt.
  • Robots.txt allows crawling and disallows WooCommerce transient folders.

What needs work

  • No meta description tag—search engines will generate their own snippet.
  • Title tag lacks location keywords (e.g., 'Northern California' or city names).
  • No H1 heading anywhere on the homepage.
  • Zero JSON-LD schema (no LocalBusiness, no Organization, no Service markup).
  • No Open Graph tags for social sharing.

Comments for whoever manages your website

  1. Add a meta description tag to the homepage (and all pages) with location keywords like 'Northern California roofing contractor' and a clear value prop.
    Without it, Google writes its own snippet from random body text, tanking your click-through rate by 20-30%.
  2. Insert an H1 tag on the homepage—move 'We build the roof you need' from H2 to H1 or create a new headline above the fold.
    Search engines use H1 as the primary topic signal; missing it confuses crawlers and weakens keyword relevance.
03 · AI Visibility

AI Visibility

38/ 100

With no structured data, no llms.txt, and missing meta descriptions, AI assistants have nothing machine-readable to cite. The body text mentions 'Northern California' but provides no specific address, phone, or hours in markup. AI engines will struggle to surface this business in answer boxes or citations.

What's working

  • Sitemap is present and could be crawled by AI indexers.
  • Body copy includes service keywords (roof repair, inspection, replacement).
  • Customer testimonials with star ratings are visible in the HTML.

What needs work

  • No JSON-LD LocalBusiness schema with NAP (name, address, phone).
  • No llms.txt file to guide AI crawlers.
  • No meta description or og:description for AI snippet generation.
  • No structured FAQ or HowTo markup despite service-heavy content.
  • License number (CA #1046710) is in body text but not in schema.

Comments for whoever manages your website

  1. Add JSON-LD LocalBusiness schema with name, address, phone, service area (counties/cities), license number, and hours to every page.
    AI search engines have nothing structured to cite when answering 'best roofer near me' queries—you're invisible by default.
  2. Create an llms.txt file in the site root with a plain-text summary of services, service area, license, and contact info.
    AI crawlers prioritize sites that provide a machine-readable summary, giving you a 3-5x better chance of being cited.
  3. Add FAQ schema markup to a new FAQ section covering common roofing questions (cost, timeline, materials, permits).
    AI assistants pull FAQ answers directly into responses, turning your content into featured snippets and voice results.
04 · Design & UX

Design & UX

58/ 100

The site uses a standard WordPress theme with a clean layout and readable typography. Navigation is duplicated (two identical menus) and the homepage lacks a clear hero CTA above the fold. The embedded project map at the bottom is a nice touch, but the overall design feels dated and generic.

What's working

  • Readable body text and clear service headings (H3s for each service).
  • Customer testimonials with star ratings build social proof.
  • Embedded project map (ProjectMapIt) showcases completed work visually.
  • Mobile viewport is configured correctly.

What needs work

  • No H1 tag and weak visual hierarchy on the homepage.
  • Navigation menu is duplicated verbatim, cluttering the header.
  • No clear hero CTA or value proposition above the fold.
  • Generic stock imagery with no alt text reduces engagement.
  • Footer and header feel cluttered with repeated links.

Comments for whoever manages your website

  1. Remove the duplicate navigation menu—one clean header menu is enough.
    Duplicate menus confuse users and dilute link equity; it looks like a theme configuration mistake.
  2. Add a clear hero section above the fold with an H1, a one-sentence value prop, and a single primary CTA ('Get Free Estimate').
    Users decide in 3 seconds whether to stay; a weak hero with no clear action costs you 20-30% of traffic immediately.
05 · Conversion & Trust

Conversion & Trust

74/ 100

The site displays strong trust signals: CA license number, insurance details, manufacturer certifications, and five detailed customer testimonials. However, there are no visible forms—only buttons linking elsewhere—and no phone number in the header. The 'Free Estimate' CTA is prominent but the conversion path is unclear.

What's working

  • CA contractor license #1046710 is prominently displayed.
  • Five detailed customer testimonials with names and star ratings.
  • Mentions insurance, bonding, and workers' comp coverage.
  • Multiple CTAs ('Free Estimate', 'Schedule Now', 'Apply now') throughout.
  • Financing option is highlighted with an 'Apply now' button.

What needs work

  • No contact forms detected in the HTML—buttons likely link to external forms.
  • No phone number visible in the header or hero section.
  • No live chat or immediate contact option.
  • CTA buttons lack clarity on what happens next (form, call, calendar?).
  • No trust badges (BBB, Angi, etc.) despite industry certifications mentioned.

Comments for whoever manages your website

  1. Place a clickable phone number in the header (sticky on mobile) so users can call with one tap.
    Roofing is a high-intent, call-driven business; hiding the phone number costs you 15-25% of mobile conversions.
  2. Embed at least one contact form directly on the homepage instead of relying solely on external CTA buttons.
    Every extra click to reach a form drops conversion by 10-15%; inline forms capture impulse leads before they bounce.

AI assistant visibility

AI is the new Google — and it doesn't show a list. More people are skipping Google and asking ChatGPT, Grok, or Gemini things like “who's the best roofer in sacramento or napa valley” The catch: those tools don't give back ten blue links to pick from. They name one or two businesses and call it a day.

So you either get named — or that customer never hears you exist. This is about making sure when an AI gets asked about businesses like yours, yours is the one it recommends.

ChatGPT Low
Perplexity Low
Google AIO Low
Grok None
Gemini Low

Estimated revenue leakage

$3,200 $8,500
Per month

Northern California roofing generates ~1,200 monthly AI queries; with 5-8% current capture and an average job value of $8,000-$15,000, you're missing 2-4 qualified leads per month.

Top three priorities

  1. 01

    Add LocalBusiness JSON-LD schema with NAP, service area, and license number to every page

    AI assistants and Google will immediately surface your business in local roofing queries, capturing 40-60% more AI-driven leads within 60 days.

    low effort
  2. 02

    Write a meta description (150-160 chars) with location keywords and add an H1 tag to the homepage

    Search engines will display a compelling snippet instead of random body text, improving CTR by 15-25% and signaling relevance to crawlers.

    low effort
  3. 03

    Reduce script/stylesheet count from 105 total assets to under 20 by consolidating or deferring non-critical resources

    Page load time will drop by 2-3 seconds, reducing bounce rate by 10-15% and improving mobile conversion by 8-12%.

    high effort