Tell Google Exactly Who You Are, in Its Own Language

Schema markup tells Google exactly what your business is, where it is and who runs it. Copy-and-paste templates for Nigerian businesses, from Organisation and LocalBusiness to Product, Event and FAQ, plus the rules that decide whether markup helps.
schema markup
Table of Contents
Share this article

Somewhere in Lagos right now, someone is typing “who’s a reliable accountant in Lekki?” into ChatGPT. Someone else is asking Google which spa does couples’ treatments. The answer each of them gets depends partly on how confidently the machine understands your business. Who you are, what you offer, where you operate, and whether other sources agree.

Structured data is one of the clearest ways to spell that out. It’s a small block of code that describes your business and content in schema.org, a standard vocabulary search engines are built to read.

Most businesses only need a handful of types. These are the ones that matter for Nigerian businesses, with copy-and-paste templates and the rules that decide whether your markup helps or gets ignored. Every template uses JSON-LD, the format Google recommends, and you can add any of them without touching your page design.

What It Can and Can’t Do

Structured data helps search engines understand your pages accurately, and it can make them eligible for richer results, like product prices, event dates and breadcrumb trails shown right in search. It also helps your business register as a distinct entity, which matters for AI-generated answers. The AI search visibility guide covers that side in more depth.

Schema is your Rosetta Stone: the same facts about your business, written a second time in a language the machines read fluently.

It guarantees nothing. Markup doesn’t directly lift your rankings, and being eligible for a rich result is no promise you’ll get one. Think of it as removing ambiguity, so that when search engines look at your pages, they know exactly what they’re looking at.

Four Rules First

  1. Markup must match what’s visible on the page. If your markup says a product costs ₦45,000, the page must show ₦45,000. Describing content that visitors can’t see is against Google’s guidelines and can lead to your markup being ignored or penalised.
  2. Check what your plugin already generates. SEO plugins such as Rank Math and Yoast add some structured data automatically, typically for your organisation, articles and breadcrumbs. Adding the same types again by hand creates duplicates and conflicts. Test a page first (see the testing section below), then only add what’s missing.
  3. Use the most specific type that fits. “LocalBusiness” is fine, and “Dentist” or “LegalService” is better if it applies. Schema.org lists hundreds of business types. The general “ProfessionalService” type is discouraged by schema.org itself in favour of more specific ones.
  4. Keep it truthful and current. Outdated opening hours, old prices and closed locations in your markup mislead both search engines and customers.

Template 1. Organisation (Every Business Needs This)

This gives search engines the core facts about your business, including its name, website, logo, contact details and, crucially, its profiles elsewhere on the web. Add it once, usually on your homepage.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Business Name",
  "url": "https://yourbusiness.com",
  "logo": "https://yourbusiness.com/logo.png",
  "description": "One or two plain sentences describing what you do and for whom.",
  "email": "[email protected]",
  "telephone": "+234-800-000-0000",
  "foundingDate": "2020",
  "founder": {
    "@type": "Person",
    "name": "Founder Name"
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourbusiness",
    "https://www.instagram.com/yourbusiness",
    "https://www.facebook.com/yourbusiness"
  ]
}
</script>

The sameAs list is the most underrated part. It ties your website to your official profiles on other platforms, so search engines and AI systems can confirm that your LinkedIn page, Instagram account and website all belong to one business. Use your real, official profile URLs only.

Use Organisation instead of LocalBusiness if customers never visit your premises, for example if you serve clients entirely online or at their own locations.

Template 2. Local Business (If Customers Come to You)

Shops, clinics, spas, restaurants, schools and offices should use LocalBusiness or a more specific subtype. It describes your address, location, hours and price range.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business Name",
  "url": "https://yourbusiness.com",
  "image": "https://yourbusiness.com/storefront.jpg",
  "telephone": "+234-800-000-0000",
  "priceRange": "₦₦",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 Example Street",
    "addressLocality": "Lekki",
    "addressRegion": "Lagos",
    "addressCountry": "NG"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 6.4474,
    "longitude": 3.4721
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "09:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "15:00"
    }
  ],
  "sameAs": [
    "https://www.instagram.com/yourbusiness"
  ]
}
</script>

