Your Electrician's Schema Markup and Google Business Profile Are Describing Two Different Companies
An electrician in Torrance has a Google Business Profile with "Electrician" as the primary category and "EV Charging Station Contractor" as a secondary one. He added it himself last spring after three EV charger installs came in through referrals. His website — built four years ago by a web design shop that's since disappeared — has exactly one type of structured data on it: a generic LocalBusiness schema block with a name, an address, and a phone number. No service type. No sameAs link back to the Business Profile. No mention anywhere in the code that this company touches EV chargers at all.
He ranks fine for "electrician Torrance." He's never once shown up for "EV charger installation Torrance," "Level 2 charger install South Bay," or any of the dozen variations his own customers are searching. He assumes Google just hasn't caught up yet, or that the category needs more reviews to "kick in." That's not what's happening. Google has two sources describing his business, and they disagree. When Google's entity model can't get corroboration between what your Business Profile claims and what your website's own markup says, it doesn't rank the ambitious version — it defaults to the version everyone agrees on. In his case, that's "electrician." Everything else gets treated as unverified.
Your Website's Schema Is Supposed to Back Up Your GBP — Not Just Repeat Your Name and Number
Most trades websites that were built to "check the SEO box" have schema markup doing exactly one job: confirming the business exists and sits at a specific address. That's the bare minimum LocalBusiness schema — name, address, phone, maybe hours. It tells Google nothing about what the business actually does beyond a generic label, and generic labels don't help you win specific, high-intent searches.
Google's local ranking system pulls signals from several places at once: your Google Business Profile categories and services, your website's structured data, your citations across directories, and the actual text on your pages. When all of those sources say the same thing — "this company does electrical panel upgrades, EV charger installs, and rewiring" — Google treats that as a corroborated fact and is willing to rank you for those specific terms. When your GBP says one thing and your website's schema says nothing at all, or says something generic, Google treats the GBP claim as unverified self-reporting. Business owners add categories and services to their profile constantly, and a meaningful share of them are aspirational — a plumber who did one solar water heater job checks the box for "solar water heater services" and never touches one again. Google has learned to discount profile-only claims that nothing else on the internet backs up.
This is different from the NAP consistency problem, where a business name is spelled differently across listings. That's an identity confusion issue. This is a capability confusion issue — Google knows exactly who you are, and still won't confidently rank you for what you say you do, because your own website won't back you up.
The Mechanism: Google Hedges Toward the Lowest Common Denominator Claim
Here's the part that actually explains the pattern. Google's local algorithm doesn't have to pick a side when signals conflict — it just ranks conservatively. If your GBP says "Electrician, EV Charging Station Contractor, Solar Panel Installer" and your website schema says nothing beyond LocalBusiness, Google isn't going to assume the two secondary claims are true and risk sending a searcher to a business that can't deliver. It ranks you strongly for the one thing every source agrees on — general electrical work — and essentially freezes you out of the specific, higher-margin categories until something corroborates them.
That corroboration mostly comes from structured Service schema entries on your own site, paired with actual page content describing that service, paired with review text mentioning it, paired with citations in relevant directories. When four sources all say "EV charger installation" independently, that's a real signal. When only your GBP says it, that's a claim, not a signal — and Google increasingly treats AI-generated Business Profile suggestions and owner self-entry the same way: unverified until proven.
This is also why the failure compounds over time. A business adds more services to its GBP as it grows, assuming the listing is the source of truth. But if nobody ever updates the website's schema and content to match, the gap between "what we claim" and "what we can prove" widens every year, and so does the gap between the searches you should be winning and the ones you actually win.
Why "Just Add More Keywords to the Page" Doesn't Fix It
The instinct is to go add a paragraph about EV chargers to the homepage and call it done. That helps a little, but plain text without structured data is a much weaker signal than schema, because schema tells Google explicitly and unambiguously what the entity is — it's the difference between mentioning something in passing and stating it as a formal fact in a language the algorithm parses directly. A homepage paragraph is evidence. A Service schema block tied to your LocalBusiness entity, matched to a dedicated page, matched to your GBP service list, is confirmation.
What the Fixed Version Actually Looks Like
A schema architecture that actually reinforces your Business Profile has a few concrete pieces, not a vague "add more markup" gesture. The LocalBusiness type gets narrowed to the correct subtype — Electrician, Plumber, HVACBusiness, RoofingContractor — instead of the generic parent type, because Google's entity model weighs specific subtypes more heavily than the catch-all. Every service listed on the GBP gets a corresponding Service schema entry on the site, each one linked to its own page with real content — not a sentence, an actual page explaining the service, pricing logic, and service area. The sameAs property points directly to the Google Business Profile URL, closing the loop so Google can match the two entities with confidence instead of inferring it. And critically, the service list on the website and the service list on the GBP get audited against each other on a schedule, not set once at launch and forgotten — because a mismatch that reappears six months later after someone updates one and not the other undoes the whole fix.
This is the kind of structural work that gets built into a site from the start when the trades is the actual audience the site's architecture is designed around, rather than retrofitted after the fact onto a template that was never built to carry service-level schema in the first place.
The Businesses Winning EV, Solar, and Specialty Trade Searches Aren't Winning on Reviews — They're Winning on Corroboration
Two electricians in the same South Bay zip code can have identical review counts, identical star ratings, and wildly different visibility for "EV charger installation" — because one of them has a website that agrees with its own Google Business Profile and one doesn't. Reviews tell Google you're good. Corroborated schema tells Google what you're good at. Those are different jobs, and most trades websites only do the first one.
Pull up your own site's structured data right now — view source, search for "schema" or "ld+json" — and compare it line by line against your Google Business Profile's category and service list. If they don't match, you're not being punished. You're being ignored for everything beyond the one claim nobody can dispute.
If you want a second set of eyes on whether your site and your profile are actually telling Google the same story — and what it would take to fix it before your next slow season — Axesris works with South Bay trades businesses on exactly this kind of technical audit. Worth a conversation before you spend another year invisible for the jobs you're actually trying to book.