I ran my own diagnostic on my own site. It scored 68.
Teardowns of other people's websites are easy to write and hard to trust, because the author picks the subject and the subject cannot answer back. So this one is about mine.
I built a diagnostic that reads the signals a machine uses to work out where a business is and what it does. Then I ran it on siamakconsulting.com. It scored 68 out of 100, failing three of eight checks.
The scan
Eight checks, weighted by how much each one contributes to a machine resolving where a business is. Here is what came back.
| Signal | Weight | Result | What was found |
|---|---|---|---|
| LocalBusiness structured data | 20 | Pass | ProfessionalService present |
| Complete postal address | 18 | Pass | 530 E 8th St, Los Angeles, CA 90014 |
| Phone, tappable and consistent | 14 | Pass | Matches between markup and page |
| Address visible in page text | 12 | Fail | City appears; street address does not |
| Geographic coordinates | 10 | Fail | No geo in structured data |
| Opening hours | 10 | Fail | No openingHoursSpecification |
| Third-party profiles declared | 10 | Pass | Six declared via sameAs |
| Map or directions link | 6 | Pass | Present |
Thirty-two points missing, across three things that take under an hour to fix between them.
What each failure actually costs
Address in markup but not in text. Structured data is a claim I make about myself in a format only machines read. The same address in visible copy is the version a human can check and a crawler can corroborate. When both agree you have two independent-looking confirmations; when only the markup has it, you have an assertion with nothing behind it. Twelve points, and it is the one I would fix first.
No geographic coordinates. Matters most where an address is ambiguous — shared buildings, repeated street names across a metro, dense downtown blocks. Mine is in Downtown Los Angeles, which is exactly the situation coordinates exist for. I omitted them anyway, because the schema was written when the site was positioned nationally and nobody revisited it when local work started mattering.
No opening hours. This one is interesting, because it is the only failure I am not rushing to fix — and the reason is the thing this article is really about.
The failure behind the failures
I could add hours to the schema in two minutes. I have not, because I do not currently have one answer to what the hours are.
Yelp and Yahoo list the business as Monday to Friday, nine to five. The chamber of commerce listing and Foursquare say twenty-four hours. Both were accurate at the time somebody entered them. Neither has been true consistently since.
Adding hours to my own schema without resolving that would make things worse, not better: a third version of a fact that already exists in two conflicting forms. The scan reports a missing field. The actual problem is a decision nobody has made.
This is the pattern underneath almost every invisibility case I see. The technical gap is real and easy to fix. It persists because fixing it requires settling a question about the business that nobody has settled — which hours, which phone number, which name, which address. The markup is downstream of the decision.
Why a competent site scores 68
Nothing here is incompetence. The schema is well-formed. The entity graph uses stable identifiers referenced consistently. The phone matches everywhere. Six external profiles are declared. By most measures it is a carefully built site, and it is.
The gaps exist for ordinary reasons. The structured data was written for a national positioning and never revised when local work began mattering. The address lives in the footer of the schema rather than the footer of the page because nobody asked where a human would look for it. The hours are missing because the hours are genuinely unsettled.
Three decisions deferred, each sensible at the time, none revisited. That is what thirty-two missing points look like from the inside. It is almost never a dramatic failure; it is a set of small deferrals that compound quietly while nothing in your analytics mentions them.
Run this on yourself
The diagnostic is free and public, at siamakconsulting.com/local. It reads the eight signals above from any site and tells you which are missing and what to do about each.
Two things it deliberately does not do. It does not report a Google Maps ranking, because checking one requires the Places API and scraping the results breaches Google's terms — any free tool claiming a live Maps rank is using cached data or inventing it. And it does not pretend to see inside your Google Business Profile, which no external tool can; those items come back as a checklist you walk yourself.
When you run it, the useful part is not the number. It is noticing which failures are technical and which are a decision you have been avoiding. The technical ones take an afternoon. The other kind is why the afternoon never happens.
See what your own site is missing. The local check reads the eight signals above and reports which are absent, with a specific fix for each.
Run the local checkCommon questions
What does it mean when a business is invisible to AI?
Usually not that the website is broken. It typically means a competent site is missing a small number of specific facts a machine needed in order to establish where the business is and what it does — and that nothing in ordinary analytics reports the absence. In the measured example in this article, a carefully built site scored 68 out of 100 because three facts were missing: the street address in visible page text, geographic coordinates, and opening hours.
Why does an address in structured data not count if it is missing from the page?
Because structured data is a claim a site makes about itself in a format only machines read. The same address in visible copy is the version a human can verify and a crawler can corroborate independently. When both agree, the fact is confirmed twice. When only the markup contains it, it is an unsupported assertion, which is weaker evidence.
Do geographic coordinates actually matter?
They matter most where an address is ambiguous: shared office buildings, street names repeated across a metropolitan area, and dense downtown blocks. Coordinates remove the ambiguity about which location the business occupies. For a business in a distinctive, unambiguous location the benefit is smaller, which is why the check carries ten points rather than twenty.
Why would a business leave opening hours out of its structured data?
Often because the hours are genuinely unsettled. In the case documented here, two directories list weekday business hours and two others list twenty-four hours, each accurate when entered. Adding a third version to the site's own markup would create another conflicting record rather than resolving anything. The missing field is a symptom; the unmade decision is the actual problem.
Can a free tool check my Google Maps ranking?
Not honestly. Querying Maps rankings requires the Google Places API, and scraping the results breaches Google's terms of service. A free tool presenting a live Maps rank is either serving cached data or inventing it. What can be measured legitimately is the set of local signals on your own website, plus a checklist for the Google Business Profile items no external tool can see.
About the author. Siamak Kalhor is an AI marketing and LLMO consultant in Los Angeles with more than forty years of experience in marketing strategy. He advises professionals and e-commerce leaders on becoming the answer AI assistants give. Get in touch, or connect on LinkedIn.