Skip to main content
velorank.Start a project

Local SEO in Minnesota: How to Rank on Google Maps

How Minnesota businesses actually get into the Google Maps pack: the three inputs Google uses, the order of work, and the mistakes that knock a listing out.

Three cards explaining what decides the Google Maps pack: relevance, distance, and prominence

Someone in Woodbury searches for a roofer. Google shows three businesses on the map. If you are not one of them, that call goes to whoever is.

That is the whole local game in Minnesota. Not a blog post. Not a citation package. Three pins, and the person with the phone already knows what they want.

This is the order of work for getting into that pack. The deeper breakdown of what moves local rankings in 2026, and what has stopped mattering, is on the ranking factors page. Read that if you want the evidence. Read this if you want the sequence.

What decides the three pins

Google has said for years that local results come down to three things: relevance, distance, and prominence. You can work on two of them. Distance is the searcher's problem, and yours only in the sense that you have to be honest about it.

Three cards: Relevance and Prominence are marked as things you control. Distance is marked as something you do not.

Relevance and prominence are the work. Distance is the constraint.

Relevance is whether you do the thing they typed. The strongest lever you control is the primary category on the Google Business Profile. Pick the category that matches the job you want to be hired for, not the broadest label that technically fits. Then fill services, products, hours, and photos. A blank profile is a business Google has to guess about.

Distance is how far the pin is from the person searching. A shop in Uptown and a shop in Woodbury are not in the same race when the searcher is standing in Woodbury. A plumber based in Bloomington should not expect to own "plumber Duluth." Service-area businesses thin out fast once you leave the city on the profile. The only way to move the pin is a second location that is actually staffed.

Prominence is whether people already treat you like the obvious choice. Fresh reviews, replies, a link from the chamber or a local paper, and the same name, address, and phone everywhere else. This is where a lot of "local SEO" packages go wrong. They buy prominence-looking activity (a hundred directory submissions) and skip the part Google still weighs.

One average rank hides this. You can be first within a mile and invisible across town. That is why a single "we rank number 3" report is a bad way to judge a Minnesota market. The grid is the picture.

The order of work

Eight jobs show up on every local SEO checklist. They are not equal. Do them from the top. If the profile category is wrong, the rest of the list is decoration.

A numbered list of eight local SEO jobs, labeled critical, high, medium, low, or paid.

The labels match the 2026 ranking-factors page. Ads sit at the bottom on purpose.

1. The Google Business Profile, starting with the category

Primary category first. Then the real-world business name. Keyword-stuffed names still pop for a short while. They are also the thing competitors report, and a suspension takes the listing down with the reviews attached to it.

After that, fill what is true:

  • Secondary categories you actually qualify for. Each one is a ticket to another set of searches.
  • Services and products, written the way a customer would say them.
  • Hours, including the odd holiday week. Wrong hours are a trust problem, not a formatting problem.
  • Photos of the work, the truck, the crew, the storefront. Stock photos of a handshake do not help.

Posts are useful when they describe a real job or a real change in hours. A weekly "we are the best roofer in Minnesota" post is not a ranking strategy.

2. Reviews, on a schedule

A burst of 40 reviews in a weekend, then silence, looks like a campaign. A few new reviews every week looks like a business. Recency matters. So does the language. A review that says "they replaced the roof in Eagan before the storm" tells Google more than "great company, highly recommend."

Reply to all of them. The reply is part of the record the next customer reads, and the bad ones are the ones that need a reply the most. Thank them, say what you will do, and take the rest offline. Do not argue in the thread.

Ask at the moment the job is done, with a short link, by text. A QR code on a counter works for a shop. A "leave us a review sometime" line at the bottom of an invoice mostly does not.

3. Find out where the pin actually wins

You cannot optimize distance away. You can stop spending months trying to rank in a city the pin cannot reach.

Pull a grid for the two or three searches that pay the bills. Look at the streets where you are in the top three, and the streets where you drop off. That map is the service area you should write pages for and ask reviews about. Everything outside it is a second location, a paid ad, or a job you drive to without expecting the pack.

If you want the neighborhood-level version of this for the south metro, the Dakota County keyword piece is the pattern. Same idea in Duluth or Rochester. The cities change. The grid does not.

4. One page per service and city you mean to rank for

One "services" page cannot rank for a roofer in Minneapolis and a gutter job in St. Paul and a storm repair in Rochester. Google needs a URL that is about that job in that place.

Write the page for a person who already knows they need the work. Name the city, name the job, say what the job includes, and show proof from that area if you have it. A page that exists only to hold the keyword, with three sentences and a form, is thin. Thin pages are why a lot of location pages never show up.

