A roofing contractor in Paramus called us last fall, furious. A Florida agency was outranking him for “roof replacement bergen county” — from Tampa. He could not understand how a site 1,200 miles away was beating a local business with two decades in the same towns.
The answer was uncomfortable. The Florida site loaded in 0.8 seconds on mobile. His loaded in 4.2 seconds. Google does not care where you sleep. It cares whether your page works.
The “local always wins” assumption is half-true at best
Proximity is a ranking factor. It is not the ranking factor. For map pack results — the three local listings with the pins — proximity matters a lot. For the organic blue links underneath, proximity matters far less than people think.
An out-of-state agency that built a fast, content-rich page targeting “bergen county roofing” can absolutely outrank a local contractor whose site was built in 2018 and has not been touched since. We see it every month.
What is actually moving local rankings in 2026
Three factors do most of the heavy lifting for service-business organic results, and proximity is not in the top three.
- Core Web Vitals. Largest Contentful Paint under 2.5 seconds, Interaction to Next Paint under 200ms, Cumulative Layout Shift under 0.1. A site at 4 seconds will lose to a site at 1 second on any competitive query.
- Content depth on the page Google is ranking. The Florida agency had 2,800 words on their Bergen County roofing page, with neighborhood-by-neighborhood breakdowns, common roof types, permit notes, and 14 install photos. The local contractor had 380 words of generic copy.
- Google Business Profile completeness. Hours, services list, products list, photos posted in the last 30 days, Q&A populated, three reviews a month with owner responses. The map pack rewards activity, not just age.
Why the Florida agency could pull this off
They were not pretending to be local. The page disclosed they served Bergen County through a partner network. Google does not penalize that. Google ranks the page that best answers the query.
And their page genuinely was better. It loaded faster. It covered more sub-topics. It had clearer pricing guidance. It had a sitemap that put the Bergen County page two clicks from the homepage instead of buried four levels deep. Every signal Google reads said “this page is the better answer.”
What the Paramus contractor actually needed to fix
We did not pitch him on outranking the Florida agency overnight. That is not how this works. We pitched him on a 90-day rebuild that addressed the three real gaps.
Speed: his site was on shared GoDaddy hosting with an unoptimized image library — 28MB of hero photos served full-size on mobile. We moved him to better hosting, ran every image through WebP conversion, and dropped the homepage from 4.2 seconds to 1.1 seconds. That alone moved him three positions on the target query within six weeks.
Content depth: we rebuilt the roofing service page from 380 words to 1,900, with sections on asphalt shingle vs. metal vs. flat roof, permit notes for Bergen County municipalities, typical project timelines, and ten real install photos with town captions.
GBP: we got him on a 30-day cadence of photo uploads, service updates, and Q&A responses. By month three he was averaging four reviews a month, up from one every six weeks.
Where he landed
At day 90, he ranked #2 for “roof replacement bergen county.” The Florida agency was still on the page, now at #4. The map pack — which the Florida agency could never compete in because they lacked a physical Bergen County address — was untouched and still working.
His organic leads went from 11 a month to 34. Same ad spend. Same towns. Different fundamentals.
How AJD handles this
When a local business loses to an out-of-state competitor, the first move is not to panic about proximity. It is to compare the two sites on the three things Google actually weighs — speed, depth, freshness. Most of the time the local site is losing on all three, and the fix is in our hands, not Google’s.
We run the Lighthouse audit, the content gap analysis, and the GBP completeness check on the first call. By the end of an hour we can usually tell you exactly why the out-of-state site is winning and what the 90-day fix looks like.
If a competitor from another state is ranking above you in your own zip code, the problem is not Google. The problem is the page. Whether you work with us or not, run your homepage through PageSpeed Insights and look at the LCP number. If it is over 2.5 seconds, that is your first fight.





