Tell Google who you are with a few lines of code

Small business names collide, and search engines have to guess which one you meant. Organization structured data is one way a site owner can stop them guessing. Here's what it is, what we put in ours, and how to test it.

Our Organization JSON-LD snippet in a dark code block, with the lh logo tucked in the corner

Small business names collide more often than you'd think. Search for one and Google may happily show you details that belong to a different business with a similar name. Nobody did anything wrong. The search engine is making a guess, and short, friendly, lowercase brand names like ours are easy to mix up. You can't edit Google's results, and you can't ask a stranger to rename their company. What you can do is give the search engine less to guess about. The tool for that is structured data, specifically a small block of Organization markup that says, in plain machine terms: this is our name, this is our website, this is our logo, and these other accounts are us too.

Structured data is a standardized format for describing what a page is about, and JSON-LD is the flavor Google recommends. It's a JSON object inside a script tag, so it rides along in the HTML without changing anything a visitor sees. The words it uses come from the schema.org vocabulary, which is where the Organization type lives. Google's Organization structured data guide says adding it to your home page can help Google understand your administrative details and disambiguate your organization in search results. Nothing is required. Google suggests name, url and logo for your online presence, address or telephone for a real-world one, plus legalName for your registered name, email for contact, and sameAs for your profiles on other sites.

Here's ours. It lives in the root layout of our Next.js site, so it ships on every page, home page included. The name is the one people actually see, lhcreative.studio, and legalName carries the registered LLC name. The logo is a full URL to /logo.png. The address lists only the country, because we work online and we'd rather not invent a storefront for the sake of a nicer-looking object. The sameAs list starts with our tech blog, then our X, Facebook and LinkedIn pages. In the real file that list is built from the same socials array our footer uses, so the two can't quietly drift apart. Below is a trimmed version with the values written out by hand.

TSX
const organizationJsonLd = {
  '@context': 'https://schema.org',
  '@type': 'Organization',
  name: 'lhcreative.studio',
  legalName: 'LH Creative Diversified Enterprises LLC',
  url: 'https://lhcreative.studio',
  logo: 'https://lhcreative.studio/logo.png',
  email: '[email protected]',
  address: { '@type': 'PostalAddress', addressCountry: 'US' },
  sameAs: [
    'https://lhcreative.studio/tech-blog',
    'https://x.com/lhcreativehq',
    'https://www.facebook.com/profile.php?id=61594276837753',
    'https://www.linkedin.com/company/lhcreative-studio/',
  ],
}

// Rendered once in the root layout's <body>
<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationJsonLd) }}
/>

Now the honest part. This markup is a hint, not an order. Google's general structured data guidelines say it does not guarantee your structured data will show up in search results, even when the markup is correct. So test it, then be patient. The Rich Results Test shows what Google can read from a live URL, and the Schema Markup Validator checks any schema.org markup without the Google-specific rules. Google also recommends submitting a sitemap, and the Sitemaps report in Search Console is where you do it. While tidying up, we also added every Night Sky UI Kit component page to our own sitemap. What Google does with all this is up to Google, and we'll only write about results once we have some.