# The Mega Analyzer now reads handyman and home-services sites: what a local trade has to ship before &#39;near me&#39; can find it

A new Mega Analyzer vertical for handyman and home-services businesses. LocalBusiness schema, Google Business Profile, the client-rendered-SPA trap, placeholder phones, reviews, and the trade-licensing claims that have to be substantiated.

Author: J.A. Watte
Published: May 31, 2026
Source: https://jwatte.com/blog/blog-mega-analyzer-handyman-local-service-readiness/

---

I reviewed a brand-new handyman site recently. Clean build, fast, good security headers, decent content across a home page, a services page, and a page for each trade. In a browser it looked ready to launch. Then I looked at it the way Google and an AI answer engine actually look at it, and almost none of it was there.

That gap, between a site that looks finished to its owner and one that is legible to the machines that bring a local trade its customers, is now its own check in the [Mega Analyzer](/tools/mega-analyzer/). When it detects a handyman / home-repair / home-services business (trade keywords like plumbing, electrical, painting, drywall, carpentry; "licensed, bonded, insured"; "free quote"; a service area; or `LocalBusiness` / `HomeAndConstructionBusiness` schema), it runs a local-service readiness pass. Here is what it checks and why each one decides whether the phone rings.

## The trap that beats everything else: a site that is invisible without JavaScript

The site I reviewed was a client-rendered single-page app. The raw HTML the server sent was a near-empty shell, about a hundred words; the real content, around 4,000 words across the pages, only appeared after the browser ran JavaScript. To a person, fine. To a crawler that does not run JS, to a link preview when someone texts your site to a friend, and to many AI answer engines, every page was **blank**.

For a "handyman near me" business whose entire discovery is search, the local map pack, and AI answers, that is the single most damaging thing that can be wrong, and it is invisible to the owner because it looks perfect in their browser. So the check now compares the raw HTML to the rendered content and flags the SPA-invisibility trap directly. The fix is to prerender or server-render the pages (Netlify prerendering, a static pre-render at build time, or framework SSR) so the content and the structured data ship in the initial HTML. Everything else on this list is wasted until the machines can read the page.

## The LocalBusiness node is how a trade gets placed on the map

Google's local pack and AI answers identify and rank a local business primarily from three things: a `LocalBusiness` node in your schema, a Google Business Profile, and consistent name/address/phone across the web. The site I reviewed had zero `LocalBusiness` schema, while nine of the twelve competitors I benchmarked shipped it.

The check looks for the full local entity: a `HomeAndConstructionBusiness` / `LocalBusiness` node with a `telephone` (and a matching `tel:` click-to-call link), a `PostalAddress` or, for a service-area business with no storefront, an `areaServed` list of the cities you cover, `geo` coordinates, `openingHoursSpecification`, and a `sameAs` that points at your Google Business Profile and socials. A service-area handyman who skips `areaServed` is invisible to every surrounding-city search.

It also rewards a near-open lane: a `Service` node per trade (`serviceType` handyman, plumbing, electrical, painting, drywall, carpentry) with its own `areaServed`. Almost no competitor ships this, and it is exactly how an AI answer maps "who does drywall repair in my town" to a specific business.

## Google Business Profile is the lead source, not a nice-to-have

For a handyman, the Google Business Profile is the single biggest source of calls and the engine that collects reviews and powers the map pack. The check flags the absence of any Google Maps or Business Profile link, because for this trade a website without a Business Profile behind it is a brochure, not a lead machine. Create it, verify it, fill it completely with services, service area, hours, real photos of your work, and Q&A, and make the name, address, and phone match the site exactly.

## The placeholder-phone trap

Here is a small check that catches a surprisingly common, embarrassing problem. Template and demo sites ship with fake "555-01xx" phone numbers, which are reserved for directory and fictional use. If one of those is still on the live site, the business is advertising a number that cannot receive calls, and it signals "unfinished" to anyone who notices. The check flags any 555-01xx number so it gets replaced with the real one everywhere it appears, visible text, schema, and Business Profile, all identical.

## Reviews, handled honestly

