Field notes

Schema markup for a shop that exists on a street

LocalBusiness, PostalAddress, and the difference between structured data and wishful thinking.

RegisterMySite 9 min read
SEOschema

Schema does not create a ranking. It reduces the chance that Google has to guess what you are.

Start with the entity

For a local company, the useful types are LocalBusiness (or a subtype like Plumber / Bakery), PostalAddress, and OpeningHoursSpecification. Add sameAs for the profiles you actually control: Google Business, Yelp, Instagram.

Do not mark up reviews you invented. Do not mark up a phone number that rings a cell phone you no longer carry.

Keep JSON-LD next to the truth

Put the block in the document that describes the business. If the homepage says you are in Portland and the JSON-LD says Phoenix, you have written a puzzle.

This journal uses @graph so Organization and WebSite can point at each other without duplicating names. Posts add BlogPosting and a breadcrumb list.

Test like an adult

Use Google’s Rich Results inspector and the Schema Markup Validator. If a required property is missing, fix the page — do not comment the script out and call it a launch.

A small, honest example

{
  "@type": "LocalBusiness",
  "name": "Northwind Bike Repair",
  "url": "https://example.com",
  "telephone": "+1-503-555-0148",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "410 Division St",
    "addressLocality": "Portland",
    "addressRegion": "OR",
    "postalCode": "97227"
  }
}

If that address is wrong, the rest of your SEO plan is decoration.

Keep going

Put this on a real domain

Search a name, ship a static site, and wire business email without leaving RegisterMySite.

Open the platform