What schema is in plain terms
A person reading your contact page understands that a name identifies the business and a phone number reaches its team. Structured data labels those relationships explicitly for software. JSON-LD is a text format used to supply those labels. It can sit in a page without changing the visible design, but the information it describes still needs to agree with what visitors can read.
Think of the markup as a description rather than an application for a higher position. It does not create a new location, verify a service or establish a reputation. Adding a type called MovingCompany tells a system what kind of business the page describes. It does not prove that the company is eligible for a particular search appearance or deserves to outrank another mover.
Schema.org defines a vocabulary. Google separately decides which structured data features it supports and what its search appearances require. A valid property in that vocabulary is not automatically eligible for a Google rich result. This distinction matters when a validator accepts your markup but a search preview shows nothing different. The absence of an enhancement is not by itself evidence that the markup failed.
Start with correct business details and accessible pages. If the website contains conflicting phone numbers or claims a location you do not operate, resolve those issues first. Structured data for moving companies is useful when it clarifies facts, not when it attempts to hide weaknesses behind technical labels.
The type movers should use
MovingCompany is a specific subtype of LocalBusiness in Schema.org. It describes a moving business more precisely than a generic business label alone. Use it for the real company represented by the website. An informational article about moving does not become a moving business just because its subject mentions trucks or packing.
An article can have its own Article markup while referring to the organization responsible for publishing it. A service page can describe a service connected to the same business. Those are different subjects within the site, not reasons to create a new business identity for every URL. Keep a stable identifier for the actual business when your implementation connects these descriptions.
The example below uses a website address followed by a business fragment as that identifier. Replace the domain with your own preferred public domain and use the identity consistently. If your business genuinely has separate locations, get the structure right for those locations rather than multiplying the same business across city pages.
Do not add every available subtype in the hope that more labels create more visibility. A company that only handles moving should not claim storage facilities or unrelated operations. The local business schema for movers should describe the organization customers will actually hire.
Fields that matter
Start with the public business name, preferred website URL and a phone number that reaches the real company. Compare them with the contact information visitors see. If tracking numbers are involved, coordinate the setup so the markup and visible page remain accurate. Never paste a placeholder number onto a live page and assume a search engine will understand it is temporary.
Address details need care. If you operate a genuine customer-facing location and publish that address, an accurate PostalAddress can describe it. If customers do not visit your operating address, do not expose a private home address merely to complete a generator. Describe genuine service coverage with areaServed and review current platform requirements before deciding whether an address belongs in public markup.
An honest service-area setup may not meet the address requirements of a particular Google enhancement. Accept that limitation rather than inventing an office. Schema.org can describe coverage, but areaServed does not create a staffed location or move the business closer to a searcher. Keep the distinction between a service area and a business premises clear in both text and markup.
Hours should describe real availability rather than an aspiration. Add opening hours only when the business has confirmed them and the website shows the same information. Services should match actual offerings, including important limits. You can describe genuine services without adding a price. For Moving SEO, any paid work is scoped through a custom quote; the template does not require a price field.
Copy-ready JSON-LD template
This is a complete JSON-LD object with obvious placeholders, not a real mover listing. It uses a service-area example and deliberately omits a street address, hours, ratings and prices. Replace every placeholder with confirmed public details, replace the sample service with something you actually offer and remove anything you cannot support. Keep the visible website consistent with the completed version.
The text shown here is an example for reading and copying, not active business markup on this article. On your own site, your website editor can place the completed object inside a script element with the application/ld+json type. Do not publish the placeholder version or treat it as proof of eligibility for a Google search enhancement.
If you have verified public opening hours, add the appropriate hours fields to the completed version using valid Schema.org formatting. A genuine published customer-facing address can be added as a PostalAddress when appropriate. Those fields are omitted here because invented hours or a fictional street would make a reusable example easy to misuse.
{
"@context": "https://schema.org",
"@type": "MovingCompany",
"@id": "https://www.example.com/#business",
"name": "YOUR BUSINESS NAME",
"url": "https://www.example.com",
"telephone": "+1-000-000-0000",
"areaServed": {
"@type": "City",
"name": "CITY"
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "YOUR ACTUAL MOVING SERVICES",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "YOUR ACTUAL SERVICE NAME"
}
}
]
}
}Where to place it and how to test it
Place JSON-LD in the page HTML using the supported option in your website system. It can be in the head or body. Check whether a theme or existing tool already supplies business markup before adding another version. Duplicate descriptions with different names, numbers or addresses create unnecessary uncertainty and are harder to maintain when the business changes.
After saving a real implementation, inspect the published page rather than only the editor settings. Confirm that the completed object appears, that placeholders are gone and that its details match the visible page. Use the Schema Markup Validator to check vocabulary and syntax. Use Google's Rich Results Test to inspect supported Google features, remembering that it does not report every Schema.org type as an eligible enhancement.
Read warnings in context. A missing recommended property may describe a field your business cannot honestly supply, while malformed JSON needs correction. Do not turn a warning into a reason to fabricate an address or rating. Keep a record of what was changed and repeat the check after a template update, website move or business-detail change.
What not to mark up
Do not manufacture ratings, testimonials or customer feedback to make a search preview look attractive. Never add AggregateRating unless the underlying reviews are collected in a way Google allows and the implementation meets the applicable eligibility rules. Even genuine reviews do not automatically make a local business eligible for review stars; Google restricts self-serving review features. Leaving the field out is better than implying eligibility you cannot establish.
Do not label services you cannot provide or locations where you have no business presence. A service-area page is not a branch office. Copying a competitor's object can import their identity, phone, location or claims without you noticing. Use a template to understand the structure, then supply only facts about your own operation.
FAQ rich results are limited or retired for many sites, so write FAQs for readers rather than for an expected search display. Only add FAQ markup when it matches questions and answers visibly available on the page. Do not invent questions solely to fill a schema generator or hide a different answer in the structured data. Valid markup never guarantees a rich result.
Schema vs Google Business Profile
Website markup and Google Business Profile describe related facts through different systems. Updating a JSON-LD object does not update your profile, verify ownership or resolve a suspended listing. Maintain the profile directly and keep the website details consistent with it. Where a service-area business hides its address, respect that privacy decision instead of exposing the address in website source.
When something changes, check the public name, phone, hours, website link and service information across both places. Assign responsibility for that review so a staff change does not leave old details behind. Consistency should reflect the real business rather than force identical formatting where platforms work differently.
Schema is a supporting technical task, not the whole search plan. Useful service pages, accurate coverage and a working contact path still matter. If you are choosing what to fix next, use the broader checklist before spending time adding optional properties. Keyword planning can then help decide which customer questions deserve a page in the first place.
FAQ
Does schema help me rank higher?
It can help systems interpret the information on a page, but adding markup is not a ranking shortcut or a guarantee of an enhanced search appearance. Correct details and useful pages remain the foundation.
Do I need schema on every page?
Use relevant markup where it accurately describes the page and its subject. Keep the business identity consistent and avoid adding unrelated types to every URL. Check what your existing website tools already output before duplicating them.
Should service-area movers put a street address in schema?
Do not expose a private operating address simply to satisfy a tool. Use honest service-area information and review current requirements for any feature you want. Omitting an address can limit Google enhancement eligibility, but inventing or exposing an inappropriate address is not the answer.
Can I copy a competitor's schema?
Do not copy their business details or claims. You can learn the structure from a generic example, then use your own verified information. Check the result for leftover names, identifiers, phone numbers and locations before publishing.