Mitasys x Right Choice Painting

Technical SEO · 173 pages reviewed · Structured data (schema)

One schema tag, copied across all 173 pages

All 173 pages carry the same business markup; 172 carry nothing else. The fix is high-impact, low-effort, and ships within three months.

What we found

The same business tag, repeated on every page

The site's 173 URLs contain only two distinct schema blocks. One business tag repeats byte for byte on every page; only the FAQ page adds anything more.

173 / 173Pages carrying the exact same business tag (100%)
172 / 173Pages whose only structured data is that one tag
2Distinct schema blocks on the entire website
0Service, location or blog pages with page-specific schema
Current markup, present on every page
// Found byte-for-byte identical on all 173 pages,
// including on this blog post - and it is the only markup present:
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "@id": "https://rightchoicepaintingaz.com/#business",
  "name": "Right Choice Painting, LLC",
  "url": "https://rightchoicepaintingaz.com/",
  "mainEntityOfPage": "https://rightchoicepaintingaz.com/",   // always the homepage
  "aggregateRating": { "ratingValue": "4.5", "reviewCount": "19" },
  ...  // same address, hours and service list repeated on every URL
}

What this means

Search engines never learn what each service, location or blog page is about. Page-specific markup switches those signals on.

Why it matters

What the fix unlocks

The tag itself is well formed. The gains come from deploying it correctly:

Impact

Unlock the rich results the content already deserves

Service, location and blog pages carry no page-specific markup, so none can qualify for richer search results or AI citations. Adding it makes all 173 pages eligible.

Impact

Let each page describe itself

The copied tag points every page's main-entity signal at the homepage, a false signal on 172 pages. Per-page markup corrects it.

Refinement

Name the business precisely

The markup says only ProfessionalService. Pairing it with Schema.org's HousePainter names the painting specialism, while ProfessionalService and the service catalog cover the commercial work.

Refinement

Align the review numbers

The markup says 4.5 from 19 reviews; the site shows 27. Google ignores a business's own rating for stars anyway, so real star visibility comes from Google Business Profile and third-party platforms.

The fix

Correct schema for each page type

Define the business once, typed for both residential and commercial painting, reference it everywhere by one identifier, and give each template its own markup:

Page typePagesRecommended structured data
Homepage 1 The business defined once as HousePainter plus ProfessionalService (covering residential and commercial work), with WebSite and BreadcrumbList
Service pages 12 Service (service type, provider linked to the business, area served) plus BreadcrumbList
Location pages 15 Localized HousePainter or Service scoped to each city, plus BreadcrumbList
Blog posts 130 BlogPosting (headline, dates, image, author and publisher linked to the business) plus BreadcrumbList
Contact, About, FAQ 3 ContactPage, AboutPage and FAQPage (the FAQ markup already exists) plus BreadcrumbList
Hubs, gallery, other 12 CollectionPage or WebPage plus BreadcrumbList as appropriate

What the corrected markup looks like

Homepage: the business defined once, covering residential and commercial painting
{
  "@context": "https://schema.org",
  "@type": ["HousePainter", "ProfessionalService"],
  "@id": "https://rightchoicepaintingaz.com/#business",
  "name": "Right Choice Painting, LLC",
  "url": "https://rightchoicepaintingaz.com/",
  "telephone": "+1-602-350-2202",
  "priceRange": "$$",
  "image": "https://rightchoicepaintingaz.com/wp-content/uploads/right-choice-painting-hero.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1811 W Tanya Trl",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85086",
    "addressCountry": "US"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 33.7408, "longitude": -112.1165 },
  "areaServed": ["Phoenix", "Scottsdale", "Paradise Valley", "Cave Creek",
                 "Anthem", "Peoria", "Glendale"],
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "07:00", "closes": "17:00" },
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday", "opens": "07:00", "closes": "14:00" }
  ],
  "sameAs": [
    "https://www.yelp.com/biz/right-choice-painting-phoenix-2",
    "https://www.bbb.org/us/az/phoenix/profile/painting-contractors/right-choice-painting"
  ]
}
Service page: adds Service, linked to the business
{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://rightchoicepaintingaz.com/residential/interior-residential-painting/#service",
  "name": "Interior Residential Painting",
  "serviceType": "Interior painting",
  "provider": { "@id": "https://rightchoicepaintingaz.com/#business" },
  "areaServed": { "@type": "State", "name": "Arizona" },
  "url": "https://rightchoicepaintingaz.com/residential/interior-residential-painting/"
}
Blog post: adds BlogPosting that describes the post, not the homepage
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "How Long Does Interior Paint Last?",
  "mainEntityOfPage": "https://rightchoicepaintingaz.com/how-long-does-interior-paint-last/",
  "datePublished": "2025-08-14",
  "dateModified": "2026-02-19",
  "author":    { "@id": "https://rightchoicepaintingaz.com/#business" },
  "publisher": { "@id": "https://rightchoicepaintingaz.com/#business" },
  "image": "https://rightchoicepaintingaz.com/wp-content/uploads/interior-paint.jpg"
}

Illustrative markup. The address, hours and service areas are the live business details; per-post fields such as dates, images and headlines are populated automatically for each page. Reference: schema.org/HousePainter and Google's Local Business guidance.

Rollout

Deliverable in three months

The work is well defined and template-driven, so it ships in three focused phases with results visible from the first month.

WhenFocusScope
Month 1 Fix the foundation: define the business once as HousePainter with a single stable identifier, add BreadcrumbList and WebSite site-wide, and correct the per-page main-entity signal so each page describes itself. Site-wide
Month 2 Add page-specific markup to the money pages: Service on the 12 service pages, localized markup on the 15 location pages and hubs, and ContactPage, AboutPage and FAQPage on the key pages. 30 key pages
Month 3 Roll BlogPosting across the blog library, then validate every template in Google's Rich Results Test and monitor eligibility in Search Console. 130 posts + validation

Important context

How to read this audit

01

What we checked

The live structured data on all 173 URLs, confirmed against the pages themselves.

02

The tag is kept, not discarded

The business block is well formed; the plan defines it once and adds the missing page-specific markup.

03

About review stars

Google awards stars via Business Profile and third-party reviews, not a business's own markup. Addressed separately.

04

Validation is built in

Every template passes Google's Rich Results Test, with eligibility tracked in Search Console.

Next steps

Make schema the first 90-day win

A self-contained fix with measurable outcomes: correct markup on every page and more pages eligible for rich results.

Start with the foundation

Define the business once and correct the site-wide signals; the rest builds on top.

See the three-month plan

See the wider programme

Schema is the fast win inside the full local SEO proposal.

Open the proposal