Most local businesses only need a few types of schema markup to get real SEO benefits. Search engines ignore a lot of the extras. Here are the JSON-LD patterns that actually matter for local businesses, with copy-paste code and clear advice on what to skip.
01Why JSON-LD Schema Matters for Local SEO
Schema markup helps search engines understand your business. For local businesses, the right schema can mean better visibility in Google Maps, richer search results, and more clicks. But not all schema is equal. Google and Bing care most about a few types: LocalBusiness, Organization, and sometimes FAQ or Product for specific cases.
Most plugins and themes add generic or incomplete schema. Some even create errors by mixing types or using microdata. JSON-LD is the format search engines prefer. It is clean, separate from your HTML, and easy to update.
02Copy-Paste JSON-LD for Local Businesses
Here is a basic LocalBusiness schema you can use. Replace the details with your own. This covers the essentials: business name, address, phone, and website. Add your opening hours and logo for extra trust.
<br />
add_action('wp_head', function() {<br />
?><br />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"image": "https://yourdomain.com/logo.png",
"@id": "https://yourdomain.com/",
"url": "https://yourdomain.com/",
"telephone": "+1-555-555-5555",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Your City",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "US"
},
"openingHours": [
"Mo-Fr 09:00-17:00",
"Sa 10:00-14:00"
]
}
</script><br />
<?php
});
[/jb_code]
<p>This code goes in your theme’s <strong>functions.php</strong> file. It outputs the JSON-LD in your site’s header. Change the fields to match your real details. If you have multiple locations, repeat the block for each location with the right info.</p>
💡<strong>Do this today:</strong> Add your business’s real address and phone to the JSON-LD. Make sure it matches your Google Business Profile exactly.
<h2>What to Skip: Schema That Does Not Help</h2>
<p>Local businesses do not need every schema type. Here is what you can skip:</p>
<ul>
<li><strong>BreadcrumbList</strong>: Only helps if you have complex site structure. For most local sites, it does not affect rankings or rich results.</li>
<li><strong>Article</strong>: Only use if you run a news site or blog with regular articles. Not needed for service or location pages.</li>
<li><strong>Event</strong>: Only use if you host real, date-specific events. Do not add fake events for SEO.</li>
<li><strong>Review</strong>: Only use if you display real, verifiable reviews on your site. Fake or scraped reviews can trigger penalties.</li>
<li><strong>Service</strong>: Google does not use this type for local pack or knowledge panel. Stick to LocalBusiness.</li>
</ul>
<p>Adding too much or the wrong type of schema can confuse search engines. It can even create errors in Search Console. Focus on the basics and keep your markup accurate.</p>
<h2>FAQ and Product Schema: When to Use</h2>
<p>Some local businesses can benefit from <strong>FAQ</strong> or <strong>Product</strong> schema. Use FAQ if you have a real FAQ section on your page. This can trigger extra links in search results. Use Product only if you sell physical items with clear pricing and availability.</p>
<h3>FAQ Example</h3>
<br />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Do you offer free estimates?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we offer free estimates for all local customers."
}
},{
"@type": "Question",
"name": "What are your business hours?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We are open Monday to Friday, 9am to 5pm."
}
}]
}
</script><br />
Only add FAQ schema if the questions and answers are visible on the page. Google checks for this. Do not add hidden or unrelated FAQs just for SEO.
Product Example
<br />
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Widget 3000",
"image": [
"https://yourdomain.com/widget.jpg"
],
"description": "High-quality widget for home and business use.",
"sku": "W3000",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "49.99",
"availability": "https://schema.org/InStock"
}
}
</script><br />
Use Product schema for real products with price and stock status. Do not use it for services or generic landing pages.
03Common Pitfalls and How to Avoid Them
- Mismatch with Google Business Profile: Make sure your schema address and phone match your Google listing exactly. Even small differences can hurt rankings.
- Invalid JSON: Use a validator like Google’s Rich Results Test to check your markup. A single missing comma can break your schema.
- Duplicate or conflicting schema: Some plugins add their own schema. If you add custom JSON-LD, turn off duplicate schema in your SEO plugin settings.
- Missing required fields: Google ignores incomplete schema. Always include name, address, phone, and URL at minimum.
04How to Test Your Schema Markup
After adding or updating your JSON-LD, always test it. Use these tools:
Paste your page URL or the raw JSON-LD. Check for errors or warnings. Fix any issues before you go live. Test again after plugin or theme updates.
05Summary: Keep It Simple and Accurate
For most local businesses, the only schema you need is LocalBusiness with full, accurate details. Add FAQ or Product schema if your page content supports it. Skip the extras that do not move the needle. Always test your markup and keep it in sync with your Google Business Profile. This approach delivers real SEO gains without clutter or risk.