A few notes for Nigerian businesses.

  • addressCountry should be NG, the standard country code.
  • addressLocality is your area or city (such as Lekki, Ikeja, Wuse or Port Harcourt) and addressRegion is the state.
  • Coordinates matter where street addresses are informal or inconsistent. Take them from your business’s exact location on a map, and make sure they match.
  • Phone numbers should use the international format, starting +234, and match the number on your website and other listings exactly.
  • Consistency across your website, markup, social profiles and directories is what builds confidence. The same name, address and phone number everywhere, written the same way.

Swap "LocalBusiness" for a more specific type where one fits, such as "Restaurant", "HealthAndBeautyBusiness", "DaySpa", "Dentist", "LegalService", "School" or "Store". The rest of the template stays the same. The local visibility guide covers the wider local search picture.

Template 3. Person (Founders and Authors)

Search engines pay more and more attention to who’s behind content, especially advice that affects people’s money, health or decisions. Describing your authors and founder, and linking them to their professional profiles, shows that real, identifiable people with relevant experience stand behind what you publish.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Author Name",
  "jobTitle": "Founder",
  "worksFor": {
    "@type": "Organization",
    "name": "Your Business Name"
  },
  "url": "https://yourbusiness.com/about",
  "image": "https://yourbusiness.com/author.jpg",
  "description": "A short, factual bio.",
  "sameAs": [
    "https://www.linkedin.com/in/authorname"
  ]
}
</script>

Put this on your About page or the author’s profile page, and keep the details factual and consistent with the person’s real profiles. The personal branding guide explains why founder visibility matters.

Template 4. Article (Blog Posts and Guides)

Most SEO plugins generate this automatically for posts, so check before you add it. If yours doesn’t, or produces incomplete markup, here’s the shape to aim for.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "The Article Headline, Exactly as Shown on the Page",
  "description": "The article's summary.",
  "image": "https://yourbusiness.com/featured-image.jpg",
  "datePublished": "2026-09-21",
  "dateModified": "2026-09-21",
  "author": {
    "@type": "Person",
    "name": "Author Name",
    "url": "https://yourbusiness.com/about"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Your Business Name",
    "logo": {
      "@type": "ImageObject",
      "url": "https://yourbusiness.com/logo.png"
    }
  },
  "mainEntityOfPage": "https://yourbusiness.com/insights/article-slug/"
}
</script>

Keep the headline identical to the page’s visible title, and update dateModified when you meaningfully revise an article. Changing dates to make old content look new, without actually updating it, is a trick search engines see through.

Template 5. Breadcrumbs

Breadcrumb markup describes where a page sits in your site, and it can replace the plain URL in search results with a readable path like “Home > Insights > Article”. Many themes and SEO plugins add it automatically when breadcrumbs are switched on.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://yourbusiness.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Insights",
      "item": "https://yourbusiness.com/insights/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Article Title"
    }
  ]
}
</script>

The last item doesn’t need a URL, because it’s the current page.

Template 6. Product (Anything You Sell Online)

Product markup can make your listings eligible to show price and availability in search results, so shoppers see what matters before they click. E-commerce platforms such as WooCommerce usually generate it automatically, so check it’s there and accurate.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Product Name",
  "image": "https://yourbusiness.com/product.jpg",
  "description": "What the product is, in plain language.",
  "sku": "SKU-001",
  "brand": {
    "@type": "Brand",
    "name": "Your Brand"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://yourbusiness.com/products/product-name/",
    "priceCurrency": "NGN",
    "price": "45000",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  }
}
</script>
  • priceCurrency must be NGN for naira prices, and the price should be a plain number with no symbol or commas.
  • availability must reflect reality. Marking out-of-stock items as in stock frustrates shoppers and breaks the “must match the page” rule.
  • If you use reviews, only mark up genuine reviews from real customers that are displayed on the page.

Template 7. Event (Workshops, Launches and Classes)

Event markup can make your events eligible for richer display in search, with dates and locations. It’s valuable for training providers, venues, churches, schools and any business that runs public events.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Event Name",
  "startDate": "2026-11-14T10:00:00+01:00",
  "endDate": "2026-11-14T16:00:00+01:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "Venue Name",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Venue Street",
      "addressLocality": "Victoria Island",
      "addressRegion": "Lagos",
      "addressCountry": "NG"
    }
  },
  "description": "What the event is and who it's for.",
  "organizer": {
    "@type": "Organization",
    "name": "Your Business Name",
    "url": "https://yourbusiness.com"
  },
  "offers": {
    "@type": "Offer",
    "price": "15000",
    "priceCurrency": "NGN",
    "url": "https://yourbusiness.com/events/event-name/",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-09-21"
  }
}
</script>

