SEO Growth Audit

The site is built to win Orange County. Now make sure Google knows it’s yours.

Custom Painting & Decorating has 138 live pages, 77 blog posts, a Google reviews widget on 130 of them, and an active contractor licence. But the business data on every page places the company at a Livermore address, with a phone number the site never shows. 21 city and service pages have no links pointing to them, and the About and Contact menu links send visitors back to the homepage. Each of these is a one-time fix.

Prepared byTheStacc
DateOctober 2026
Pages Audited138 crawled · 3 competitors
Overall Score71 / 100

You out-publish two of your three competitors. The posts just aren’t wired to the pages that win jobs.

Articles counted URL by URL in each company’s sitemap on 26 October 2026. The three competitors are the Orange County painting companies that came up most often across 8 local painting searches. Directories such as HomeAdvisor, Yelp and Angi were excluded.

Custom Painting & Decorating
77
77 posts · 4 in October 2026
sopaint.com
0
0 posts · 6 city pages
riotreno.com
47
47 posts · 20 city pages
certapro.com/oc
86
86 articles · 44 city pages
138
Live sitemap URLs, all indexable
77
Blog posts (Oct 2024 – Oct 2026)
23
City area pages
21
Pages with zero internal links

Buyer questions: what an Orange County homeowner finds on your site

Ten questions drawn from your own services and the local searches we ran. “Thin” means a page exists but no other page links to it, or another page competes for the same question.

Buyer questionIntentYour pageCoverageCompetitor page that answers it
Best house painters in Orange CountyLocal/ (H1 “Premier House Painters Orange County”)Coveredcertapro.com/oc/house-painters-orange-county-ca/
Kitchen cabinet painting, Orange CountyCommercial/residential/cabinet-painting/Coveredcertapro.com/oc/…/cabinet-refinishing-services/
Commercial painting contractor, Orange CountyCommercial/commercial/Coveredsopaint.com (commercial specialist)
Exterior house painting in IrvineLocal/residential/exterior-painting-irvine/ (0 internal links)Thinriotreno.com/painters/irvine
Interior painters in Newport BeachLocal/areas/newport-beach-ca/ (shared template text)Thincertapro.com/oc/house-painters-newport-beach/
Painting contractor in Mission ViejoLocal/areas/mission-viejo-ca/ + /areas/mission-viejo-painters/Thincertapro.com/oc/best-painting-contractors-mission-viejo/
Drywall repair in Huntington BeachLocal/residential/drywall-repair-huntington-beach/ (titled “Irvine”)Thincertapro.com/oc/drywall-repair-services/
HOA painting rules in Orange CountyInformational/blog/hoa-painting-requirements-in-orange-county/ (0 internal links)Thinriotreno.com/blog/hoa-painting-rules-orange-county
How much does it cost to paint a house in Orange County?CommercialNo page (cost posts cover cabinets and rentals only)Missingriotreno.com/blog/house-painting-cost-orange-county
Stucco painting and repairCommercialNo pageMissingcertapro.com/oc/…/stucco-painting-repair/
0 links
Your exterior-painting page for Irvine has no links pointing to it from anywhere on your own site. The same is true of all 10 city-plus-service pages (exterior painting in Irvine, Dana Point, Huntington Beach and Corona del Mar; cabinet painting in Anaheim and Yorba Linda; and four more). They are your most specific pages for high-intent searches, and today Google can only find them through the sitemap.

AI assistants can read your site. Your business data tells them you’re in Livermore.

Six checks scored directly against your live site on 26 October 2026: crawler access, business schema, answer-ready content, quotable proof, entity consistency and crawl guidance files. We also asked an AI assistant with web search seven questions a homeowner would ask.

VerifiedRead directly from your site: page code, robots file, sitemaps, Lighthouse runs and live crawler requests. Artifact on file.
Third-partyRead from a competitor’s public site, a licence record or our search sample on the audit date.
SampledAn AI assistant’s answer on the audit date. Answers vary from run to run; the verbatim text is saved.
56out of 100

Readable, but misidentified

Your pages answer real questions: 437 question-style headings across 104 pages, FAQ sections on 56, and service pages of 1,500 words or more. But the LocalBusiness markup on all 138 pages gives a Livermore street address and a phone number that appears nowhere else. The site uses three versions of the business name, and no page shows the licence number assistants use to confirm a contractor.