Title and H1 should include the service and the city, written like a person. "Roof replacement in Minneapolis" is enough. "Best affordable roof replacement company Minneapolis MN near me" is stuffing, and it reads like stuffing.

Add LocalBusiness schema with the same name, address, and phone as the profile. On a sample of Minnesota business sites, 87.7% did not have it. The schema generator will write a clean block if you do not want to hand-code it.

5. The site has to work on a phone

Most of these searches happen in a car or on a sidewalk. If the page takes several seconds to load, or the tap-to-call button is below a pile of popups, you lose the visit you just earned from the pack.

This is also where Minnesota sites are weak. In that same sample, 74% landed in Google's poor band for mobile performance, with a median Lighthouse score of 35 out of 100. Fix the phone experience before you commission another city page.

Put the name, address, and phone in the footer and on the contact page, matching the profile. Embed the map. If the hours on the site disagree with the hours on the profile, fix one of them today.

Links matter less for the pack than they do for ordinary organic results. They still count, and the ones that count are obvious: the chamber, a local news mention, a supplier, a partner whose customers overlap with yours, a sponsorship page that is a real page.

A link from a Minneapolis chamber does more for a Minneapolis firm than fifty profiles on sites nobody in the state reads. Build those relationships. Do not buy a list.

7. Citations, then stop

Name, address, and phone should match on Google, Apple Maps, Bing, Facebook, and Yelp. Add the directories your trade uses, and the ones your city uses. Then stop.

Citations used to be treated as a top ranking factor. In 2026 they are hygiene. A wrong phone number on Yelp is worth fixing. A package of 200 submissions is not a growth plan. The longer version is the citation and NAP guide.

If you are going to spend time on a directory after the core list, spend it getting reviews there. A bare listing does less than a listing people have actually commented on.

8. Maps ads, if you need the spot this week

A Google Maps ad can sit above the organic pins while the campaign is on. That is useful when you are new, seasonal, or losing a neighborhood you should be winning and the organic fix will take a month.

It is not a ranking factor. Turn the budget off and the sponsored pin leaves. Keep the ad if the jobs it produces are worth more than the spend. Do not confuse that with the profile work above it on this list.

You need a verified profile, a Google Ads account, and a location tied to the campaign. You do not need a "promoted pin" product from a vendor who will not show you the account.

How listings in this state lose the pack

Most of the damage is self-inflicted. None of it requires a redesign.

Eight mistakes that knock a Minnesota business out of the Google Maps pack, from a stuffed business name to buying citations instead of reviews.

The pattern is the same in Minneapolis, Rochester, and Duluth. The category is wrong, the facts disagree, or the reviews stopped.

The one I would fix before any of the others is the business name. If the sign on the door says "Northfield Heating" and the profile says "Northfield Heating | Furnace Repair Boiler AC Near Me," take the extras off. Short-term rank from a stuffed name is how listings get suspended.

The second is the duplicate. A second listing for the same shop splits the reviews and gives Google two incomplete versions of you. One verified listing per real location. If an old listing is still out there from a rebrand or a moved office, merge it or mark it closed. Do not start a third one to "start fresh."

What is different in 2026

A few things the old checklists still treat as optional.

The profile feeds more than the map. AI answers and voice results pull from the same fields: category, services, reviews, hours. Fill those and you are feeding the pin and the answer at the same time. The AI Overviews piece covers how that shows up in local search.

Reviews have to be recent. A 4.9 from 2022 with nothing since is a stale business. The businesses that stay in the pack are still asking.

Neighborhood pages only count if you work there. Hyperlocal does not mean a page for every suburb in the seven-county metro. It means a page for the places the grid says you can win, and where you have done the work. A Rochester firm with a page about Minneapolis is not doing hyperlocal SEO. It is making a thin page.

Tools do not rank you. They show you the grid, the missing fields, and the searches worth a page. Geo-grid tracking is the one that changes the plan, because it replaces a single average rank with a map. Semrush and BrightLocal are fine for the audit. The map is the decision.

Do this yourself, or get help

The profile and the review habit are owner work. Nobody else knows the hours, the jobs, or which customers were happy this week. If those two are a mess, hiring an agency first just means you pay someone to look at a blank profile.

Help earns its fee when the grid, the pages, and the phone site are the bottleneck. That is a build, not a weekly login to "post on Google." Ask anyone you hire to show you the grid for your main search, the primary category they would choose and why, and which pages they would not build. If the answer is a citation package and a promise of number one in Minneapolis, keep looking.

The Minneapolis service page is here if that is the market: local SEO in Minneapolis. For the factor-by-factor version of everything above, use the 2026 ranking factors.

Share this article

Keep exploring

All articles ↗

A little direction goes a long way

Put these ideas to work.

Talk with our team about improving your website and local search visibility.

Discuss your project