Your site has a solid foundation (C grade, 66/100), but it's not working as hard as it could. The biggest wins are straightforward: add LocalBusiness schema so Google knows who you are and where, write proper page titles and meta descriptions (many are missing or truncated), add H1 tags to clarify page topics, and fill in alt text for nearly 200 images across the site. Right now, an estimated 2–4 local roofing leads per month are going to competitors because your pages aren't fully visible in local search results. Fixing these issues won't change your site's look or feel—it's backend work—but it will let Google rank you fairly for the roofing jobs you're already qualified to win. The work is fast; results take time as Google re-crawls and re-ranks.
Add LocalBusiness Schema & Fix Missing H1 Tags
Google can't confidently link your business to your location without LocalBusiness schema (address, phone, hours, geo). Currently missing on your site. Also add exactly one H1 per page stating the primary topic—multiple pages lack them. Together, these signal relevance for local roofing searches and unlock local pack eligibility.
Write Proper Page Titles & Meta Descriptions
Several pages are missing meta descriptions entirely; others have titles that are too short (21–26 chars) or too long (65 chars, truncated in search results). Expand titles to 30–60 characters with a keyword + location. Write 140–160 character descriptions with a value prop and soft CTA. This is how searchers decide whether to click—fixing it lifts CTR and relevance signals.
Add Alt Text to ~200 Images
Nearly every page is missing alt text on 50–80% of images. Alt text helps Google understand what you're showing (roof types, before/after, etc.) and makes your site accessible. It's repetitive work but high-impact for image search visibility and general SEO strength.
Critical bugs
High-impact defects sending conflicting signals to Google. All under one hour.
Page-level issues
Filter by severity. Each item ships with a recommended rewrite.
| Page | Issue | Severity | Recommended fix |
|---|
Checklist
Core Web Vitals didn't return in the automated check. Run Lighthouse manually after Elementor optimization.
Keyword rankings, search volumes and difficulty here are estimated from on-page signals — connect a keyword data source (DataForSEO / Ahrefs) for measured Google figures.
Difficulty × opportunity
Bubble size = traffic potential. Top-left = quick win territory.
Most opps are commercial — cost & "best" queries with the highest conversion intent.
Filter by intent
| Keyword | Difficulty | Opportunity | Intent | Recommended page |
|---|
Content gaps are inferred from the site's services and geography, not from live competitor ranking data.
Where competitors out-rank you
Topics in your space where competitors are likely capturing search demand you don't yet cover.
Cost pages for core services
Searchers compare price first; "roofing cost" queries are unowned. A /cost/ pattern captures high-intent traffic.
Composite SEO score
We don't crawl and score competitor sites, so this comparison is left blank rather than fabricated.
Scoring competitors across these dimensions means crawling and grading each of their sites — not part of this audit, so it's intentionally left blank instead of showing made-up numbers. Connect a live ranking source to surface alike competitors in premiumroofingltd.com's market.
Words on your deepest pages
premiumroofingltd.com's deepest page (kelowna-roofing-premium-custom-systems) runs 527 words. Thin pages get out-ranked — and skipped by AI answer engines.
Where you win, where you lose
No live competitor data is connected, so there's nothing to compare yet. Connect a ranking source (DataForSEO) to benchmark premiumroofingltd.com against alike local competitors on keyword overlap, traffic and average position.
73 actions · do in order
Filter by category. Check items to track progress (session-only).