The Google map pack (the block of three local businesses with a map) is not ranked like the ten blue links below it. Organic results rank documents: pages, scored on content and links. The map pack ranks entities: business records, scored on whether Google trusts the data in the record. Once you internalize that, "why doesn't my client show up in the pack?" stops being an SEO mystery and becomes a debugging problem, and debugging problems are what we're good at.

This post is the engineer's version of that debugging session: how the record is assembled, where it gets corrupted, and how to diff it across sources with a few lines of Node.

The record, not the page

Google's own documentation reduces local ranking to three forces: relevance, distance, and prominence. It also states there is no way to pay for a better local ranking. What it doesn't spell out is where the record's data comes from. Their docs on business information list four inputs:

publicly available information, such as crawled web content