Skip to content
SEO Madmanby Adam Hafez
Free tool

LocalBusiness schema checker for required fields

LocalBusiness schema checker: tests JSON-LD for name, address, geo precision, priceRange and hours against Google's docs. Free, runs in your browser.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

Parsed with the browser's own JSON.parse against Google's documented property tables for LocalBusiness. Nothing you type is sent anywhere.

Key takeaways

  • Google documents two required LocalBusiness properties, name and address, and lists the rest as recommended.
  • Google asks for the address as a PostalAddress and says to include as many of its properties as possible.
  • Google says geo latitude and longitude must have at least five decimal places.
  • A priceRange of 100 characters or longer is not shown by Google, so it must stay shorter than that.
  • This checker reads only the JSON-LD pasted in and cannot confirm the business profile, the phone number or the page indexing.

What it takes

  • A pasted LocalBusiness JSON-LD object

More tools

All of them free, all of them browser-only.

Browse the tools

How to use it

  1. 1Paste the LocalBusiness JSON-LDPaste the JSON inside the ld+json script, not the script tag itself. A subtype such as Restaurant, Store or Dentist is accepted, and @graph arrays are searched.
  2. 2Complete name and addressAdd the business name and a PostalAddress. Google asks for as many address properties as possible, so the checker expects all five.
  3. 3Tighten geo and hoursGive latitude and longitude at least five decimals and write opens and closes as hh:mm:ss, for example 09:00:00.
  4. 4Add the recommended fieldsFill in telephone, url, priceRange and openingHoursSpecification so the location is described as fully as the docs suggest.

Paste the JSON from a LocalBusiness ld+json block and the checker lists every property Google documents for it, with a pass, problem, warning or information badge on each. It parses the JSON in your browser and sends nothing anywhere.

What this LocalBusiness schema checker tests

Every rule comes from Google’s local business structured data page.

  • Type. It looks for a node whose @type is LocalBusiness or one of 21 common subtypes, including Restaurant, Store, Dentist, Physician, Attorney, Hotel, Plumber and ProfessionalService. It searches a top-level array or an @graph.
  • Required properties. name and address. Google lists these two as required.
  • Address subfields. streetAddress, addressLocality, addressRegion, postalCode and addressCountry, each checked separately. Google lists address as one required PostalAddress and says to include as many of its properties as possible. The checker is stricter and treats each missing subfield as a problem, because a partial address is the most common gap.
  • Recommended properties. telephone, url, geo, openingHoursSpecification, priceRange, menu, servesCuisine, aggregateRating and department. Missing ones show as information, not errors.
  • Geo precision. Google says latitude and longitude need at least five decimal places.
  • priceRange length. Google says the field must be shorter than 100 characters, or it will not show a price range for the business.
  • Hours format. Each opens and closes value in openingHoursSpecification is tested against the hh:mm:ss format Google’s property description gives.

How to read the results

  • Problem (red): a required property or address subfield is missing, or no LocalBusiness node was found. Fix these first.
  • Warning (amber): a value is present but breaks a documented format, such as a four-decimal coordinate, a priceRange of 100 characters or more, or hours written as 9:00.
  • Information (grey): a recommended property is absent. Add it if it applies. aggregateRating is only recommended by Google for sites that capture reviews about other local businesses, so leave it out for your own business.
  • Pass (green): present and in the documented format.

If the JSON does not parse, a “Not valid JSON” message replaces the results. That usually means a trailing comma or the surrounding script tag was pasted too.

Worked example

The tool loads with a Restaurant named Harbour Bistro in Bristol: a full PostalAddress with all five subfields, telephone +44-117-000-0000, url, geo 51.45013, -2.59665, priceRange $ and one openingHoursSpecification from 09:00:00 to 17:00:00.

The result: @type found, name and address pass, all five address subfields pass, both geo values pass the five-decimal check, priceRange passes at 1 character, and both hours values pass. Four lines show as information: menu, servesCuisine, aggregateRating and department are missing. For a restaurant, menu and servesCuisine are worth adding. The other two rarely apply.

Change the latitude to 51.45 and its precision line turns to a warning. Change opens to 9:00 and that line warns that Google documents hh:mm:ss.

Common mistakes it catches

  • Address as one string. Writing "address": "12 Quay Street, Bristol" passes the address line but fails all five subfield checks, since there is no PostalAddress to read them from.
  • Rounded coordinates. Copying a map pin rounded to three or four decimals falls short of Google’s five-decimal minimum. JSON drops trailing zeros, so 51.45010 is read as four decimals.
  • Short time strings. "opens": "9:00" breaks the hh:mm:ss format. Google’s own examples for 24-hour and closed days use 00:00 and 23:59, which the checker also flags, so treat that particular warning as expected.
  • Descriptive price ranges. A long sentence in priceRange goes over the 100-character limit Google sets. Use a numeric range such as $10-15 or a run of currency signs such as $$$.

Sources

  1. 1.Local business (LocalBusiness) structured data - Google Search CentralPrimary

Frequently asked questions

What are the required properties for LocalBusiness schema?

Google lists two, name and address, where address is a PostalAddress. Everything else, including telephone, url, geo, openingHoursSpecification and priceRange, is recommended rather than required.

Which business types does this checker accept?

It accepts LocalBusiness and a fixed list of common subtypes such as Restaurant, Store, Dentist, Hotel, Plumber and MedicalBusiness. A subtype missing from that list reports that no node was found.

Is telephone required?

No. Google lists telephone as recommended, so its absence shows as information. It advises a number meant as the primary contact, including country code and area code.

How many decimal places should geo coordinates have?

Google says the precision must be at least five decimal places. The checker counts the digits after the decimal point in latitude and longitude and warns below five.

How do I mark a business as open 24 hours?

Google's example sets opens to 00:00 and closes to 23:59, and a closed day to 00:00 for both. Those short values will show a format warning here, because the checker tests the hh:mm:ss format the property description asks for.

Does this replace the Google Business Profile or the Rich Results Test?

No. The markup describes the page's business to Google, while a Business Profile is managed separately. Google recommends testing markup with the Rich Results Test before deploying; this tool is a faster first pass on pasted JSON-LD.