Use the +01:00 offset for West Africa Time. For online events, change eventAttendanceMode to OnlineEventAttendanceMode and use a VirtualLocation with the event’s URL in place of a physical venue. If an event is postponed or cancelled, update eventStatus and leave the markup in place.

Template 8. FAQ (Keep Your Expectations Low)

FAQ markup describes question-and-answer content on a page. Know this before you bother. Google sharply limited FAQ rich results in 2023 and now shows them mainly for well-known, authoritative government and health websites, so for most businesses FAQ markup won’t produce expanded questions in Google. It can still help machines understand clearly structured Q&A content, and it costs little to add where genuine FAQs already exist on the page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "A question exactly as it appears on the page?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The answer, exactly as it appears on the page."
      }
    },
    {
      "@type": "Question",
      "name": "A second question?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The second answer."
      }
    }
  ]
}
</script>

Only mark up questions and answers that are actually visible on the page, word for word.

Markup to Avoid or Handle With Care

MarkupWhy to be careful
Reviews and star ratings about your own businessGoogle doesn’t show review stars for businesses that mark up reviews of themselves on their own site. Adding them won’t produce stars and risks looking manipulative.
HowTo markupGoogle stopped showing HowTo rich results in 2023. It no longer produces an enhanced result.
Anything not visible on the pageAgainst Google’s guidelines, and can cause your structured data to be ignored.
Duplicate markup from several pluginsConflicting descriptions of the same thing confuse rather than clarify. Keep one source per type.

Adding It to WordPress

  • Through your SEO plugin. Rank Math and Yoast let you set your organisation details, choose schema types for posts and pages, and fill in fields without writing code. Start here.
  • Through a header code setting. For markup your plugin can’t produce, paste the JSON-LD block into a page-specific header code area or a code snippets plugin, targeted at the right page.
  • Through your page builder. Elementor’s HTML widget can hold a JSON-LD block. Visitors won’t see it, and search engines will read it.

Test Before You Trust It

  1. Run the page through Google’s Rich Results Test. It shows which rich result types the page is eligible for and flags errors and warnings.
  2. Run it through the Schema Markup Validator (validator.schema.org) for a broader check of all schema types, including those Google doesn’t use for rich results.
  3. Fix every error. Warnings mean recommended fields are missing, so fill them where you have accurate information.
  4. After a few weeks, check the Enhancements section of Search Console, which reports structured data issues across your whole site.

Where to Start

Start with Organisation (or LocalBusiness if customers visit you), including accurate sameAs links. Add Person markup for your founder and authors. Confirm your plugin is producing Article and Breadcrumb markup correctly. Then add Product or Event markup if you sell online or run events. That covers what matters for the vast majority of Nigerian business websites. For where this fits in a full site review, read the technical SEO audit guide.

Back to That Accountant in Lekki

When the machine goes looking for an answer, you want your business to be the one it understands without guessing. An hour with these templates gets you most of the way there.

If you’d like to know whether visibility is really your weakest point, the free 2-minute diagnostic will tell you. It scores all four walls, and being hard to find usually shows up under Attract.

Find Your Weakest Wall →

Spending ₦1M or more a month on marketing? You also qualify for a free 30-minute Leak Check, with no card and no obligation.

Structured data guidelines and rich result eligibility change, and these details reflect Google and schema.org documentation at the time of writing. The templates use placeholder values that must be replaced with accurate information matching your visible page content. Adding markup doesn’t guarantee rich results or rankings.

This article covers one part of a bigger system. Our guide to digital marketing in Nigeria shows how the four walls fit together, and the order to build them in.

Share this article
Now That You’ve Read the Theory, See Where Your Business Actually Stands

The 2-minute diagnostic shows which of your four walls is costing you most.

This field is for validation purposes and should be left unchanged.

No obligation. No card required. Takes about 2 minutes.

Scroll to Top