Rankealo

LocalBusiness · JSON-LD

LocalBusiness Schema Generator

LocalBusiness schema describes a physical business to machines: who you are, where you are, when you are open, and how to reach you. It is one of the few schema types that still has a direct, visible payoff in search.

Open the schema generator

Still earns rich results

Still genuinely useful. LocalBusiness markup supports your business information in Google's local surfaces and knowledge panels. It does not replace a verified Google Business Profile, which remains the primary signal for local results, but consistent markup on your own site reinforces the same facts.

Why it is still worth adding

The markup gives every machine reading your site one authoritative version of your name, address, phone number, and hours. That consistency is what local search rewards, and it is what an AI assistant repeats when someone asks for a business like yours in your area.

A valid LocalBusiness example

Drop this in a <script type="application/ld+json"> tag in the page head or body, with your own values.

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Rankealo Coffee",
  "image": "https://example.com/storefront.jpg",
  "@id": "https://example.com/#business",
  "url": "https://example.com",
  "telephone": "+34-912-345-678",
  "priceRange": "€€",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Calle Mayor 12",
    "addressLocality": "Madrid",
    "postalCode": "28013",
    "addressCountry": "ES"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.4168,
    "longitude": -3.7038
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ]
}

Required and recommended properties

PropertyRequiredNotes
nameRequiredThe business name exactly as used on signage and your Google Business Profile.
addressRequiredA PostalAddress object. Partial addresses are a common cause of invalid markup.
telephoneOptionalStrongly recommended. Use international format.
openingHoursSpecificationOptionalStructured hours. Preferred over the older openingHours string.
geoOptionalLatitude and longitude. Helps disambiguate businesses at similar addresses.
priceRangeOptionalA rough band such as €€. Free text, so keep it conventional.
@idOptionalA stable identifier so other markup on your site can reference the same entity.

Common LocalBusiness schema mistakes

Details that disagree with your Google Business Profile

If the hours or phone number in your markup differ from your verified profile, you have created a conflict rather than a signal. Fix the source of truth first, then mirror it.

Using LocalBusiness for an online-only company

LocalBusiness implies a physical location customers can visit. A remote SaaS company should use Organization instead, or the markup is simply false.

Choosing an overly generic type

schema.org has specific subtypes (Restaurant, Dentist, HomeAndConstructionBusiness, and many more). Using the most specific accurate subtype tells machines more than plain LocalBusiness does.

Generating it is the easy half

The harder part is keeping markup correct across a site as pages change. Rankealo's SEO agent audits structured data across your pages and ships the JSON-LD fixes as pull requests you review and merge, rather than handing you a list of errors to implement yourself.

See how the SEO agent ships fixes

LocalBusiness schema questions

Does LocalBusiness schema improve local rankings?

It supports them rather than driving them. The dominant local ranking signals are your verified Google Business Profile, proximity to the searcher, and reviews. LocalBusiness markup makes your own site state the same facts unambiguously, which reinforces the profile and gives AI assistants a clean source when they describe your business.

Do I need LocalBusiness schema on every page?

No. Put it once on the page that represents the business, usually the homepage or a location page, and give it a stable @id. Multi-location businesses should mark up each location page separately with its own address and hours.

Which LocalBusiness subtype should I use?

The most specific one that is accurate. A dental clinic should use Dentist, a restaurant should use Restaurant. If no subtype fits your business honestly, plain LocalBusiness is correct and better than forcing a wrong one.

Other schema types

Or go back to the schema markup generator to build markup interactively.

Reading is step one. Measuring your AI visibility is step two.

Rankealo tracks how often your brand is mentioned and cited across the major AI engines, then helps you publish the pages that close the gaps.