Reviews are the top trust and ranking signal for a local trade. The check flags two situations: a site that claims "5-star" or "highly rated" but has no machine-readable `AggregateRating` (the stars are invisible to search), and a site with no review program at all. The fix order matters: drive real reviews through the Google Business Profile first, then emit `AggregateRating` with the real count once they exist. It will not tell you to fabricate a rating, because the FTC's consumer-review rule (16 CFR Part 465) makes fake or incentivized reviews unlawful, and the machine-readable number carries the same liability as the visible claim.

## The licensing guardrail

This is the one that protects the owner. The check notices when a site advertises "licensed, bonded, and insured" alongside plumbing, electrical, or HVAC work. In most states a general handyman license does not cover those trades; they are separately state-licensed, and advertising them without the trade license is both an enforcement risk and a liability risk. The finding is not a verdict, it is a prompt: confirm the actual license held, name the license type or number where the city requires it, and either hold the trade license, limit those pages to clearly minor non-licensed scope, or disclaim and refer. The same goes for "15 years" and "5-star": every trust claim has to be substantiable before it goes live.

## The quieter ones

The check also covers `Person` schema for the owner (for an owner-operated trade, the named person is the brand and a real photo plus a `Person` node is a top conversion driver), `FAQPage` on the service pages (the surface AI Overviews lift for "how much does a handyman cost / do you do small jobs / are you licensed"), Open Graph tags so a shared link renders properly instead of as a bare URL (referrals are how handymen grow), and a sitemap signal, which matters most right after a domain move.

## How to use it

Run your site through the [Mega Analyzer](/tools/mega-analyzer/). If it detects a home-services business you will get the handyman readiness card with a copy-ready fix prompt that walks through the fixes in order, crawlability first, then the local business node, then the Business Profile. Validate the schema with the [Schema Validator](/tools/schema-validator/).

If you are a tradesperson building your own site, none of this needs an agency. It is a prerender setting, a block of JSON-LD, a free Google Business Profile, and honest copy. That self-reliant, do-it-with-free-tools approach is the whole thesis of my book *The $20 Dollar Agency*.

## Fact-check notes and sources

- schema.org `LocalBusiness`, `HomeAndConstructionBusiness`, `Service`, `areaServed`, `openingHoursSpecification`: [schema.org/LocalBusiness](https://schema.org/LocalBusiness)
- Google local business structured data + Business Profile ranking: [developers.google.com](https://developers.google.com/search/docs/appearance/structured-data/local-business) and [support.google.com/business](https://support.google.com/business/answer/7091)
- Google guidance on JavaScript SEO / rendering (why client-only rendering hurts discovery): [developers.google.com](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)
- FTC Rule on Consumer Reviews and Testimonials, 16 CFR Part 465 (2024): [ftc.gov](https://www.ftc.gov/news-events/news/press-releases/2024/08/federal-trade-commission-announces-final-rule-banning-fake-reviews-testimonials)
- 555-01xx as reserved fictional phone numbers (NANPA): [nationalnanpa.com](https://nationalnanpa.com/)

## Related reading

- [The Mega Analyzer now reads DTC stores: making your shop legible to AI shopping](/blog/blog-mega-analyzer-ecommerce-dtc-readiness/)
- [Cross-platform brand presence: the sameAs breadth that makes a business citable](/blog/blog-dtc-brand-presence-entity-alignment/)
- [The ProfilePage and mainEntity binding that AI Mode actually reads](/blog/blog-tool-profilepage-mainentity-typed-reference/)

*This post is informational, not legal advice. Trade-licensing and advertising rules vary by state and municipality; confirm your local rules before publishing trust claims. Any business reviewed was either my own, a site I was given permission to use, or anonymized as "a site I was asked to review."*


---

Canonical HTML: https://jwatte.com/blog/blog-mega-analyzer-handyman-local-service-readiness/
RSS: https://jwatte.com/feed.xml
JSON Feed: https://jwatte.com/feed.json
Hero image: https://jwatte.com/images/blog-mega-analyzer-handyman-local-service-readiness.webp