ComponentWeightRaw EvidenceScoreConfidence
AI crawler access20robots.txt allows every crawler. ClaudeBot, PerplexityBot, Google-Extended and CCBot get HTTP 200; requests identifying as GPTBot got HTTP 429 on all 7 tries16Verified · high
Entity and business schema20LocalBusiness on every page, but with a Livermore address and an unlisted phone; generic type instead of HousePainter; no Service or sameAs links; JSON-LD parses cleanly6Verified · high
Answer-ready content20437 question headings on 104 pages, FAQ accordions on 56; FAQPage markup on only 2 pages16Verified · high
Trust and proof AI can quote15Owner named and a Google reviews widget on 130 pages; no licence number on any page; blog authors are agency email addresses7Verified · high
Entity consistency15Three business names in use; schema address in Livermore vs licence-record address in Anaheim; four phone numbers3Verified · high
Crawl guidance files10Rank Math llms.txt is live; the XML sitemap is valid but robots.txt lists it without the “Sitemap:” directive8Verified · high
Composite10016 + 6 + 16 + 7 + 3 + 856

We asked an AI assistant 7 homeowner questions. You were named in 2.

Grok with web search on, 26 October 2026. Questions covered house painters in Orange County, exterior painting in Irvine, cabinet painting, interior painters in Newport Beach, a contractor in Mission Viejo, drywall repair in Huntington Beach and commercial painting. You came up only for cabinet painting (“a reasonable extra quote”) and Newport Beach interiors. Both answers drew on Yelp, Angi and the licence record, not on your website. These are the sites the answers cited most:

