{"id":251376,"date":"2026-10-10T10:57:00","date_gmt":"2026-10-10T10:57:00","guid":{"rendered":"https:\/\/muhamedahmed.com\/schema-markup-local-business\/"},"modified":"2026-11-02T03:56:48","modified_gmt":"2026-11-02T03:56:48","slug":"schema-markup-local-business","status":"publish","type":"post","link":"https:\/\/muhamedahmed.com\/en\/schema-markup-local-business\/","title":{"rendered":"Schema Markup for Local Business and Service Websites: A Practical Guide"},"content":{"rendered":"<p><strong>Schema markup for local business<\/strong> websites is structured data, written in JSON-LD with the Schema.org vocabulary, that tells search engines exactly who the business is, where and when it operates, what services it offers, and how its pages relate. The essentials are LocalBusiness (or Organization), WebSite, Service and BreadcrumbList, plus Article and FAQPage on content pages.<\/p>\n<p>This supports my pillar on <a href=\"\/entity-seo\/\">entity SEO<\/a>; schema is how you state your entity&#8217;s facts in machine-readable form.<\/p>\n<h2>What is schema markup and how does it work?<\/h2>\n<p>Schema markup is a block of code added to a page that labels its content: &#8220;this is a business named X at this address, open these hours, offering these services.&#8221; Search engines parse it, compare it with the visible page, and may use it for rich results, knowledge panels and understanding. It makes pages eligible for features; it does not guarantee them or directly raise rankings.<\/p>\n<h2>JSON-LD: the format to use<\/h2>\n<p>Google recommends JSON-LD when your setup allows it. It sits in a <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> tag, separate from the HTML layout, which makes it easier to maintain than microdata.<\/p>\n<h2>The schema types a service business needs<\/h2>\n<h3>1. LocalBusiness or Organization<\/h3>\n<p>Use <code>LocalBusiness<\/code> (or a more specific subtype such as <code>ProfessionalService<\/code>, <code>Dentist<\/code>, <code>Restaurant<\/code>) if customers visit you or you serve a defined area. Otherwise <code>Organization<\/code>. For freelancers, a <code>Person<\/code> entity often fits better.<\/p>\n<pre><code class=\"language-json\">{\n  &quot;@context&quot;: &quot;https:\/\/schema.org&quot;,\n  &quot;@type&quot;: &quot;ProfessionalService&quot;,\n  &quot;@id&quot;: &quot;https:\/\/example.com\/#business&quot;,\n  &quot;name&quot;: &quot;Example Web Studio&quot;,\n  &quot;url&quot;: &quot;https:\/\/example.com\/&quot;,\n  &quot;logo&quot;: &quot;https:\/\/example.com\/logo.png&quot;,\n  &quot;image&quot;: &quot;https:\/\/example.com\/office.jpg&quot;,\n  &quot;telephone&quot;: &quot;+20-000-000-0000&quot;,\n  &quot;address&quot;: {\n    &quot;@type&quot;: &quot;PostalAddress&quot;,\n    &quot;streetAddress&quot;: &quot;12 Example Street&quot;,\n    &quot;addressLocality&quot;: &quot;Alexandria&quot;,\n    &quot;addressCountry&quot;: &quot;EG&quot;\n  },\n  &quot;openingHoursSpecification&quot;: [{\n    &quot;@type&quot;: &quot;OpeningHoursSpecification&quot;,\n    &quot;dayOfWeek&quot;: [&quot;Sunday&quot;,&quot;Monday&quot;,&quot;Tuesday&quot;,&quot;Wednesday&quot;,&quot;Thursday&quot;],\n    &quot;opens&quot;: &quot;09:00&quot;,\n    &quot;closes&quot;: &quot;17:00&quot;\n  }],\n  &quot;areaServed&quot;: [&quot;EG&quot;, &quot;SA&quot;, &quot;AE&quot;],\n  &quot;sameAs&quot;: [&quot;https:\/\/www.linkedin.com\/company\/example&quot;]\n}\n<\/code><\/pre>\n<p>The NAP (name, address, phone) must match your Google Business Profile and the page exactly.<\/p>\n<h3>2. WebSite<\/h3>\n<p>Identifies the site and its publisher, and references the organization by <code>@id<\/code>.<\/p>\n<h3>3. Service<\/h3>\n<p>Describe each main service on its own page:<\/p>\n<pre><code class=\"language-json\">{\n  &quot;@context&quot;: &quot;https:\/\/schema.org&quot;,\n  &quot;@type&quot;: &quot;Service&quot;,\n  &quot;name&quot;: &quot;WooCommerce store development&quot;,\n  &quot;serviceType&quot;: &quot;Ecommerce development&quot;,\n  &quot;provider&quot;: { &quot;@id&quot;: &quot;https:\/\/example.com\/#business&quot; },\n  &quot;areaServed&quot;: &quot;EG&quot;,\n  &quot;url&quot;: &quot;https:\/\/example.com\/services\/woocommerce\/&quot;\n}\n<\/code><\/pre>\n<h3>4. BreadcrumbList<\/h3>\n<p>Mirrors the breadcrumb navigation and helps search engines understand site hierarchy.<\/p>\n<h3>5. Article \/ BlogPosting<\/h3>\n<p>On blog posts: headline, dates, author (referencing your Person <code>@id<\/code>), image and publisher.<\/p>\n<h3>6. FAQPage<\/h3>\n<p>For pages with genuine questions and answers visible on the page. Google limited FAQ rich results in 2023 to a small set of authoritative sites, so do not expect the dropdowns in results. The markup still clearly structures Q&amp;A content, which can help machines, including AI systems, extract answers.<\/p>\n<h3>7. Review and AggregateRating<\/h3>\n<p>Only for reviews visible on the page and collected in line with Google&#8217;s policies. Google does not show review stars for self-serving reviews about your own business placed on your own site (LocalBusiness and Organization). Never invent ratings.<\/p>\n<h2>Connecting the graph with @id<\/h2>\n<p>Instead of repeating the business details everywhere, give each entity an <code>@id<\/code> and reference it:<\/p>\n<ul>\n<li>WebSite <code>publisher<\/code> \u2192 <code>#business<\/code><\/li>\n<li>Service <code>provider<\/code> \u2192 <code>#business<\/code><\/li>\n<li>Article <code>author<\/code> \u2192 <code>#person<\/code><\/li>\n<li>Organization <code>founder<\/code> \u2192 <code>#person<\/code><\/li>\n<\/ul>\n<p>This produces one connected graph rather than disconnected snippets.<\/p>\n<h2>How to add schema in WordPress<\/h2>\n<ul>\n<li><strong>SEO plugins<\/strong> such as Rank Math or Yoast generate Organization, WebSite, Article and Breadcrumb schema and offer settings for business details.<\/li>\n<li><strong>Theme-level output<\/strong> works when you need precise control, but make sure it switches off when an SEO plugin provides the same types, to avoid duplicates.<\/li>\n<li><strong>Custom fields<\/strong> let editors maintain FAQ items or service details without touching code.<\/li>\n<\/ul>\n<p>Duplicate schema from a theme, a plugin and a page builder at the same time is very common. Check the page source and clean it up; a <a href=\"\/wordpress-plugin-audit-checklist\/\">plugin audit<\/a> often finds the cause.<\/p>\n<h2>Validation<\/h2>\n<ol>\n<li><strong>Rich Results Test<\/strong> (Google) shows which rich results the page is eligible for and any errors.<\/li>\n<li><strong>Schema Markup Validator<\/strong> (schema.org) checks general validity against the vocabulary.<\/li>\n<li><strong>Search Console enhancement reports<\/strong> show issues across the site over time.<\/li>\n<\/ol>\n<h2>Rules to stay safe<\/h2>\n<ul>\n<li>Mark up only content visible to users.<\/li>\n<li>Keep facts consistent with the page, your Google Business Profile and other profiles.<\/li>\n<li>Do not mark up content that is misleading or hidden.<\/li>\n<li>Update schema when hours, address or services change.<\/li>\n<\/ul>\n<h2>Checklist<\/h2>\n<ul>\n<li>One main business or person entity with <code>@id<\/code><\/li>\n<li>WebSite and BreadcrumbList on all pages<\/li>\n<li>Service schema on each service page<\/li>\n<li>Article schema with author on posts<\/li>\n<li>FAQPage only where Q&amp;A is visible<\/li>\n<li>No duplicate schema from multiple sources<\/li>\n<li>Validated with both tools<\/li>\n<\/ul>\n<h2>Common mistakes<\/h2>\n<ul>\n<li>Copying a schema template with someone else&#8217;s address still in it.<\/li>\n<li>Marking up five-star ratings with no visible reviews.<\/li>\n<li>LocalBusiness for a fully remote company with no address.<\/li>\n<li>Forgetting to update opening hours in schema after changing them on the site.<\/li>\n<\/ul>\n<h2>A worked example: one service business, one connected graph<\/h2>\n<p>Abstract advice about schema is easy to agree with and hard to apply. Here is how the pieces fit for a typical case: a dental clinic in Nasr City, Cairo, with a bilingual WordPress site, three service pages (implants, whitening, orthodontics) and a blog. The example is illustrative, not a real client.<\/p>\n<ul>\n<li><strong>Homepage:<\/strong> one <code>Dentist<\/code> node (a LocalBusiness subtype) with <code>@id<\/code> set to <code>https:\/\/example.com\/#business<\/code>, the exact name, address and phone shown in the footer, <code>geo<\/code> coordinates, <code>openingHoursSpecification<\/code> that matches the visible hours, and <code>sameAs<\/code> links to the Google Business Profile, Facebook and Instagram pages.<\/li>\n<li><strong>Service pages:<\/strong> a <code>Service<\/code> node per page whose <code>provider<\/code> points to <code>#business<\/code> by reference instead of repeating the address. <code>areaServed<\/code> lists the districts you actually serve.<\/li>\n<li><strong>Blog posts:<\/strong> <code>BlogPosting<\/code> with an <code>author<\/code> that points to a <code>Person<\/code> node for the dentist who wrote or reviewed it, and a <code>publisher<\/code> that points back to <code>#business<\/code>.<\/li>\n<li><strong>Arabic pages:<\/strong> the same <code>@id<\/code> values, with <code>inLanguage<\/code> set to <code>ar<\/code> and the Arabic business name in <code>alternateName<\/code> if customers know it by that name.<\/li>\n<\/ul>\n<p>The point of this structure is that every page describes the same entity in the same way. Search engines do not have to guess whether &#8220;Smile Clinic&#8221; on the homepage and &#8220;\u0639\u064a\u0627\u062f\u0629 \u0633\u0645\u0627\u064a\u0644&#8221; on the Arabic contact page are the same business.<\/p>\n<h2>Choosing the most specific type<\/h2>\n<p>Schema.org has dozens of <a href=\"https:\/\/schema.org\/LocalBusiness\" target=\"_blank\" rel=\"noopener\">LocalBusiness subtypes<\/a>: <code>Dentist<\/code>, <code>LegalService<\/code>, <code>AutoRepair<\/code>, <code>RealEstateAgent<\/code>, <code>Restaurant<\/code> and many more. Google&#8217;s <a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data\/local-business\" target=\"_blank\" rel=\"noopener\">local business documentation<\/a> recommends using the most specific type that fits. Practical rules:<\/p>\n<ul>\n<li>If a precise subtype exists, use it. A law office should be <code>LegalService<\/code> (or <code>Attorney<\/code>), not plain <code>LocalBusiness<\/code>.<\/li>\n<li>If nothing fits, use <code>LocalBusiness<\/code> or <code>ProfessionalService<\/code> rather than forcing a wrong subtype.<\/li>\n<li>Agencies and freelancers who meet clients online only are usually better described as <code>Organization<\/code> or <code>Person<\/code> with a <code>ProfessionalService<\/code> offering, without a street address.<\/li>\n<li>Businesses with several branches (common for clinics and gyms across Cairo, Alexandria, Riyadh or Dubai) need one node per branch, each on its own location page, plus a parent <code>Organization<\/code> linked with <code>parentOrganization<\/code>.<\/li>\n<\/ul>\n<h2>Keeping schema in sync with your Google Business Profile<\/h2>\n<p>For local businesses, the Google Business Profile is often the first thing people see in Maps. Schema on your site does not replace it, but the two should agree. Mismatches create doubt about which version is correct.<\/p>\n<ul>\n<li>Use the same business name, without keyword stuffing. Google&#8217;s <a href=\"https:\/\/support.google.com\/business\/answer\/3038177\" target=\"_blank\" rel=\"noopener\">Business Profile guidelines<\/a> ask for your real-world name.<\/li>\n<li>Match the phone number format and the primary category.<\/li>\n<li>When hours change for Ramadan or public holidays, update the profile, the visible hours on the site and the schema together. Seasonal hours are one of the most common mismatches in Egypt and the Gulf.<\/li>\n<li>Add the profile URL to <code>sameAs<\/code> so the connection is explicit.<\/li>\n<\/ul>\n<h2>A quick note on FAQ and review rich results<\/h2>\n<p>Many older tutorials promise star ratings and FAQ dropdowns in search results. Since August 2023, Google <a href=\"https:\/\/developers.google.com\/search\/blog\/2023\/08\/howto-faq-changes\" target=\"_blank\" rel=\"noopener\">shows FAQ rich results mainly for well-known government and health sites<\/a>, and self-serving review markup (a business rating itself) is not eligible for review stars. You can still use <code>FAQPage<\/code> when real Q&amp;A is visible, because it describes the page accurately, but do not expect a visual change in results. Never add ratings you collected elsewhere or invented.<\/p>\n<h2>How to measure whether schema is working<\/h2>\n<ul>\n<li><strong>Search Console enhancement reports:<\/strong> look for valid items and new errors after each theme or plugin update.<\/li>\n<li><strong>URL Inspection:<\/strong> confirm Google sees the rendered structured data on key pages.<\/li>\n<li><strong>Rich result performance:<\/strong> in the Performance report, filter by search appearance where eligible types show up.<\/li>\n<li><strong>Change log:<\/strong> note when you changed schema. Without dates, you cannot connect any later change in clicks or impressions to your work.<\/li>\n<\/ul>\n<p>Treat schema as maintenance, not a one-off job. Review it whenever you change your address, phone, hours, services or plugins.<\/p>\n<h2>FAQ<\/h2>\n<h3>Does schema markup improve rankings directly?<\/h3>\n<p>Google describes structured data as a way to help it understand page content and to enable certain search features. It is not presented as a direct ranking boost. The practical value is clarity and eligibility, not a guaranteed position.<\/p>\n<h3>Can I use two SEO plugins that both output schema?<\/h3>\n<p>You can, but you should disable schema output in one of them. Two plugins often produce two conflicting Organization nodes, which is worse than one clean graph.<\/p>\n<h3>Should a freelancer use LocalBusiness?<\/h3>\n<p>Only if clients visit a real address. A remote freelancer is better described as a <code>Person<\/code> who offers services, with links to verified profiles.<\/p>\n<p>Schema is one part of a wider <a href=\"\/technical-seo-audit-checklist\/\">technical SEO audit<\/a>. If you want your structured data set up and validated, <a href=\"\/contact\/\">contact me<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What schema markup is, how it works, and which types a local business or service website actually needs: Organization, LocalBusiness, Service, FAQPage, Article and BreadcrumbList, with examples.<\/p>\n","protected":false},"author":1,"featured_media":252154,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":"","_mx_tldr":"Schema markup is structured data that describes your page content in a vocabulary search engines understand.\nUse JSON-LD, connect entities with @id, and mark up only what is visible on the page.\nA local or service business usually needs Organization or LocalBusiness, WebSite, Service, BreadcrumbList, and Article and FAQPage where relevant.\nValidate with Google's Rich Results Test and the Schema Markup Validator.","_mx_faq":"What is schema markup? | Schema markup is code, usually JSON-LD, that uses the Schema.org vocabulary to describe what a page is about: a business, a product, an article, an FAQ. It helps search engines and other systems understand and display your content.\nHow does schema markup work? | Search engines read the structured data, match it with the visible content, and may use it for rich results and to understand entities. Markup makes a page eligible for some features but does not guarantee them.\nDo I need LocalBusiness schema if I work remotely? | LocalBusiness is meant for businesses with a physical location customers visit or a defined service area. Remote service providers often use Organization or ProfessionalService, or Person for individuals.\nDo FAQ rich results still show in Google? | Since August 2023 Google shows FAQ rich results only for a limited set of well-known authoritative government and health sites. FAQPage markup is still valid structured data and can help machines understand Q&A content."},"categories":[106],"tags":[167,166,165,159],"class_list":["post-251376","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-ai-search","tag-json-ld","tag-localbusiness","tag-schema-markup","tag-structured-data"],"_links":{"self":[{"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/posts\/251376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/comments?post=251376"}],"version-history":[{"count":1,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/posts\/251376\/revisions"}],"predecessor-version":[{"id":252476,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/posts\/251376\/revisions\/252476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/media\/252154"}],"wp:attachment":[{"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/media?parent=251376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/categories?post=251376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/muhamedahmed.com\/en\/wp-json\/wp\/v2\/tags?post=251376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}