This article is part of the Zeso Technical Knowledge Base. You can also inspect this topic in Documentation.
Learning Center & Lexicon8 min read·1379 words

Google Business Profile optimization: SEO for local business

Executive Summary & Core Definition

A local business has two surfaces on Google: the profile Google owns, and the site you own. One gets you into the map result; the other decides whether the click was worth making. Here is both, and the order to check them in.

A local business has two surfaces on Google, and they do different jobs.

The profile is Google's. A Google Business Profile is where the map results come from, and it is the larger of the two surfaces for a nearby searcher.

The site is yours. It is what the click lands on, it is what the knowledge panel cites, and it is what an answer engine quotes when someone asks an assistant for a reliable plumber near them.

Most advice covers only the first half, and the second half is where a website actually earns its keep. So this guide covers both — and says plainly which half this platform does for you.

1 · The profile: fill it in, and keep it true

A Google Business Profile is free to claim and free to maintain, and it is the surface the map pack comes from. The field list and the rules for using it belong to Google — they live in Google's own help documentation, and Google changes them.

Verification comes before any of it. Google asks you to prove the business exists before the profile appears in search, and the proof is the business. Until then the profile is a claim, not a listing, and no amount of filling in fields changes that.

So optimizing a profile is not a trick and not a keyword list. It is three moves, and the order matters.

Fill in every field. An empty field is one fewer reason to be shown. Start with the ones a nearby customer reads before deciding to call: the primary category and the secondary ones, the opening hours including the exceptions, the services or products you sell, the phone number, and the photos. Then the ones that make it a profile rather than a card: the description, the attributes, the questions and answers, and the posts.

Make it agree with your site. The name, the address, the phone number and the hours that appear on the profile must be the same four that appear on the site. Not similar — the same. A profile that disagrees with the site is two businesses, and search engines resolve that by trusting neither.

Keep the name a name. The business name field holds the name of the business, not the words people search for. Those words belong in the category and in the services. A name that carries them describes a different business from the one your site describes, and the two halves stop being the same business — which is the failure this guide is about.

None of the three moves is a product. This platform does not create or manage a Google Business Profile, and it does not write or buy reviews. What it does is the half you can automate: the site half, where a machine reads what the profile says by hand — the name, the address, the hours and the phone number are declared once, and the site says them the same way everywhere it says them. Sections 2 and 3 are that half.

2 · The site: it has to declare itself, and the declaration has to be complete

A search engine cannot read a business that never says what it is. Four declarations do the work, and all four are mechanical rather than editorial.

The entity. The site emits an organization entity naming the business type, the postal address, the phone number, the opening hours and the social profiles. Its type is decided by one rule: a business type you set yourself is the type that comes out, and otherwise an address, a telephone number or opening hours make it a LocalBusiness; with none of them it is an Organization. A generic Organization on a page for a dentist is a missed declaration, not a neutral one — and the block is worth checking rather than assuming, because the switch is silent.

The machine-readable summary. An llms.txt manifest at the site root gives an answer engine a curated list of the pages worth reading, instead of making it guess. It is a courtesy rather than a ranking factor, and it is covered properly in What is llms.txt.

The URL inventory. The sitemap lists every published page with its own locale alternates, so a crawler learns that two pages in two languages are one document and not two competitors. It also records when each page last changed, so a crawler knows when a re-read is worth the budget.

The crawl rules. The robots file allows the public pages and blocks the authenticated surfaces — the studio, the preview, the tenant tree, the API. The paths that merely look wasteful are left crawlable on purpose: a URL that is redirected rather than blocked is how a stale indexed URL retires.

3 · The checklist, in the order that finds problems fastest

  1. Claim and verify the profile, then fill in every field: category, hours, services, photos. §1.
  2. Make the name, address and phone number identical on the profile and on the site.
  3. Confirm the site emits a LocalBusiness block and that its fields are filled — the check is here.
  4. Match the opening hours on the site to the hours on the profile.
  5. Confirm the site is in the sitemap, with the canonical pointing at the page itself.
  6. Check the host: the apex and the www name must resolve to the same site, and the one the profile lists must be the one that answers.
  7. Fetch the page and look for noindex, a redirect chain, and a slow first byte.
  8. Ask the assistant that would cite you: what does it say your business does, and where did it read that?

4 · When it is not showing up

The order below is the order that works, because each step rules out a cause that would make the next step's answer meaningless.

The first two checks are one command each:

bash
$ curl -sI https://yourbrand.com/ | head -1 HTTP/2 200 $ curl -sIL https://yourbrand.com/pricing | grep -E "^HTTP|^location" HTTP/2 301 location: https://www.yourbrand.com/pricing HTTP/2 200

The first line answers "does the host answer". The second answers "does the URL return 200" — and it is the one that shows a chain, because a chain ends in a 200 as well. A 200 at the end of three lines is a different answer from a 200 on its own.

  1. Does the host answer? Not the www name — the one your profile lists. A www name that does not exist is not a dead site; it is a different name, and it is the single most common way a healthy business is recorded as unreachable.
  2. Does the URL return 200? A redirect chain ends in a 200, and the chain is invisible in the final status.
  3. Is it indexed? Ask the search console, not the search box — the box is a different surface.
  4. Is it excluded? noindex, a canonical pointing somewhere else, or a robots rule that blocks it. A blocked URL is never fetched, so the 301 that would have retired it is never seen either.
  5. Is the declaration right? A LocalBusiness block with a missing postal address places nothing.
  6. Is it fast enough? A local searcher is usually on a phone, on a weak connection, and looking at three results. Slow is a ranking input, not a nicety.

5 · What this platform does, and what it does not

Does: publish a LocalBusiness JSON-LD block with the details you configure · generate llms.txt and llms-full.txt from the published site · serve a sitemap with per-locale alternates · provision DNS and TLS for your custom domain · pre-compile the site to static assets and serve them from the edge, at a median TTFB of <50ms across 330+ locations · keep the whole site as an open JSON document, whose live content is readable over a public API without a key.

Does not: claim or maintain a Google Business Profile · write or buy reviews · manage citations or links · guarantee a position. Any platform that promises the last one is promising something no platform controls.

Experience edge-native speed on your domain

Sub-50ms TTFB, Anycast BGP routing, and automatic Let's Encrypt certificates across 330+ locations.

Deploy in 60 seconds

Related guides & connected surfaces