Skip to content
https://www.charlotteroofing.com/?utm_source=g-local&utm_medium=organic&utm_campaign=GMB

SEO

· 14 checks — Canonical, meta, content depth, internal links, image SEO, and hreflang rolled into one auditable list.
SCORE
88
GRADE
B
FIX
0
REVIEW
3
PASS
10
INFO
1

Cross-tab audit — SEO, performance, crawlability, mobile, structured data

Checks
14
10 PASS 3 REVIEW
C
Content Depth
Action
696 words, Difficult
REVIEW
696 words, Difficult
Info::
Page has 696 words of content
Info::
Text-to-HTML ratio is 2%
Very low ratio suggests heavy framework overhead or boilerplate.
Info::
Reading level: Difficult (grade 10)
696 words

Good depth

Reading level

Very Easy
Easy
Fairly Easy
Standard
Fairly Difficult
Difficult
Very Difficult

Grade 10

Text-to-HTML Ratio

2% text 98% HTML

4 KB / 178 KB

Very low ratio suggests heavy framework overhead or boilerplate.

Why this matters

Informational: ratio of visible text bytes to total HTML bytes. Very low ratios suggest excessive markup overhead.

C
Sitemap Freshness
Action
No sitemap.xml found
REVIEW
No sitemap.xml found
Info::
No sitemap.xml found
Sitemaps help search engines discover and prioritize URLs. Not strictly required for small sites where every page is linked from the homepage, but recommended once a site grows beyond a few dozen URLs.
C
Sitemap × Robots Consistency
Action
Sitemap or robots.txt missing -- consistency check skipped
REVIEW
Sitemap or robots.txt missing -- consistency check skipped
Info::
Cross-check skipped (sitemap or robots.txt absent)
A
Canonical URL
Minor issues
PASS
Minor issues
Info::
Canonical tag present
Got: https://www.charlotteroofing.com/
Warning::
Canonical does not match final URL (https://www.charlotteroofing.com/?utm_source=g-local&utm_medium=organic&utm_campaign=GMB)
Info::
Canonical target returns 202
Info::
URL contains 3 tracking parameters
Got: utm_source=g-local&utm_medium=organic&utm_campaign=GMB
Canonical URL Configured
Page URL https://www.charlotteroofing.com/?utm_source=g-local&utm_medium=organic&utm_campaign=GMB Canonical https://www.charlotteroofing.com/ Match Points to a different page Target 202 ✓
A
Meta Tags
Title optimized
PASS
Title optimized
Info::
Page title is set
Got: Professional Roofers Charlotte NC | Charlotte Roofing
Info::
Title length (53 chars) is optimal
Info::
Meta description length (121 chars) is optimal
Info::
Title and H1 have very different wording
Alignment helps users confirm they've reached the right page.
Warning::
Page is set to noindex
This page will not appear in search results.
Title

"Professional Roofers Charlotte NC | Charlotte Roofing"

53 characters Optimal ✓
Title: Professional Roofers Charlotte NC | Charlotte Roofing
H1: Protect Your Most Valuable Asset & Those Who Live In It.
Match: Very different
Robots: noindex set — page excluded from search

Alignment helps users confirm they've reached the right page.

Why this matters

Title and H1 disagree significantly — Google may treat one as the canonical topic and the other as off-topic, weakening ranking.

Learn more

Title is the SERP headline; H1 is the on-page headline. They should describe the same page. Large divergence (different topics, different keywords) signals confusion and Google may rewrite the title in SERP. Align both to the same primary topic.

Source: Google Search Central / on-page SEO

This page will not appear in search results.

Why this matters

noindex tells Google to remove the page from search results — fine if intentional, catastrophic if shipped accidentally.

Learn more

noindex (in <meta name="robots"> or X-Robots-Tag header) is the strongest signal for removal from search. Common deployment mistake: a staging-environment robots template ships to prod. If this finding is on a page you WANT indexed, remove the noindex immediately and request reindexing in Search Console.

Source: Google Search Central

A+
Title Style Depth
Title style is clean -- consistent separator, no stale year, no keyword stuffing
PASS
Title style is clean -- consistent separator, no stale year, no keyword stuffing
Info::
Title style is clean
A+
Image SEO
40 images, 40 descriptive filenames
PASS
40 images, 40 descriptive filenames
Info::
All images have descriptive filenames
40 descriptive
0 hash-based
0 generic
40 total
All images have descriptive filenames and proper SEO attributes.

See Accessibility tab for detailed alt text quality analysis.

A+
Hreflang URL Quality
No hreflang tags on the page
PASS
No hreflang tags on the page
Info::
No hreflang tags on the page
A+
Hreflang Completeness
No hreflang tags on this page -- check is N/A (single-language site or unannotated)
PASS
No hreflang tags on this page -- check is N/A (single-language site or unannotated)
Info::
No hreflang tags found -- completeness check is N/A
A+
Sitemap Hygiene
No sitemap to evaluate -- depth check is N/A
PASS
No sitemap to evaluate -- depth check is N/A
Info::
No sitemap fetched -- depth check skipped
A
Markup Quality
2 markup-quality issue(s) detected
PASS
2 markup-quality issue(s) detected
Info::
`<meta charset>` declared at byte 3313 -- past the 1024-byte spec window
The HTML5 spec requires the encoding declaration to appear in the first 1024 bytes. Browsers that started parsing in a default encoding and discover the real charset later DISCARD parsing state and re-parse from the top -- a measurable hit to First Contentful Paint. Move the `<meta charset>` tag to be the first child of `<head>`.
Info::
2 redundant ARIA role attribute(s) on native semantic element(s)
The W3C "ARIA in HTML" spec calls this its first rule: don't use ARIA when a native HTML element already conveys the semantics. `<button role="button">`, `<a href role="link">`, `<nav role="navigation">`, `<main role="main">` -- the role attribute either does nothing or shadows the native semantic, occasionally breaking assistive-tech behaviors. Remove the redundant role.
A+
Schema Markup Audit
1 schema types detected
PASS

Detected schema types

RoofingContractor json-ld
0/0 required

Missing schema opportunities

  • moderate

    Review

    Page has review markup or testimonials that could be marked up

    Enables star-rating snippets in search

  • moderate

    VideoObject

    Page embeds video content that could be marked up as VideoObject

    Videos appear in the video carousel and have a thumbnail badge

Hreflang
0 hreflang tags
INFO
0 hreflang tags

No hreflang tags detected.

Hreflang tags are only needed for multilingual or multi-regional sites.

All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback