SEO & GEO Audit Report

https://www.jbrownpainting.com

90
Overall
89
SEO
91
GEO
Grade: A
2026-06-03 15:17 UTC
geoseo.today

Executive Summary

Your site is well-optimized. Focus on the remaining details to reach excellence.
Strengths
  • Meta & Social Tags
  • URL & Keywords
  • Content Quality
  • Technical
  • Robots.txt & Crawlability
Weaknesses
  • Images
  • Alt Text
  • JSON-LD Syntax
Quick Wins
    SERP Preview
    Affordable House Painters in San Diego | J Brown Painting
    https://www.jbrownpainting.com
    Looking for painters in San Diego? We're your one-stop shop for quick turnarounds, affordable pricing, excellent communication, and attention to detail.

    SEO Overview

    Meta & Social Tags
    100
    7 pass 0 warn 0 crit 0 info
    URL & Keywords
    100
    2 pass 0 warn 0 crit 0 info
    Headings Structure
    88
    3 pass 1 warn 0 crit 0 info
    Content Quality
    100
    6 pass 0 warn 0 crit 0 info
    Images
    62
    2 pass 1 warn 1 crit 0 info
    Links
    86
    3 pass 1 warn 0 crit 1 info
    Schema / Structured Data
    75
    3 pass 0 warn 1 crit 0 info
    Technical
    99
    17 pass 0 warn 0 crit 1 info
    Performance (Core Web Vitals)
    80
    0 pass 0 warn 0 crit 1 info
    Robots.txt & Crawlability
    97
    5 pass 0 warn 0 crit 1 info
    Security
    82
    2 pass 1 warn 0 crit 3 info
    HTML Validation
    80
    0 pass 0 warn 0 crit 1 info

    SEO Detailed Results

    Meta & Social Tags

    100/100
    Title Tag
    Good title (57 chars): "Affordable House Painters in San Diego | J Brown Painting"
    Meta Description
    Good description (152 chars)
    Canonical Tag
    Canonical set: https://www.jbrownpainting.com/
    Viewport Meta
    Viewport meta tag present
    HTML Language
    Language set: en-US
    Open Graph
    OG title, description, and image present
    Twitter Card
    Twitter Card meta present

    URL & Keywords

    100/100
    URL Length
    URL length OK (31 chars)
    URL Structure
    Homepage URL

    Headings Structure

    88/100
    H1 Tag
    Single H1: "Affordable House Painters in San Diego"
    H2 Tags
    2 H2 tags — good content structure
    H3 Tags
    12 H3 tags for deeper structure
    Heading Hierarchy
    Heading level skipped: H1→H4, H3→H5
    Don't skip heading levels (e.g., H2→H4)

    Content Quality

    100/100
    Word Count
    Good content length: 1599 words
    Paragraphs
    14 substantial paragraphs
    Lists
    18 list(s) found — good for scannability
    Text Emphasis
    4 bold/strong elements
    Internal Links
    28 internal links in content
    Readability
    Good readability (avg 22 words/sentence)

    Images

    62/100
    Image Count
    53 images found
    Alt Text
    12 images missing alt attribute
    Add descriptive alt text to all images
    Alt Text Quality
    Alt texts appear descriptive
    Lazy Loading
    No images use loading="lazy"
    Add lazy loading for below-the-fold images

    Links

    86/100
    Internal Links
    149 internal links
    External Links
    13 external links
    Nofollow
    No nofollow on external links
    Consider nofollow for user-generated or untrusted links
    Anchor Text
    13 links with empty anchor text
    Add descriptive anchor text or aria-label to overlay/icon links
    Accessible Links
    2 links use aria-label/title (good)

    Schema / Structured Data

    75/100
    JSON-LD Syntax
    Invalid JSON-LD found
    Fix JSON syntax in structured data
    Structured Data
    Found: WebPage, ImageObject, BreadcrumbList, WebSite, Organization
    BreadcrumbList Schema
    BreadcrumbList schema detected
    Organization Schema
    Organization schema detected

    Technical

    99/100
    HTTP Status
    200 OK
    HTTPS
    Site uses HTTPS
    Response Time
    Fast response: 0.68s
    Content-Type
    Correct Content-Type: text/html
    Compression
    Compression enabled: br
    Page Size
    Page size: 501 KB
    Google Analytics
    GA4/gtag detected
    Tag Manager
    Google Tag Manager detected
    Search Console
    Google Search Console verification found
    Phone Link
    2 clickable phone link(s)
    Contact Form
    1 form(s) found
    Favicon
    Favicon found: https://cdn-ciohj.nitrocdn.com/CdnEvyUJVyYZAtSeRKc
    Logo
    Logo image found: site-logo
    Mobile Viewport
    Proper viewport: width=device-width, initial-scale=1, maximum-scale=1
    Iframes
    5 iframe(s) found
    Iframes can hurt mobile performance and CLS
    CTA Buttons
    13 call-to-action elements found
    Email Link
    1 mailto link(s)
    Google Maps Link
    Google Maps/GBP link found

    Performance (Core Web Vitals)

    80/100
    PageSpeed
    Google PageSpeed API rate limited — try again later or add PAGESPEED_API_KEY
    Get free API key at console.cloud.google.com

    Robots.txt & Crawlability

    97/100
    robots.txt
    robots.txt found (236 bytes)
    Wildcard UA
    Default rules for all crawlers (User-agent: *)
    WP Admin Blocked
    WordPress admin paths blocked (1 rules)
    Disallow Rules
    4 paths blocked: /cgi-bin/, /recommended/, /comments/feed/, /xmlrpc.php
    Sitemap in robots.txt
    1 sitemap(s) referenced
    Sitemap Accessible
    Sitemap OK: https://www.jbrownpainting.com/sitemap_index.xml

    Security

    82/100
    SSL Certificate
    Valid SSL certificate (expires: Aug 19 16:57:59 2026 GMT)
    HSTS
    No HSTS header
    Add Strict-Transport-Security to enforce HTTPS
    X-Content-Type-Options
    No X-Content-Type-Options header
    X-Frame-Options
    No X-Frame-Options header
    Consider adding to prevent clickjacking
    Content-Security-Policy
    No CSP header
    Consider adding Content-Security-Policy
    Domain Age
    Domain registered: 1985-01-01 (41.4 years)
    Older domains have more authority

    HTML Validation

    80/100
    W3C Validation
    Could not fetch W3C validation
    Test manually at validator.w3.org

    GEO Overview

    AI Comprehension
    84
    Semantic Structure 90
    Machine Readability 80
    Content Scannability 80
    Answer-First Content
    84
    Direct Answers 85
    Question Coverage 100
    Snippet Readiness 65
    Citation Authority
    97
    Author Credibility 100
    Evidence Quality 100
    Trust Signals 90
    Competitive Context
    95
    Competitive Positioning 100
    Content Completeness 95
    Value Clarity 90
    Technical GEO
    93
    AI Accessibility 80
    Schema Richness 100
    Content Delivery 100
    Content Freshness
    100
    Date Signals 100
    Content Currency 100
    Update Frequency 100

    GEO Detailed Results

    AI Comprehension

    84/100
    Semantic Structure 90/100
    Machine Readability 80/100
    Content Scannability 80/100
    AI Analysis
    Content has a strong semantic structure with clear heading hierarchy. Good use of semantic HTML tags.
    script heavy 85% conf medium effort
    Script-to-content ratio is 1449%. Heavy JavaScript makes it harder for AI to extract content.
    no citable passages 85% conf medium effort
    No paragraphs in the optimal range (100-200 words). AI needs self-contained passages to cite.

    Answer-First Content

    84/100
    Direct Answers 85/100
    Question Coverage 100/100
    Snippet Readiness 65/100
    AI Analysis
    Content provides answers but could be more direct in the opening. Found 2 question-format headings — AI prioritizes these.
    buried answer 75% conf medium effort
    First paragraph is 81 words. Lead with a concise 1-2 sentence answer, then elaborate.
    no definitions 70% conf low effort
    No clear 'X is...' definition patterns. AI extracts and cites concise definitions as snippets.
    no summary 65% conf low effort
    Long content without a summary or 'Key Takeaways' section. Add one near the top for AI extraction.

    Citation Authority

    97/100
    Author Credibility 100/100
    Evidence Quality 100/100
    Trust Signals 90/100
    AI Analysis
    Strong author attribution and credibility signals. Good use of data and evidence to support claims. Strong trust signals including reviews and social proof.
    undated content 80% conf low effort
    No publish or update dates. AI considers dated content more trustworthy.

    Competitive Context

    95/100
    Competitive Positioning 100/100
    Content Completeness 95/100
    Value Clarity 90/100
    AI Analysis
    Content includes competitive differentiation — good for AI comparison queries. Content covers all key aspects comprehensively.
    incomplete coverage 70% conf medium effort
    Missing content sections: process/how it works. Complete coverage helps AI provide comprehensive answers.

    Technical GEO

    93/100
    AI Accessibility 80/100
    Schema Richness 100/100
    Content Delivery 100/100
    AI Analysis
    No llms.txt file — create one to improve AI discoverability. Schema markup found: WebPage, ImageObject, BreadcrumbList.
    no llms.txt 95% conf low effort
    No llms.txt file found. This new standard helps AI systems understand your site structure.

    Content Freshness

    100/100
    Date Signals 100/100
    Content Currency 100/100
    Update Frequency 100/100
    AI Analysis
    Content references the current year — good freshness signal. Publish/update dates properly marked.
    No issues detected

    AI-Suggested Fixes

    Field Current Proposed Reason
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzggMTgiIHdpZHRoPSIzOCIgaGVpZ2h0PSIxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4= Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmzggmtgiihdpzhropsizocigagvpz2H0Psixocige Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzggMTgiIHdpZHRoPSIzOCIgaGVpZ2h0PSIxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4= Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmzggmtgiihdpzhropsizocigagvpz2H0Psixocige Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+ Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmzawidmwmcigd2Lkdgg9Ijmwmcigagvpz2H0Psizm Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTUzNiAxMTM4IiB3aWR0aD0iMTUzNiIgaGVpZ2h0PSIxMTM4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg== Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmtuzniaxmtm4Iib3Awr0Ad0Imtuzniigagvpz2H0P Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgODM1IDYyNiIgd2lkdGg9IjgzNSIgaGVpZ2h0PSI2MjYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+ Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagodm1Idyyniigd2Lkdgg9Ijgznsigagvpz2H0Psi2M Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2MCAxOTIwIiB3aWR0aD0iMjU2MCIgaGVpZ2h0PSIxOTIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg== Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmju2Mcaxotiwiib3Awr0Ad0Imju2Mcigagvpz2H0P Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDY5IDYyNSIgd2lkdGg9IjQ2OSIgaGVpZ2h0PSI2MjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+ Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagndy5Idyynsigd2Lkdgg9Ijq2Osigagvpz2H0Psi2M Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+ Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmzawidmwmcigd2Lkdgg9Ijmwmcigagvpz2H0Psizm Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+ Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmzawidmwmcigd2Lkdgg9Ijmwmcigagvpz2H0Psizm Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTUzNiAxMTM4IiB3aWR0aD0iMTUzNiIgaGVpZ2h0PSIxMTM4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg== Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmtuzniaxmtm4Iib3Awr0Ad0Imtuzniigagvpz2H0P Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgODUwIDU4MCIgd2lkdGg9Ijg1MCIgaGVpZ2h0PSI1ODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+ Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagoduwidu4Mcigd2Lkdgg9Ijg1Mcigagvpz2H0Psi1O Descriptive alt text helps SEO and accessibility
    Image Alt Text (empty) — svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTY1IDY0IiB3aWR0aD0iMTY1IiBoZWlnaHQ9IjY0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg== Svg+Xml;Base64,Phn2Zyb2Awv3Qm94Psiwidagmty1Idy0Iib3Awr0Ad0Imty1Iibozwlnahq9Ijy0I Descriptive alt text helps SEO and accessibility
    Target Keywords Current focus: affordable house painters affordable house painters san diego affordable house painters, affordable house painters near me, best affordable house painters san diego affordable house painters, affordable house painters cost san diego affordable house painters, affordable affordable house painters san diego affordable house painters, affordable house painters reviews san diego affordable house painters Consider adding these related keywords naturally in your content for broader ranking potential

    Action Plan

    #1 Alt Text
    critical 15 min
    Images
    Problem: 12 images missing alt attribute
    Action: Add descriptive alt text to all images
    Impact: high
    #2 JSON-LD Syntax
    critical varies
    Schema / Structured Data
    Problem: Invalid JSON-LD found
    Action: Fix JSON syntax in structured data
    Impact: low
    #3 Heading Hierarchy
    warning 15 min
    Headings Structure
    Problem: Heading level skipped: H1→H4, H3→H5
    Action: Don't skip heading levels (e.g., H2→H4)
    Impact: medium
    #4 Lazy Loading
    warning 15 min
    Images
    Problem: No images use loading="lazy"
    Action: Add lazy loading for below-the-fold images
    Impact: medium
    #5 HSTS
    warning 10 min
    Security
    Problem: No HSTS header
    Action: Add Strict-Transport-Security to enforce HTTPS
    Impact: medium
    #6 Anchor Text
    warning varies
    Links
    Problem: 13 links with empty anchor text
    Action: Add descriptive anchor text or aria-label to overlay/icon links
    Impact: low