Cited siteAnswers citing itSource
yelp.com6 of 7Sampled · medium
cslb.ca.gov (contractor licence board)6 of 7Sampled · medium
buildzoom.com (licence records)5 of 7Sampled · medium
angi.com3 of 7Sampled · medium
houzz.com3 of 7Sampled · medium
6 of 7
Six of the seven answers checked the state licence board before recommending anyone. Your licence (CSLB #1040338, painting and general building) is active, but your site never shows it. The public record lists 2300 S Lewis St, Anaheim and (949) 887-3411, which matches neither your site’s phone nor the Livermore address in your markup. When the sources disagree, the assistant can’t be sure they describe one company, so it tends to recommend another.

Current SEO health: 71 out of 100

Twelve weighted dimensions, scored from a full crawl of 138 live pages, the sitemaps and robots file, Lighthouse runs on five key pages, a rendered-browser check of tracking and the first screen, and crawls of three Orange County competitors. A hard cap is applied for slow mobile interactivity.

71out of 100

Strong engine, wrong address

Content depth, the quote path and tracking are already better than most local contractor sites. What holds the score back is identity and wiring. The business data points to the wrong city, the menu and missing pages redirect to the homepage, city pages repeat each other, and mobile pages block for over a second while the inline CSS loads.

Quote form + tap-to-call on every page 77 blog posts GA4 + call tracking Schema says Livermore 21 pages with no internal links No H1 on blog posts Mobile TBT 1.1 s Licence not shown
Indexation and Crawlability83
All 138 sitemap URLs return 200, are indexable and canonicalise to themselves. Three problems: robots.txt lists the sitemap without the “Sitemap:” directive, missing URLs redirect to the homepage instead of returning 404, and /thank-you/ can be indexed.
Metadata and SERP Presentation72
None of the 77 blog posts has an H1. Four core titles end in “- Custompainting-inc.com”, 6 titles run past 65 characters and 3 pairs are duplicates. Open Graph tags are complete on every page.
Structured Data and AI Readiness59
JSON-LD @types found: AggregateRating, Answer, Article, BlogPosting, CollectionPage, FAQPage, GeoCoordinates, ImageObject, LocalBusiness, OpeningHoursSpecification, Organization, Person, PostalAddress, Question, SearchAction, WebPage, WebSite. LocalBusiness carries a Livermore address; service pages are marked as Article; there is no Service, BreadcrumbList or HousePainter.
Performance and Core Web Vitals50
Desktop Lighthouse 99. Mobile 75, with LCP 2.1 s and CLS 0, but total blocking time 1,124 ms; the 5 pages tested range from 896 to 1,341 ms. Each page ships about 1.4 MB of HTML, much of it inline CSS. The poor-TBT cap applies.
Mobile UX and Accessibility65
Viewport, tap targets and font sizes pass. Lighthouse accessibility is 80: icon links have no names, heading levels skip, and some text has low contrast. Capped by the slow mobile blocking time.
Content Business Value89
Service pages run about 1,700 to 2,000 words, with a reviews widget and a quote form on the page. Area pages are the weak spot: 59 to 70% of their text is shared with other area pages, and they carry no city-specific projects or reviews.
Search Intent Coverage66
Of 10 buyer questions, 3 are covered and 5 are thin (the page has no internal links or another page competes for it). 2 are missing: house-painting cost and stucco painting and repair.
Internal Linking and Architecture63
The Residential, Commercial and Areas hubs are clear. But 21 pages have no internal links pointing to them, including all 10 city-plus-service pages, and the About and Contact menu links redirect to the homepage on every page.
Conversion Readiness95
Every page has a 5-field quote form, tap-to-call links and a sticky “Get Free Proposal” button, and a Google reviews widget appears on 130 pages including the contact page. GA4 fires on mobile only after the first tap.
Local Trust and E-E-A-T60
The Google reviews and the named owner are real strengths. But no page shows an address or CSLB #1040338, four phone numbers are in use, the schema says Livermore, and blog posts are signed by agency email addresses.
Competitive Gap62
You have 77 posts against 86, 47 and 0 at the three competitors, so volume isn’t the gap. All three competitors show a licence number. Riot and Southern Painting mark up the right business type and address, and Riot and CertaPro publish cost guides.
Analytics and Measurement83
GA4 (G-7N7BSNW8WH), a Google Ads tag, two Tag Manager containers and CallRail call tracking are installed. On mobile, GA4 waits until the visitor first taps, so anyone who reads and leaves without tapping goes unrecorded.

What is already working

Most local contractor sites don’t have these. The plan keeps every one of them and builds on top.

Strength

A quote path on every single page

All 138 pages carry a quote form with only 5 fields (name, email, phone and service), and tap-to-call links, and 130 of them show a Google reviews widget. On mobile, the phone sits in the header and a “Get Free Proposal” button stays pinned to the screen. CallRail and a Google Ads tag are already recording calls and conversions.

Strength

Real content depth, published steadily

77 blog posts went up between October 2024 and October 2026, four of them this month. Service pages run 1,500 words or more, and 104 pages carry question-style headings: 437 answers that search engines and AI assistants can quote. Few painters in Orange County publish at this rate.

Strength

A clean technical base

Every sitemap URL returns 200, is indexable and canonicalises to itself. HTTPS and the www version redirect in a single hop, and the server responds in about 0.2 s. Desktop Lighthouse scores 99 and mobile pages paint their main content in 2.1 s with zero layout shift. An llms.txt file is already live.

One identity, every city page connected, every buyer question answered

The content already exists. The moves below make Google, maps and AI assistants confident about who you are, then point that confidence at the pages that sell, highest-impact first.

01
Local identity

Give every source the same name, address and phone

Replace the Livermore LocalBusiness markup with HousePainter markup. Use the exact name, phone and service area from your Google Business Profile, with sameAs links to Yelp, Angi, Facebook and Instagram. Pick one public number and keep CallRail’s tracking numbers out of the markup. Show CSLB #1040338 in the footer and on the About page.

02
Internal links

Connect the 21 pages nothing links to

Exterior painting in Irvine, Dana Point, Corona del Mar and Huntington Beach; cabinet painting in Anaheim and Yorba Linda; drywall repair in Huntington Beach and Irvine. Link each from its parent service page (“Exterior painting by city”) and from the matching area page (“Services in Irvine”).

03
Cannibalisation

One page per question

Merge /areas/costa-mesa-painters/ and /areas/mission-viejo-painters/ into their city pages with 301 redirects. Give the Huntington Beach drywall page and the Mission Viejo cabinet page their own titles: today they carry the Irvine and Anaheim titles. Give /areas/corona-del-mar-ca/ a title of its own.

04
City pages

Make each area page about its city

Your 23 area pages share 59 to 70% of their text. Start with Irvine, Newport Beach, Huntington Beach, Mission Viejo and Laguna Niguel: add the neighbourhoods and HOAs you work in, coastal and stucco notes, two or three project photos with captions, and a review from that city.

05
Content gaps

Answer the two questions competitors already own

“How much does it cost to paint a house in Orange County?” and stucco painting and repair. Riot Renovation publishes house-painting and Irvine exterior cost guides and three stucco posts; CertaPro has an exterior pricing guide and a stucco service page. You have neither.

06
E-E-A-T

Put a painter’s name on the expertise

Your blog posts are signed “dillon@paintandprofits.com” and “seo@paintandprofits.com”. Publish them under Cesar Munoz or a named estimator, with a short bio (years in the trade, licence, projects). Then add FAQPage markup to the 56 pages that already have FAQ sections.

21 → 0
Pages with no internal links (target for month 1). No new content is needed for this step. The city-plus-service pages already exist; they just need links from the service and area pages a homeowner is already reading.

One-time fixes, not a rebuild

Each item names what we observed and the fix. All code-level items are covered in this plan under Growth Complete technical SEO.

!
Replace the LocalBusiness markup — on all 138 pages it reads “97 Rickenbacker Cir, Livermore, CA 94551”, phone +1-949-997-1724, with a self-declared 5.0 rating from 61 reviews. Swap it for HousePainter with your real name, phone, service area, opening hours and sameAs links, and drop the hard-coded rating. Covered in this plan.
!
Fix the About and Contact menu links — the menu links to /about-us and /contact, and both redirect to the homepage. Point them at /about/ and /contact-us/. Remove the trailing space in the footer’s terms link (/terms-conditions%20). Covered in this plan.
!
Return real 404s — every unknown URL (/jobs/, /tag/x/, /areas/orange-county-ca/) 301-redirects to the homepage, which Google treats as a soft 404. Serve a 404 page that links to your services and areas. Keep 301s only for old URLs with a true replacement, such as /residential/drywall/ to /residential/drywall-repair/. Covered in this plan.
!
Make the blog post title an H1 — the single-post template renders the title as an H2, so none of the 77 posts has an H1. One template change fixes all of them. Covered in this plan.
!
Check why GPTBot gets HTTP 429 — requests identifying as OpenAI’s GPTBot were refused with 429 on 7 of 7 tries, while ClaudeBot, PerplexityBot and Google-Extended got 200. Review the hosting panel’s bot protection. Covered in this plan.
!
Fix the robots.txt sitemap line — the last line is the bare sitemap URL. Change it to “Sitemap: https://custompainting-inc.com/sitemap_index.xml”. Covered in this plan.
!
Cut mobile blocking time — each page ships about 1.4 MB of HTML, roughly 769 KB of it inline CSS, and mobile total blocking time runs 896 to 1,341 ms. Switch Elementor’s CSS output to external files, load the reviews widget on scroll, and let GA4 fire on page load rather than on the first tap. Covered in this plan.
!
Rewrite weak and duplicate titles — replace “About - Custompainting-inc.com” and the other three defaults, trim the 6 titles over 65 characters, and add a meta description to /blog/. Covered in this plan.
!
Mark up services and FAQs correctly — service and area pages are marked as Article with an agency email as author. Use Service markup and add FAQPage to the 56 pages with FAQ sections, starting with the homepage’s 8 questions. Covered in this plan.
!
Small cleanups — noindex /thank-you/; replace 5 expired images on /blog/paint-sheen-explained/ (they now return 403); remove the speed plugin’s free-tier footer link; replace links to two other painting companies in 5 posts; fix the logo alt text “coustom painting” and the /exterior-painting-laguna-nigel/ slug. Covered in this plan.
✓
Indexing, HTTPS, tracking and llms.txt already in place — 138 of 138 sitemap URLs return 200 and are self-canonical; GA4, Tag Manager and CallRail are installed; llms.txt is live. Keep these intact through the changes.

How you compare with the painters Orange County homeowners also find

These are the Orange County painting companies that came up most often across 8 local searches. We analysed each one’s homepage and sitemap on 26 October 2026; CertaPro’s figures cover its Orange County branch site, certapro.com/oc.

DimensionCustom Painting & Decoratingcertapro.com/ocriotreno.comsopaint.com
Contractor licence number shownNone (holds active #1040338)Lic # 985901License #1139813License #425626
Business markup and addressLocalBusiness, Livermore addressNone on homepageHousePainter, Irvine addressHomeAndConstructionBusiness, Costa Mesa address
JSON-LD @types on homepage1271515
Blog or article posts7786470
City pages23 area + 15 city/service, 59-70% shared text44206
House-painting cost guideNoneExterior pricing guideHouse and Irvine exterior cost guidesNone
Stucco painting and repairNo pageService page3 postsNo page
FAQ markup or FAQ pageFAQ sections on 56 pages, markup on 2/commercial-faqs/ page/faq pageFAQPage on homepage
Review markupSelf-declared rating in the Livermore markupNoneReview + AggregateRatingNone
GPTBot requestHTTP 429HTTP 429HTTP 200HTTP 200
Tap-to-call linkEvery pageYesYesYes
3 of 3
Every competitor puts its licence number on the page. You hold an active licence and show none. You do have something they lack: more content than Riot or Southern Painting, a quote form and reviews on every page, and steady publishing. The fixes above turn that into rankings and recommendations.

Growth Complete: fix the identity, then compound the content you already have

Recommended: Growth Complete — $1,299/mo ($12,990/yr billed annually). Alternative: Growth Pro at $999/mo, if your web team takes on the code-level fixes. The wrong business markup, soft-404 redirects, the missing blog H1s and mobile blocking time put technical SEO in scope from week one.

Track A — Content, Local & Social

City pages, buyer answers and a consistent local profile

Included in Growth Complete: blog content, Google Business Profile posts, daily review responses, social distribution and a monthly strategy call.
Week 1-2
Align the business name, phone and service area across the Google Business Profile, Yelp and Angi; add internal links to the 21 pages that have none.
Week 3-4
Rewrite Irvine, Newport Beach, Huntington Beach, Mission Viejo and Laguna Niguel as genuinely local pages with projects, photos and reviews from each city.
Month 2
Publish an Orange County house-painting cost guide and a stucco painting and repair page; merge the duplicate area pages and overlapping blog posts.
Ongoing
Buyer-question articles signed by a named painter, Google Business Profile posts, review replies and social posts every week.
Track B — Technical SEO

One identity, clean routing, faster mobile

Covered in this plan: Growth Complete includes code-level technical SEO.
Day 1
Replace the LocalBusiness markup with HousePainter using the real NAP; add the licence number to the footer; fix the About, Contact and terms menu links.
Day 2-3
Real 404s instead of homepage redirects; targeted 301s for old URLs; fix the robots.txt sitemap line; noindex /thank-you/; check the GPTBot 429 setting.
Day 4-5
H1 on all 77 blog posts; Service and FAQPage markup; rewrite the titles; move blog authors from agency emails to a named painter.
Day 6-10
Mobile speed pass: external CSS, deferred reviews widget, GA4 firing on load; target total blocking time under 300 ms.
Verify
Re-run Lighthouse and the Rich Results Test, and re-crawl to confirm zero pages without internal links and zero redirecting menu links.

What’s knowable now,
and what isn’t

Current values are measured. Targets are labelled projections with their assumptions stated. They are not promises of traffic or leads.

Pages with no internal links · Deterministic
21
0
Assumption: every city-plus-service page is linked from its service page and its area page in Track A, weeks 1-2.
SEO health score · Calculable
71
85
Projection: the schema, internal-link, metadata, trust and mobile-speed fixes lift the capped and weakest dimensions. Re-scored with the same 12-dimension method.
AI search readiness · Calculable
56
85
Projection: correct HousePainter markup, one name and phone everywhere, the licence number shown, FAQPage markup and GPTBot access.
Quote requests and calls · Unpredictable
Baseline needed
Tracked
GA4 and CallRail are already installed. Month 1 sets the baseline from your own data before anyone projects lead numbers.
Month 3
Judge the first quarter on what can be checked. Correct markup, zero pages without internal links, working menu links, real 404s and the mobile blocking time can all be verified early. Rankings, map visibility and calls lag, and come into view once Search Console, GA4 and CallRail have three months of data. Most clients see meaningful ranking improvements within 3-6 months.

Growth Complete — $1,299/mo

We rebuild your city pages, publish a weekly buyer-question library, manage your Google Business Profile, reviews and social posting, and make every code-level fix in this report for you. Billed annually at $12,990/yr. Your local pages, NAP, reviews and service-area signals tell one consistent story, so Google, maps and AI assistants can recommend the right company.

Book a demo — Growth Complete →
hello@thestacc.com