#1 Triple J Roofing, LLC
Evidence-led technical, on-page, and crawlability findings. Metrics below come only from Screaming Frog / audit exports for this property — no invented traffic or revenue claims.
Opportunity: 44 · Structured issues: 10 (critical 0, errors 0, warnings 6)
Below average — confirmed crawl and on-page issues on specific URLs need prioritized remediation.
1. Executive Summary
#1 Triple J Roofing, LLC received an overall SEO health score of 56/100 based on this crawl package (598 URLs crawled; 68 HTML pages). Pages are missing their primary on-page heading signal. Example URLs from the crawl include: https://www.1triplejroofing.com/; https://1triplejroofing.com/metal-shingle/page/1/; https://1triplejroofing.com/roofing-gallery/page/1/; https://1triplejroofing.com/shingle-roof/page/1/. This report follows Finding → Evidence → Risk → Business Relevance → Fix → Priority → Verification. No traffic, revenue, or ranking outcomes are claimed beyond crawl evidence.
2. SEO Health Overview
| Metric | Value |
|---|---|
| Overall SEO score | 56 |
| Technical SEO score | 88 |
| On-page SEO score | 84 |
| Local SEO score | 94 |
| Content / UX score | 90 |
| Opportunity score | 44 |
| Pages crawled | 598 |
| HTML pages | 68 |
| Indexable pages | 39 |
| Non-indexable pages | 29 |
| Issue count (structured) | 10 |
| Critical / Error / Warning | 0 / 0 / 6 |
| HTTPS (audit metrics) | Yes |
| Homepage status (metrics) | 301 |
| Homepage final URL | https://www.1triplejroofing.com/ |
3. Critical Issues
Priority findings from audit_report.json issues and crawl aggregates.
Internal redirects found
- Severity
- Warning
- Evidence
- 7 affected · (10.3% of HTML sample)
- What We Found
- Internal redirects found observed across 7 URL(s) in the audit issue list.
- Why It Matters
- Internal redirects waste crawl budget and dilute link equity before users reach the final page.
- Recommended Fix
- Link directly to final 200-status URLs.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P2
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Indexable pages missing an H1
- Severity
- Warning
- Evidence
- 2 affected · (2.9% of HTML sample)
- What We Found
- Indexable pages missing an H1 observed across 2 URL(s) in the audit issue list.
- Why It Matters
- Missing or duplicated H1s weaken the primary on-page relevance signal.
- Recommended Fix
- Add one clear descriptive H1 to each page.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P2
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Thin-content pages found
- Severity
- Warning
- Evidence
- 6 affected · (8.8% of HTML sample)
- What We Found
- Thin-content pages found observed across 6 URL(s) in the audit issue list.
- Why It Matters
- Thin pages struggle to satisfy intent and rarely earn sustainable organic visibility.
- Recommended Fix
- Expand thin service and location pages.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P2
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Important pages are too deep
- Severity
- Notice
- Evidence
- 7 affected · (10.3% of HTML sample)
- https://1triplejroofing.com/pvc-roofing-advantages-in-albuquerque/
- https://1triplejroofing.com/roofing-technology/
- https://1triplejroofing.com/flat-roofing-repairs/
- https://1triplejroofing.com/choosing-the-best-roofing-material-in-albuquerque/
- https://1triplejroofing.com/metal-roof-repair-essential-insights-tips/
- What We Found
- Important pages are too deep observed across 7 URL(s) in the audit issue list.
- Why It Matters
- Unresolved crawl/on-page defects dilute relevance signals and waste crawl budget.
- Recommended Fix
- Bring priority pages within three clicks.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P3
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Slow server responses found
- Severity
- Warning
- Evidence
- 43 affected · (63.2% of HTML sample)
- What We Found
- Slow server responses found observed across 43 URL(s) in the audit issue list.
- Why It Matters
- Unresolved crawl/on-page defects dilute relevance signals and waste crawl budget.
- Recommended Fix
- Improve hosting, caching, database work, and delivery.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P2
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Duplicate page titles found
- Severity
- Warning
- Evidence
- 2 affected · (2.9% of HTML sample)
- What We Found
- Duplicate page titles found observed across 2 URL(s) in the audit issue list.
- Why It Matters
- Weak or colliding titles reduce click clarity in SERPs and confuse topical targeting.
- Recommended Fix
- Create a unique title for each search intent.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P2
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Duplicate meta descriptions found
- Severity
- Notice
- Evidence
- 5 affected · (7.4% of HTML sample)
- What We Found
- Duplicate meta descriptions found observed across 5 URL(s) in the audit issue list.
- Why It Matters
- Unresolved crawl/on-page defects dilute relevance signals and waste crawl budget.
- Recommended Fix
- Create unique descriptions.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P3
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Duplicate H1 headings found
- Severity
- Notice
- Evidence
- 2 affected · (2.9% of HTML sample)
- What We Found
- Duplicate H1 headings found observed across 2 URL(s) in the audit issue list.
- Why It Matters
- Missing or duplicated H1s weaken the primary on-page relevance signal.
- Recommended Fix
- Use page-specific primary headings.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P3
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Images missing alt text
- Severity
- Notice
- Evidence
- 32 affected · (47.1% of HTML sample)
- https://1triplejroofing.com/wp-content/uploads/2024/10/73.webp
- https://1triplejroofing.com/wp-content/webp-express/webp-images/uploads/2025/07/tpo-10-07-2025-3.jpg.webp
- https://1triplejroofing.com/wp-content/webp-express/webp-images/uploads/2025/07/metal-roof-10-07-2025-2.jpg.webp
- https://1triplejroofing.com/wp-content/uploads/2024/10/72.webp
- https://1triplejroofing.com/wp-content/webp-express/webp-images/uploads/2025/07/tpo-10-07-2025-2.jpg.webp
- What We Found
- Images missing alt text observed across 32 URL(s) in the audit issue list.
- Why It Matters
- Missing alt text harms accessibility and removes image-search relevance cues.
- Recommended Fix
- Add descriptive alt text to meaningful images.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P3
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
Indexable pages missing structured data
- Severity
- Warning
- Evidence
- 39 affected · (57.4% of HTML sample)
- What We Found
- Indexable pages missing structured data observed across 39 URL(s) in the audit issue list.
- Why It Matters
- Missing or invalid structured data reduces eligibility for rich results and local clarity.
- Recommended Fix
- Add valid LocalBusiness, Service, FAQ, Review and breadcrumb schema.
- Implementation Complexity
- Low–Medium
- Responsible Team
- SEO + Web/Dev
- Priority
- P2
- Validation After Fix
- Re-crawl affected URLs in Screaming Frog; confirm issue count drops and examples return expected 200/indexable state.
4. HTTP Status
| Status | Count |
|---|---|
| 200 | 591 |
| 301 | 7 |
Internal 3xx HTML: 7.
5. Indexability
| Indexability | HTML count |
|---|---|
| Indexable | 39 |
| Non-Indexable | 29 |
| Indexability status reason | Count |
|---|---|
| Canonicalised | 22 |
| Redirected | 7 |
Frog summary: indexable=39, non-indexable=29.
6. Page Titles
Among 61 HTTP 200 HTML pages: missing titles=0 (0.0%); duplicate title groups=5; titles over 60 characters=9 (14.8%).
Examples — duplicate title (2 pages):
Examples — long titles:
- https://1triplejroofing.com/roofing-gallery/
- https://1triplejroofing.com/tpo-for-roofing/
- https://1triplejroofing.com/schedule/
- https://1triplejroofing.com/roofing-gallery/page/3/
- https://1triplejroofing.com/roofing-gallery/page/2/
Related Frog inventory: Page Titles: Same as H1 (2 URLs, Low); Page Titles: Over 60 Characters (4 URLs, Medium); Page Titles: Over 561 Pixels (3 URLs, Medium)
7. Meta Descriptions
HTTP 200 HTML: missing meta=0 (0.0%); duplicate meta groups=6; short (<70)=0; long (>160)=0.
Examples — duplicate meta:
8. Headings
HTTP 200 HTML: missing H1=5 (8.2%); multiple H1 signals (H1-2 present)=1; duplicate H1 groups=4.
Examples — missing H1:
- https://1triplejroofing.com/tpo-roofing/
- https://1triplejroofing.com/schedule/
- https://1triplejroofing.com/tpo-roofing/page/3/
- https://1triplejroofing.com/tpo-roofing/page/4/
- https://1triplejroofing.com/tpo-roofing/page/2/
Examples — multiple H1:
Related Frog inventory: Page Titles: Same as H1 (2); H1: Multiple (12); H1: Missing (2); H2: Duplicate (2); H2: Non-Sequential (2); H1: Over 70 Characters (1); H2: Missing (6); H2: Multiple (32)
9. Content Quality
HTTP 200 HTML word-count average ≈ 439. Thin pages (<150 words)=28 (45.9%).
Examples — thin content:
- https://1triplejroofing.com/tpo-roofing/
- https://1triplejroofing.com/shingle-roof/
- https://1triplejroofing.com/roofing-gallery/
- https://1triplejroofing.com/contact/
- https://1triplejroofing.com/metal-shingle/
10. Internal Linking
HTTP 200 HTML with very low unique inlinks (≤1, depth>0)=0. Pages with zero unique outlinks=0.
Frog inventory: Links: Internal Outlinks With No Anchor Text (61, Opportunity); Links: Non-Descriptive Anchor Text In Internal Outlinks (1, Opportunity)
11. Crawl Depth
| Crawl depth | HTML pages |
|---|---|
| 0 | 1 |
| 1 | 1 |
| 2 | 20 |
| 3 | 23 |
| 4 | 20 |
| 5 | 3 |
Pages deeper than 3 clicks (HTTP 200)=17 (27.9%).
Examples — deep URLs:
- https://1triplejroofing.com/pvc-roofing-advantages-in-albuquerque/
- https://1triplejroofing.com/roofing-technology/
- https://1triplejroofing.com/flat-roofing-repairs/
- https://1triplejroofing.com/choosing-the-best-roofing-material-in-albuquerque/
- https://1triplejroofing.com/shingle-roof/page/4/
12. URL Structure
HTTP 200 HTML with query parameters=0; URLs longer than 120 characters=0.
URL Structure: No material issue identified in the available crawl evidence.
13. Redirects
Internal HTML redirects observed in crawl: 7.
Examples:
- https://www.1triplejroofing.com/
- https://1triplejroofing.com/metal-shingle/page/1/
- https://1triplejroofing.com/roofing-gallery/page/1/
- https://1triplejroofing.com/shingle-roof/page/1/
- https://1triplejroofing.com/tpo-roofing/page/1/
Frog inventory: Response Codes: Internal Redirection (3xx) (7)
14. Images
Missing-alt export rows=32. Audit metrics missing_image_alt_count=32.
Example pages/images with missing alt:
- https://1triplejroofing.com/shingle-roof/
- https://1triplejroofing.com/tpo-roofing/
- https://1triplejroofing.com/metal-shingle/
- https://1triplejroofing.com/shingle-roof/
- https://1triplejroofing.com/tpo-roofing/
Frog inventory: Images: Alt Text Over 100 Characters (2, Low); Images: Missing Size Attributes (15, Low); Images: Over 100 KB (312, Medium); Images: Missing Alt Text (32, Low)
15. Canonicals
HTTP 200 HTML: self-referencing canonicals≈39; canonicalised to another URL=22; missing canonical element=0.
Examples — canonicalised:
- https://1triplejroofing.com/roofing-gallery/page/3/
- https://1triplejroofing.com/metal-shingle/page/9/
- https://1triplejroofing.com/roofing-gallery/page/2/
- https://1triplejroofing.com/tpo-roofing/page/3/
- https://1triplejroofing.com/shingle-roof/page/7/
Frog inventory: Canonicals: Canonicalised (22)
16. XML Sitemap
17. Robots.txt
18. Structured Data
structured_data_all.csv rows=61; pages with ≥1 type=0; pages with schema errors=0.
Export present but most sampled pages show Total Types = 0.
19. Security
Homepage audit metrics report HTTPS = Yes. HTML URL scheme mix: https=68, http=0. Frog security inventory: Security: Unsafe Cross-Origin Links (1, Low); Security: Missing Content-Security-Policy Header (591, Low).
20. JS / Rendering
21. CWV / Performance
Homepage load_time_ms (audit metrics)=2525. HTTP 200 HTML response time sample: n=61, avg=2.18s, max=3.53s (Screaming Frog Response Time). Related inventory: Images: Alt Text Over 100 Characters (2); Images: Over 100 KB (312).
22. Opportunities
| Opportunity | Priority | URLs | Label |
|---|---|---|---|
| Links: Internal Outlinks With No Anchor Text | Low | 61 | Opportunity |
| Links: Non-Descriptive Anchor Text In Internal Outlinks | Low | 1 | Opportunity |
| Images: Alt Text Over 100 Characters | Low | 2 | Opportunity |
| Images: Missing Size Attributes | Low | 15 | Opportunity |
| Images: Over 100 KB | Medium | 312 | Opportunity |
| Page Titles: Same as H1 | Low | 2 | Opportunity |
| Content: Readability Difficult | Low | 11 | Opportunity |
| Meta Description: Duplicate | Low | 3 | Opportunity |
| H2: Duplicate | Low | 2 | Opportunity |
| H1: Over 70 Characters | Low | 1 | Opportunity |
| Content: Low Content Pages | Medium | 6 | Opportunity |
| Page Titles: Over 60 Characters | Medium | 4 | Opportunity |
| Page Titles: Over 561 Pixels | Medium | 3 | Opportunity |
23. CRO Observations
Homepage word_count (audit metrics)=0. Homepage H1 missing in audit metrics. 28 thin HTML pages may offer weak persuasive/support content for visitors (heuristic only). CRO testing (heatmaps, form analytics, A/B) was not part of this crawl — observations are limited to on-page completeness signals.
24. Competitor Gap
25. Priority Action Plan (Phases 1–4)
Phase 1 — Stabilize (Week 1)
Fix crawl-blocking and high-severity confirmed issues first.
- Canonicals: Canonicalised — These URLs should be reviewed carefully to ensure the indexing and link signals are being consolidated to the correct URL. In a perfect world, a website wouldn't need to canonicalise any URLs as only canonical versions would be linked to internally on a website, but often they ar (22 URLs)
Phase 2 — On-page clarity (Weeks 2–3)
Titles, metas, headings, redirects, and indexation hygiene.
- Slow server responses found — Improve hosting, caching, database work, and delivery. (43 URLs)
- Indexable pages missing structured data — Add valid LocalBusiness, Service, FAQ, Review and breadcrumb schema. (39 URLs)
- Internal redirects found — Link directly to final 200-status URLs. (7 URLs)
- Thin-content pages found — Expand thin service and location pages. (6 URLs)
- Indexable pages missing an H1 — Add one clear descriptive H1 to each page. (2 URLs)
Phase 3 — Content & structure (Weeks 3–5)
Thin pages, internal links, schema, and media accessibility.
- Images: Over 100 KB — Uncompressed images bloat pages with unnecessary bytes, so ensure images are optimised with compression, properly scaled, and using the best image format to reduce file size where possible. (312 URLs)
- Content: Low Content Pages — Consider including additional descriptive content to help the user and search engines better understand the page. (6 URLs)
- Page Titles: Over 60 Characters — Write concise page titles to ensure important words are not truncated in the search results, not visible to users and potentially weighted less in scoring. (4 URLs)
- Page Titles: Over 561 Pixels — Write concise page titles to ensure important words are not truncated in the search results, not visible to users and potentially weighted less in scoring. (3 URLs)
- Links: Internal Outlinks With No Anchor Text — Review the missing anchor text outlinks and where appropriate include useful and descriptive anchor text to help users and search engines. (61 URLs)
Phase 4 — Measure & iterate (Weeks 5–8)
Re-crawl validation, performance testing, and backlog opportunities.
- Duplicate page titles found — Create a unique title for each search intent. (2 URLs)
- H1: Multiple — Consider updating the HTML to include a single <h1> on each page, and utilising the full heading rank between (h2 - h6) for additional headings. (12 URLs)
- H1: Missing — Ensure important pages have concise, descriptive and unique headings to help users, and enable search engines to score and rank the page for relevant search queries. (2 URLs)
- Security: Missing Content-Security-Policy Header — Set a strict Content-Security-Policy response header across all page to help mitigate cross site scripting (XSS) and data injection attacks. (591 URLs)
- H2: Multiple — Ensure <h2>s are used in a logical hierarchical heading structure, and update where appropriate utilising the full heading rank between (h3 - h6) for additional headings. (32 URLs)
26. Impact vs Effort
| Action | Impact | Effort | Severity | URLs |
|---|---|---|---|---|
| Canonicals: Canonicalised | H | M | High | 22 |
| Slow server responses found | M | M | Warning | 43 |
| Indexable pages missing structured data | M | M | Warning | 39 |
| Internal redirects found | M | M | Warning | 7 |
| Thin-content pages found | M | M | Warning | 6 |
| Indexable pages missing an H1 | M | M | Warning | 2 |
| Duplicate page titles found | M | M | Warning | 2 |
| Images: Over 100 KB | M | M | Medium | 312 |
| H1: Multiple | M | M | Medium | 12 |
| Content: Low Content Pages | M | M | Medium | 6 |
Impact/Effort are consultant estimates from severity + affected URL counts — not traffic forecasts.
27. Top 10 Actions
| # | Action | Label | URLs | Examples | Fix |
|---|---|---|---|---|---|
| 1 | Canonicals: Canonicalised | Confirmed issue | 22 | — | These URLs should be reviewed carefully to ensure the indexing and link signals are being consolidated to the correct URL. In a perfect world, a website wouldn't need to canonicalise any URLs as only canonical versions would be linked to internally on a website, but often they ar |
| 2 | Slow server responses found | Potential risk | 43 | Improve hosting, caching, database work, and delivery. | |
| 3 | Indexable pages missing structured data | Potential risk | 39 | Add valid LocalBusiness, Service, FAQ, Review and breadcrumb schema. | |
| 4 | Internal redirects found | Potential risk | 7 | Link directly to final 200-status URLs. | |
| 5 | Thin-content pages found | Potential risk | 6 | Expand thin service and location pages. | |
| 6 | Indexable pages missing an H1 | Potential risk | 2 | Add one clear descriptive H1 to each page. | |
| 7 | Duplicate page titles found | Potential risk | 2 | Create a unique title for each search intent. | |
| 8 | Images: Over 100 KB | Opportunity | 312 | — | Uncompressed images bloat pages with unnecessary bytes, so ensure images are optimised with compression, properly scaled, and using the best image format to reduce file size where possible. |
| 9 | H1: Multiple | Potential risk | 12 | — | Consider updating the HTML to include a single <h1> on each page, and utilising the full heading rank between (h2 - h6) for additional headings. |
| 10 | Content: Low Content Pages | Opportunity | 6 | — | Consider including additional descriptive content to help the user and search engines better understand the page. |
28. Developer Fix Sheet
| Ticket | Owner | Change | URLs / evidence | Done when |
|---|---|---|---|---|
| SEO-01 | Dev | These URLs should be reviewed carefully to ensure the indexing and link signals are being consolidated to the correct URL. In a perfect world, a website wouldn't need to canonicalise any URLs as only canonical versions would be linked to internally on a website, but often they ar | 22 — — | Re-crawl shows issue cleared on example URLs |
| SEO-02 | SEO/Content | Improve hosting, caching, database work, and delivery. | 43 — | Re-crawl shows issue cleared on example URLs |
| SEO-03 | SEO/Content | Add valid LocalBusiness, Service, FAQ, Review and breadcrumb schema. | 39 — | Re-crawl shows issue cleared on example URLs |
| SEO-04 | Dev | Link directly to final 200-status URLs. | 7 — | Re-crawl shows issue cleared on example URLs |
| SEO-05 | SEO/Content | Expand thin service and location pages. | 6 — | Re-crawl shows issue cleared on example URLs |
| SEO-06 | SEO/Content | Add one clear descriptive H1 to each page. | 2 — | Re-crawl shows issue cleared on example URLs |
| SEO-07 | SEO/Content | Create a unique title for each search intent. | 2 — | Re-crawl shows issue cleared on example URLs |
| SEO-08 | SEO/Content | Uncompressed images bloat pages with unnecessary bytes, so ensure images are optimised with compression, properly scaled, and using the best image format to reduce file size where possible. | 312 — — | Re-crawl shows issue cleared on example URLs |
| SEO-09 | SEO/Content | Consider updating the HTML to include a single <h1> on each page, and utilising the full heading rank between (h2 - h6) for additional headings. | 12 — — | Re-crawl shows issue cleared on example URLs |
| SEO-10 | SEO/Content | Consider including additional descriptive content to help the user and search engines better understand the page. | 6 — — | Re-crawl shows issue cleared on example URLs |
29. Client-Friendly Business Impact
From a business perspective, the crawl shows where search engines may struggle to understand or trust key pages (score 56/100; 10 structured issues). Clear titles, working URLs, coherent headings, and indexable money pages typically make it easier for customers to find the right service pages. This section does not estimate leads, revenue, or ranking positions.
30. Why Address These Issues
Addressing confirmed crawl defects protects crawl budget, prevents duplicate/competing signals, and improves the clarity of service pages for both users and search engines. Deferring high-severity items (4xx, redirect chains, missing titles/H1s on core pages) usually prolongs avoidable discoverability friction.
31. Recommended Engagement
Recommended engagement: one-time technical + on-page remediation for the Top 10 actions, with optional ongoing monitoring if content velocity is high.
32. Deliverables
- This 35-section technical SEO audit (HTML)
- Prioritized action list with example URLs from your crawl
- Developer fix sheet (ticket-ready)
- Validation checklist for post-fix re-crawl
- Optional: follow-up re-crawl comparison after implementation
33. Before vs After
| Area | Before (current crawl) | After (target) |
|---|---|---|
| SEO health score | 56 | Improved after P1/P2 fixes (re-scored on re-crawl) |
| Structured issues | 10 | Material P1 items cleared |
| Missing titles (200 HTML) | 0 | 0 on money pages |
| Missing H1 (200 HTML) | 5 | 0 on money pages |
| Internal 4xx HTML | 0 | 0 |
| Thin pages (<150 words) | 28 | Reduced on service/location URLs |
After targets are remediation goals tied to crawl filters — not promised ranking or traffic outcomes.
34. Final Recommendation
Final recommendation: execute Phase 1–2 on — Canonicals: Canonicalised; Slow server responses found; Indexable pages missing structured data. Validate with a fresh Screaming Frog crawl, then proceed to content/internal-link opportunities. Commercial next steps are discussed separately by email.
35. Proposal-Ready Scope
Proposal-ready scope for #1 Triple J Roofing, LLC (1triplejroofing.com), based solely on this crawl package:
- Canonicals: Canonicalised — up to 22 URLs; fix: These URLs should be reviewed carefully to ensure the indexing and link signals are being consolidated to the correct URL. In a perfect world, a website wouldn't need to canonicalise any URLs as only canonical versions would be linked to internally on a website, but often they ar
- Slow server responses found — up to 43 URLs; fix: Improve hosting, caching, database work, and delivery.
- Indexable pages missing structured data — up to 39 URLs; fix: Add valid LocalBusiness, Service, FAQ, Review and breadcrumb schema.
- Internal redirects found — up to 7 URLs; fix: Link directly to final 200-status URLs.
- Thin-content pages found — up to 6 URLs; fix: Expand thin service and location pages.
- Indexable pages missing an H1 — up to 2 URLs; fix: Add one clear descriptive H1 to each page.
- Duplicate page titles found — up to 2 URLs; fix: Create a unique title for each search intent.
- Images: Over 100 KB — up to 312 URLs; fix: Uncompressed images bloat pages with unnecessary bytes, so ensure images are optimised with compression, properly scaled, and using the best image format to reduce file size where possible.
Out of scope unless added later: competitor analysis, link acquisition, paid media, CWV field monitoring, and CMS rebuilds beyond template-level SEO fixes. Pricing and payment are handled in a separate email conversation.