Schema markup is the piece of technical SEO that most Tucson business websites are missing. Not because it's obscure — Google has been promoting structured data for over a decade — but because page builders don't generate it, most WordPress themes don't include it, and most web designers either don't know what it is or treat it as optional. It isn't optional. It's how you communicate directly with Google's crawlers in a language they prefer over trying to interpret your page copy.
This guide covers schema from the beginning. What it is, which types matter for a Tucson service business, what errors disqualify you from rich results, and what to look for when hiring a firm that claims to "handle the technical SEO." By the end, you'll be able to validate any schema claim your web designer makes — and recognize when they're bluffing.
Schema markup is JSON-LD code embedded in your page that tells Google structured facts about your business — your address, your services, your hours, your reviews, your FAQs. Google uses it to generate rich results (star ratings, FAQs, breadcrumbs) in search listings. It doesn't replace good content — it enhances what good content can achieve in search.
What's in this guide.
- What schema markup actually is5 questions
- LocalBusiness schema for Tucson service businesses5 questions
- Schema types for specific page types5 questions
- Rich results — what schema can earn in search4 questions
- Common schema errors and how to fix them5 questions
- Implementation — what to ask your web designer4 questions
01What schema markup actually is.
1.1What is schema markup and where does it come from?
Schema markup is a shared vocabulary of structured data — a standardized set of properties that describe things, people, places, businesses, and actions in a way that machines can reliably interpret. The vocabulary lives at Schema.org, a collaboration between Google, Bing, Yahoo, and Yandex launched in 2011. The idea: instead of Google having to guess that "123 Main St, Tucson, AZ" is your address, you use schema to explicitly declare it as streetAddress inside a LocalBusiness object. The crawler reads the declaration directly, without inference.
The preferred format for implementing schema is JSON-LD — JavaScript Object Notation for Linked Data. It lives in a <script type="application/ld+json"> tag, usually in the page <head> or just before the closing <body> tag. It doesn't modify your visible HTML, which makes it easy to add and easy to maintain separately from your content.
1.2Does schema markup directly improve rankings?
Not directly — Google has been clear that schema markup is not a ranking signal in the same way that backlinks or Core Web Vitals are. What it does: it makes your content machine-readable, which enables rich results (enhanced search listings with stars, FAQs, breadcrumbs, prices, or event dates). Rich results earn more clicks than standard blue-link results for the same position, which improves your organic CTR. Higher CTR at the same position is a positive engagement signal. The indirect chain — schema → rich result → better CTR → positive signal → eventual ranking improvement — is measurable and real, even if the direct link isn't.
1.3What's the difference between schema and meta tags?
Meta tags (like <meta name="description"> and <title>) are general-purpose HTML elements that provide basic page metadata — primarily consumed by search engines for display in search results and by social platforms for link previews. Schema markup is a more structured, more semantic data format that describes the actual entities and relationships on the page — the business, the services, the people, the reviews. Think of meta tags as the label on a box; schema is the inventory manifest inside it. Both matter; they serve different functions and neither replaces the other.
1.4Can schema hurt rankings if done incorrectly?
Yes — implementing schema incorrectly or in ways that violate Google's policies can result in a manual action (a penalty that removes your site from rich result eligibility or affects rankings). The most common violations: marking up content that isn't visible on the page (hidden schema), using schema to misrepresent information (claiming 5-star reviews that aren't sourced from a real review aggregator), and using irrelevant schema types (marking up content as an event when it isn't). Errors that don't violate policy — a typo in a property name, a missing required field — don't incur penalties; they just prevent the rich result from appearing. The line between "error" and "violation" is worth understanding before implementing.
1.5What's the fastest way to check whether a page has schema on it already?
Three tools. First, Google's Rich Results Test (search.google.com/test/rich-results) — paste a URL or paste code and it shows you what schema types were found, whether they're valid, and whether they're eligible for rich results. Second, Google Search Console's "Enhancements" section — if your site is verified in Search Console, it shows you schema types detected across your site, plus any errors and warnings. Third, for a quick manual check: right-click the page, "View Page Source," and search for application/ld+json. If that string appears, the page has JSON-LD schema. If it doesn't, it either has no schema or uses Microdata (an older, less-preferred format embedded directly in the HTML).
02LocalBusiness schema for Tucson service businesses.
2.1What is the LocalBusiness schema type and what properties should it include?
The LocalBusiness schema type (and its more specific subtypes like Dentist, LegalService, HomeAndConstructionBusiness, ProfessionalService) is the most important schema block for any Tucson business website. At minimum, a well-built LocalBusiness block includes: @type, name, url, telephone, address (with streetAddress, addressLocality, addressRegion, postalCode, addressCountry), openingHoursSpecification, geo (latitude and longitude), priceRange, areaServed, and sameAs (linking to your GBP, Yelp, Facebook, and other authoritative profiles).
The areaServed property is particularly important for Tucson service businesses that cover a geographic service area rather than a single address. It can take a list of city names, zip codes, or GeoCircle objects to define the area you serve — which helps Google understand the geographic scope of your relevance.
2.2Should I use a generic LocalBusiness type or a more specific subtype?
Use the most specific accurate subtype available. Schema.org has specific business types for dozens of service categories: Dentist, MedicalClinic, LegalService, Lawyer, AccountingService, Plumber, Electrician, HVACBusiness, WebDesigner (under ProfessionalService), and many more. Using a specific subtype tells Google more precisely what kind of business you are, which improves relevance for category-specific searches. If your specific type isn't available, use the most specific parent category that fits. You can also stack types — "@type": ["LocalBusiness", "ProfessionalService", "WebDesigner"] — to be explicit about the hierarchy.
2.3What's the correct way to mark up a Tucson address in schema?
Here is the correct format for a Tucson business address in JSON-LD:
"address": {
"@type": "PostalAddress",
"streetAddress": "1234 N Campbell Ave, Suite 100",
"addressLocality": "Tucson",
"addressRegion": "AZ",
"postalCode": "85719",
"addressCountry": "US"
}The addressRegion should be the two-letter state abbreviation (AZ, not Arizona). The addressCountry should be the two-letter ISO country code (US, not United States). These aren't just stylistic preferences — Google's schema validator checks for the ISO format and will generate a warning if the format doesn't match what it expects. Also: the address in your schema should match your GBP address exactly — same abbreviations, same suite format, same everything. NAP consistency applies to structured data too.
2.4What does the sameAs property do and why does it matter?
The sameAs property links your website's schema representation of your business to your authoritative profiles on other platforms — Google Business Profile, Yelp, Facebook Business, LinkedIn, BBB, and any industry-specific directories. It's the schema way of saying: "This business entity described here is the same entity as the one at these URLs." Google uses sameAs connections to consolidate information from multiple sources into a more confident entity profile in its knowledge graph. A business with sameAs links to five authoritative external profiles has a more established entity presence than one with no links — and a more established entity is more likely to appear in Knowledge Panel results.
2.5Where should the LocalBusiness schema block live on the site?
The LocalBusiness schema block should appear on the homepage, and optionally on location-specific landing pages if you serve multiple geographic areas. It does not need to appear on every page — in fact, placing it on every page (like in the global footer) is technically valid but creates unnecessary duplication. The homepage is the canonical home for your business entity schema. Service pages should have Service schema. Blog posts should have BlogPosting or Article schema. The schema ecosystem for a well-built site is a set of interconnected blocks, each on the right page type, not a single block copied to every URL.
03Schema types for specific page types.
3.1What schema should a service page have?
Service pages should include a Service schema block that describes the specific service offered — its name, description, the provider (linking back to your LocalBusiness entity), the area it's served in, and optionally a price or price range. For a web design firm in Tucson, a service page schema might look like:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Custom WordPress Web Design for Tucson Businesses",
"description": "Hand-coded, custom WordPress websites for Tucson service businesses...",
"provider": {
"@type": "ProfessionalService",
"@id": "https://bestwebdesigntucson.com/#business"
},
"areaServed": {
"@type": "City",
"name": "Tucson",
"sameAs": "https://en.wikipedia.org/wiki/Tucson,_Arizona"
},
"serviceType": "Web Design"
}The @id reference back to your business entity is the key — it links this service to the entity you've described in your LocalBusiness block, building the relational graph that Google's knowledge system uses.
3.2What is FAQPage schema and when should it be used?
FAQPage schema marks up a page (or section of a page) that contains frequently asked questions and their answers. When Google accepts a page's FAQPage schema, it can display the questions and answers directly in the search result — expanding the listing's visual footprint and showing relevant answers before the user even clicks. This is one of the highest-value rich results available to service businesses because FAQ-formatted pages rank well for long-tail queries (specific questions about your service) and the FAQ rich result dramatically increases click-through rate for those queries. The requirement: each question and its full answer must be visible on the page (you can't schema markup questions that aren't in the page content).
3.3What is BreadcrumbList schema and does it matter?
BreadcrumbList schema marks up the navigational breadcrumb trail (Home > Journal > Local SEO > This Post) in a structured format that Google can display in search results — replacing the bare URL with a cleaner breadcrumb path. It has two practical benefits: cleaner URLs in search listings (which tend to get better click-through rates than raw long URLs) and clearer site hierarchy signals for Google's understanding of your content structure. For a site with a deep content architecture — like a WordPress authority site with dozens of blog posts and service pages — BreadcrumbList schema on every page is standard practice. On every page of this journal you're reading now, there's a BreadcrumbList block in the source.
3.4What schema should blog posts and articles have?
Blog posts should have either BlogPosting or Article schema. The required properties for Google to consider it valid: headline, image, datePublished, author (with a Person entity), and publisher (with an Organization entity including a logo). Optional but useful: dateModified, description, keywords, and mainEntityOfPage (the canonical URL of the post). The author Person entity is worth marking up carefully — linking it via @id to a consistent entity URL (like your author bio page) builds a named entity association between you and your content, which is part of the E-E-A-T (Experience, Expertise, Authority, Trust) signal that Google uses to assess content quality.
3.5What about Review schema — can I mark up my own reviews?
This is one of the most commonly misunderstood schema restrictions. You cannot use Review or AggregateRating schema to mark up reviews that you've collected yourself (reviews submitted directly to your website that you control). Google requires that reviews marked up with schema be sourced from a third-party review platform — Google itself, Yelp, Facebook, a verified review aggregator — and that the schema appear on a third-party platform, not on your own site. Google's rich result guidelines explicitly prohibit self-serving review schema on a business's own pages. The penalty for violating this is a manual action that removes rich result eligibility from your site. If you want star ratings in your search results, they need to come from a verified third-party source integrated via a compliant widget or API, not from hand-coded schema.
04Rich results — what schema can earn in search.
4.1What are rich results and how do they differ from regular search listings?
A standard Google search result shows: a page title (blue link), URL, and meta description. A rich result is an enhanced version of that listing that includes additional visual elements — star ratings, FAQ expandable sections, breadcrumb trails, event dates, product prices, or How-To steps. Rich results take up more vertical space in the search results page, which makes them more visually prominent and tend to earn higher click-through rates. Not all schema types produce rich results — some schema types improve Google's understanding of your content without producing a visible enhancement. The types that reliably produce rich results for service businesses: FAQPage, BreadcrumbList, LocalBusiness (in Knowledge Panels, not traditional results), HowTo, and Review (from third-party sources).
4.2Why would valid schema not produce a rich result?
Several reasons. First, eligibility: Google's rich result algorithms evaluate whether the page is high-quality enough to deserve an enhancement. A thin, low-authority page with technically valid schema may not earn a rich result because Google doesn't judge the page to be high enough quality to feature. Second, competition: for some query types, Google limits how many rich results appear per search results page. If five other highly-authoritative sites already have FAQ rich results for a query, a sixth may not appear. Third, schema quality issues: not all required fields present, content visible on the page doesn't match the schema markup, or the schema structure has formatting errors that prevent parsing. Check the Rich Results Test for detailed feedback on specific pages.
According to Advanced Web Ranking's 2025 click-through rate study, pages with FAQ rich results in position 3–5 earn an average 24% higher CTR than equivalent pages in the same positions without rich results. For position 1 results, the boost is smaller but still meaningful: roughly 8–12% additional clicks from the expanded visual footprint.
4.3What is a Knowledge Panel and how does schema affect whether a business gets one?
A Knowledge Panel is the information box that appears on the right side of Google search results (desktop) or at the top of results (mobile) when someone searches for a specific business by name. It pulls from multiple sources: your Google Business Profile, your website's schema, Wikipedia if you have an entry, social profiles, and Google's entity graph. A well-implemented LocalBusiness schema with strong sameAs connections — linking your schema entity to your GBP, Yelp, Facebook, and BBB profiles — gives Google the entity signals needed to confidently generate a Knowledge Panel. Businesses with incomplete or inconsistent entity data (mismatched NAP between schema, GBP, and citations) often struggle to generate Knowledge Panels or see incomplete ones.
4.4Do schemas for reviews affect local pack ranking in Google Maps?
Not directly. Local pack rankings are primarily driven by Google Business Profile signals, not by on-page schema for reviews. However, the entity association between your website and your GBP (established through sameAs and consistent NAP in your LocalBusiness schema) can strengthen the confidence that Google has in your overall business entity — which does contribute to prominence scores that affect local pack ranking. The relationship is indirect: strong schema → stronger entity recognition → stronger prominence → better local pack position. It's not the biggest lever, but it's part of a complete local SEO strategy rather than a separate one.
Want to know what schema your site is missing?
We'll run a full structured data audit on your current site and show you exactly which schema types are missing, invalid, or configured in ways that disqualify you from rich results.
Get a free website audit →05Common schema errors and how to fix them.
5.1What are the most common schema errors on small business WordPress sites?
The most common errors we find in audits, in order of frequency:
- Missing required fields — LocalBusiness schema without an address, or BlogPosting schema without an image. Google's validator will flag these and the page won't qualify for rich results.
- Schema that doesn't match page content — FAQ schema with questions that aren't on the page, or price markup for a service priced differently on the page.
- Using plugin-generated schema without reviewing the output — many SEO plugins (Yoast, RankMath) generate schema automatically, but the defaults are often wrong:
@typeset toOrganizationwhen it should beLocalBusiness, missinggeocoordinates, emptysameAsarrays. - Self-serving review schema — marking up reviews collected directly on the site, which violates Google's policies.
- Duplicate conflicting schema — two different
LocalBusinessblocks with different addresses, from different sources (a plugin plus a custom implementation), causing Google to see conflicting information.
5.2How do SEO plugins handle schema and what do I need to customize?
Yoast SEO, RankMath, and All in One SEO all generate JSON-LD schema automatically — which is helpful, but the defaults require review and customization for a Tucson local business. The most important customizations: switch @type from Organization to the specific business type that fits (e.g., LocalBusiness or a more specific subtype). Add your physical address with all required fields. Add your geo coordinates (use Google Maps to find the exact latitude/longitude for your location). Add your areaServed property with Tucson and surrounding service areas. Add sameAs URLs for every major profile. And verify the output in the Rich Results Test after saving. Plugins give you a good starting point, but the default output for a Tucson service business is rarely publication-ready without customization.
5.3What's the difference between a schema error and a schema warning?
In Google's Rich Results Test and Search Console: an error means a required property is missing or a value is malformed — the page won't be eligible for the rich result that schema type would unlock. A warning means a recommended (but not required) property is missing — the page may still qualify for the rich result, but it will be less complete than the ideal. Practically: fix all errors before worrying about warnings. Then address warnings in priority order — the ones that add the most useful information to the rich result (image, description, priceRange) are worth adding even when they're not technically required.
5.4My site has a WordPress SEO plugin — does that mean my schema is handled?
Not reliably. Installing Yoast or RankMath means schema is being generated — it doesn't mean it's correct, complete, or appropriate for a local Tucson business. We audit sites regularly that have SEO plugins installed and configured but still have critical schema errors: wrong business type, no address, no geo coordinates, empty sameAs, auto-generated FAQ schema that points to questions not actually on the page. The plugin is a tool; someone still has to configure it correctly and verify the output. If your web designer installed an SEO plugin and called it done on "technical SEO," run the Rich Results Test and Search Console Enhancements report to see the actual state of your schema implementation.
5.5How do I validate schema before a site goes live?
Three-step validation process: (1) Run the page through Google's Rich Results Test with the URL or with the raw HTML — check for errors, warnings, and which rich result types are eligible. (2) Check the JSON-LD against the Schema.org Validator (validator.schema.org) to catch any type or property errors that the Rich Results Test might not surface. (3) After launch, verify in Google Search Console's Enhancements section — within 48–72 hours of Google crawling the page, any schema detected will appear there with its status. This three-step process should be part of the pre-launch checklist for any new Tucson business website.
06Implementation — what to ask your web designer.
6.1What should schema implementation include in a web design project scope?
At minimum, a Tucson business website build should include: (1) LocalBusiness schema on the homepage with all required and recommended properties complete. (2) Service schema on each service page. (3) BlogPosting or Article schema on each blog post. (4) BreadcrumbList schema on all pages except the homepage. (5) FAQPage schema on any page with a dedicated FAQ section. (6) Validation via the Rich Results Test at launch. (7) Documentation of what schema was implemented and where, so future updates can be maintained correctly. If a web design proposal doesn't mention schema at all, ask specifically — and if the answer is "our SEO plugin handles it," ask them to show you the Rich Results Test output for one of their recent builds.
6.2Is schema something I can add myself after the site is built?
Yes — for a developer-comfortable site owner, adding JSON-LD schema to a WordPress site is straightforward. You can add it via a custom plugin, via the WordPress Customizer (pasted into the <head>), or via a schema-specific plugin like Schema Pro. For a non-technical owner, the easiest path is to use RankMath or Yoast's schema UI — configure the business type, address, and social profiles through the plugin's settings screen, then verify the output in the Rich Results Test. The catch: schema added this way still needs the customization mentioned in 5.2 above. The plugin won't know your service areas, your geo coordinates, or your correct business subtype without you telling it.
Green flag: The firm can show you the Rich Results Test output for a recently-built client site and explain which schema types are implemented and why. They mention LocalBusiness, Service, FAQPage, and BreadcrumbList without prompting.
Red flag: The firm says "we use Yoast for SEO" without further elaboration, or doesn't know what the Rich Results Test is, or mentions "schema" in a services list but can't explain what types they implement or how they validate them.
6.3How does schema need to be maintained after launch?
Schema needs to stay current with your actual business information. Any change to your address, phone number, hours, or service offerings needs to be reflected in your schema markup — otherwise you're creating conflicts between your structured data and your GBP, which Google resolves by trusting neither as confidently. For blog posts: each new post needs its BlogPosting schema block with accurate datePublished, dateModified, and author information. For service pages: if a service is discontinued or a new one added, schema needs to match. This is a small but ongoing maintenance task — part of why a good maintenance plan from your web designer includes schema updates, not just security patches.
6.4What does Tucson-specific schema look like in practice?
"Tucson-specific" schema means your structured data explicitly identifies your service geography in ways that are useful to Google. This includes: addressLocality: "Tucson" and addressRegion: "AZ" in your address block. areaServed populated with an array of cities you serve — Tucson, Marana, Oro Valley, Sahuarita, South Tucson, Catalina Foothills. geo coordinates that place your business at a specific point on a map. sameAs linking to your Tucson-specific GBP URL. And on location-specific service pages, a Service schema block with areaServed narrowed to the specific neighborhood or city that page targets. This specificity is what makes your schema useful for local queries rather than generic ones.
Schema built in, not bolted on.
Every site we build includes a complete schema architecture — LocalBusiness, Service, BlogPosting, FAQPage, BreadcrumbList — validated at launch and documented for maintenance. If your current site is missing structured data, we can audit it and fix it. Let's talk.