Free Moving Company Schema Generator

Fill in the facts visible on your page, copy the Moving Company JSON-LD, and validate it before you publish. The guide, examples, and FAQs are below the tool. Generate this schema with AI

Type to filter 121 supported schema types.

Schema workflow

Use only facts a visitor can verify on the page, then validate the JSON-LD before publishing.

Business identity

Describe the same business, page, and public contact details that a customer can see.

Location and contact

Use one address or service-area location per schema block. Coordinates are optional.

Opening hours

Add one Schema.org opening-hours specification per schedule, such as Mo-Fr 09:00-17:00.

Opening-hours specification

Use day ranges and 24-hour times.

Ratings and profiles
Ratings and profiles

Only add an aggregate rating that visitors can see on this page. Profile URLs should represent the same business.

Profile URL

Add official social or business-directory profiles.

Required

  • Business name
  • Canonical local page URL
  • Phone or contact path
  • Address or service area
  • Business subtype

Recommended

  • Opening hours
  • SameAs social/profile links
  • Menu, booking, or service URLs when visible

Avoid

  • Marking up a city page as a real storefront
  • Inventing aggregate ratings
  • Mixing multiple locations in one schema block

Schema stacks

Use Moving Company schema in a stack

Complete JSON-LD bundles that combine Moving Company with the other types a real page needs. Browse all stacks

  • Moving + Storage Stack

    Moving/storage service pages with MovingCompany + Service context, FAQs, and breadcrumbs.

Next step

Validate, repair, and publish clean structured data.

Check the generated JSON-LD against the visible page, then run both SwiftSchema and external validators before publishing.

Moving Company Schema Generator — Be the First Call on Moving Day

Generate clean JSON‑LD for moving services. Clarify address, phone, hours, service areas, and offerings (local/long‑distance, packing) to boost local visibility and trust.

Try the Moving Company Generator

Why many moving pages underperform

  • Bare snippets: competitors show hours and phone while your result looks generic.
  • Coverage area (local vs long‑distance) and services (packing/storage) aren’t obvious to searchers.
  • Inconsistent NAP (name, address, phone) across pages confuses maps.
  • Validator warnings for address fields or `openingHours` slow updates.

How SwiftSchema helps

Our generator ensures essentials are present and correctly formatted — full address, telephone, opening hours — and encourages listing service areas and offerings in visible content.

It outputs copy‑ready JSON‑LD per location page so your markup stays consistent. Include ratings only when policy‑compliant.

How it works

  1. 01

    Choose MovingCompany in the generator below.

  2. 02

    Enter business name and full address (street, city, region, postal code, country).

  3. 03

    Add telephone and opening hours; summarize service areas and offerings (packing, storage, long‑distance) in content.

  4. 04

    Optionally include AggregateRating if you have compliant, genuine reviews.

  5. 05

    Copy JSON or Script, paste on each location page, and validate in the Rich Results Test.

Ready to build the markup?

Use once per location. Validate. Ship.

Generate Moving Company JSON‑LD

What is MovingCompany structured data?

MovingCompany is the Schema.org subtype that captures relocation businesses — local movers, long-distance carriers, packing specialists, storage partners — so search engines can understand who you serve, where you operate, and which services you provide. It extends LocalBusiness with properties that matter to movers: coverage areas, fleet capabilities, packing/storage offerings, and emergency availability. When your location page publishes this schema alongside detailed copy, crawlers recognize the page as a comprehensive service guide rather than a thin directory listing.

Why movers need strong markup

  • Trust signals: Customers invite movers into their homes. Publishing precise NAP data, licensing info, and real services builds credibility.
  • Coverage clarity: Schema helps search engines distinguish between local-only movers and those offering interstate/overseas moves.
  • Operational alignment: Multi-branch movers can keep service areas, fleet types, and contact numbers synchronized across hundreds of pages.
  • Lead routing: Accurate structured data reduces calls from out-of-coverage customers, improving conversion rates and saving dispatch time.

Essential properties to capture

  • name: Use the exact branch name customers see on trucks and invoices.
  • address: Full PostalAddress with suite numbers. Include warehouse addresses if different from customer-facing offices.
  • telephone: International format. Consider adding contactPoint entries for residential vs commercial moves.
  • openingHoursSpecification: Distinguish between office hours and 24/7 dispatch availability. Use ISO HH:MM strings.
  • areaServed: Mention neighborhoods, cities, states, or corridors you cover. Align with on-page content.
  • hasOfferCatalog / makesOffer: Enumerate offerings (local moving, long-distance, packing, storage, junk removal, white-glove).
  • priceRange or makesOffer: Describe typical pricing structure (“$$$”, flat-rate, per-hour). Provide detail in copy as well.
  • image: Photos of trucks, crews, or warehouses to prove legitimacy.
  • sameAs: Link to BBB, DOT/FMCSA listings, Yelp, Google Business Profile.
  • aggregateRating / review: Only include first-party reviews you publish on the page and comply with Google’s policies.
  • founder, memberOf, or parentOrganization if you operate under a franchise or larger brand.

JSON-LD patterns

Minimal location page

{
  "@context": "https://schema.org",
  "@type": "MovingCompany",
  "name": "Quick Move",
  "url": "https://www.quickmove.example/locations/san-jose",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "500 Pine Ave Suite 2",
    "addressLocality": "San Jose",
    "addressRegion": "CA",
    "postalCode": "95110",
    "addressCountry": "US"
  },
  "telephone": "+1-408-555-0100",
  "openingHours": ["Mo-Fr 08:00-18:00", "Sa 09:00-14:00"],
  "priceRange": "$$"
}

With service areas, contacts, and ratings

{
  "@context": "https://schema.org",
  "@type": "MovingCompany",
  "name": "Quick Move",
  "url": "https://www.quickmove.example/locations/san-jose",
  "image": [
    "https://www.quickmove.example/images/fleet.jpg",
    "https://www.quickmove.example/images/team.jpg"
  ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "500 Pine Ave Suite 2",
    "addressLocality": "San Jose",
    "addressRegion": "CA",
    "postalCode": "95110",
    "addressCountry": "US"
  },
  "telephone": "+1-408-555-0100",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "08:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "09:00",
      "closes": "14:00"
    }
  ],
  "priceRange": "$$",
  "areaServed": [
    "San Jose",
    "Campbell",
    "Sunnyvale"
  ],
  "makesOffer": [
    {
      "@type": "Offer",
      "itemOffered": {
        "@type": "Service",
        "name": "Local moving"
      }
    },
    {
      "@type": "Offer",
      "itemOffered": {
        "@type": "Service",
        "name": "Packing"
      }
    },
    {
      "@type": "Offer",
      "itemOffered": {
        "@type": "Service",
        "name": "Storage"
      }
    }
  ],
  "contactPoint": [
    {
      "@type": "ContactPoint",
      "contactType": "sales",
      "telephone": "+1-408-555-0100"
    },
    {
      "@type": "ContactPoint",
      "contactType": "dispatch",
      "telephone": "+1-408-555-0199"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "ratingCount": "187"
  },
  "sameAs": [
    "https://www.yelp.com/biz/quick-move-san-jose",
    "https://www.linkedin.com/company/quick-move"
  ]
}

Preparing mover content before generating schema

  1. Audit NAP data: Pull addresses, phone numbers, and hours from your CRM or dispatch system. Resolve inconsistencies with Business Profiles and DOT registrations.
  2. Map service areas: Document ZIPs, counties, and long-distance corridors (state-to-state routes). Include international capabilities if applicable.
  3. List offerings: Outline packing, unpacking, storage, specialty item handling (pianos, art), labor-only, or corporate relocation services.
  4. Collect licensing and insurance info: USDOT numbers, MC numbers, bonding, insurance certificates. Reference them in the page copy and schema if appropriate.
  5. Gather media: Photos of branded trucks, staff, and warehouse spaces. Ensure usage rights and avoid showing customer data.
  6. Compile reviews and testimonials: Obtain first-party quotes for the page. Decide whether to include aggregate ratings based on compliance.
  7. Note differentiators: Same-day moves, storage partnerships, climate-controlled facilities, eco-friendly supplies — highlight these throughout.

Implementation workflow inside SwiftSchema

  1. Select MovingCompany in the generator.
  2. Input the branch name, canonical url, and PostalAddress. Include suite numbers or yard addresses as needed.
  3. Add telephone, contactPoint entries (dispatch, sales), and openingHoursSpecification.
  4. Define areaServed and makesOffer to describe coverage and offerings. Use multiple entries to show local vs long-distance services.
  5. Provide image URLs, priceRange, and sameAs links.
  6. Include aggregateRating only for verifiable, first-party review data displayed on the page.
  7. Export the JSON-LD and embed it on each location page. Pair it with BreadcrumbList and LocalBusiness schema (if applicable).
  8. Validate via the Rich Results Test.

Troubleshooting and QA

  • Inconsistent service areas: If the schema lists cities not mentioned on the page (or vice versa), update both. Inconsistency confuses customers and search engines.
  • Outdated contact numbers: Marketing campaigns often change phone numbers. Keep schema and page text synchronized when call tracking rotates.
  • Missing licensing info: Include DOT/MC numbers in the page copy to build trust. Even if not a schema field, referencing them helps you avoid “thin content” complaints.
  • Duplicate content: Multi-branch movers sometimes reuse identical copy. Add unique elements (team intros, warehouse details, local reviews) per location.
  • Review policy violations: Do not mark up ratings sourced from third-party sites that forbid schema usage.
  • Broken image links: Monitor your CDN and update schema if truck photos move. Replace stock imagery with real assets to avoid looking generic.

Automate QA by comparing schema properties to your central operations spreadsheet. Alerts should fire when hours, phone numbers, or service areas drift apart.

Maintenance and scaling

Moving companies evolve seasonally: summer peak hours, winter storage promotions, new trucks or depots. Build a maintenance loop:

  • Update schema whenever you add service areas, launch seasonal offers, or change contact info.
  • Keep lastReviewed accurate so teams know when the page was audited.
  • Maintain a master spreadsheet with branch NAP data, service offerings, and schema status. Use it to generate SwiftSchema inputs in bulk.
  • Schedule quarterly audits to verify compliance with DOT regulations and Business Profile accuracy.
  • When opening/sunsetting branches, update or remove schema immediately to avoid misdirected leads.

Common Errors & Fixes

  • Incomplete address: provide locality, region, postal code, and country.
  • Generic service descriptions: specify makesOffer and areaServed to differentiate your offerings.
  • Outdated hours/phones: sync schema with dispatch data each time operations change.
  • Claiming long-distance without on-page proof: describe qualifications (fleet size, permits) if you mark up long-distance moves.
  • Missing sameAs links: connect schema to GBP, BBB, and DOT listings for trust.

On-page parity checklist

  • NAP consistency: name, address, phone match schema, page content, footer, and Business Profile/GBP.
  • Hours shown on-page match openingHours/openingHoursSpecification.
  • Service areas in copy match areaServed; long-distance claims are supported with visible routes/permits.
  • Services listed (packing, storage, specialty items) match makesOffer.
  • Ratings on-page match aggregateRating (only if compliant and first-party).
  • Images in schema are present on-page and publicly accessible.
  • One location per page; canonical is self-referential.

Common mistakes to avoid

  • One page for multiple depots: Create one page per depot/office to avoid NAP and routing confusion.
  • Stale call-tracking numbers: Update schema when tracking numbers rotate; keep a stable main line where possible.
  • Overstated coverage: Don’t claim interstate/international coverage in schema without on-page proof and operational readiness.
  • Stock photos only: Use real fleet/crew images to avoid looking generic.
  • Including third-party ratings: Only include first-party reviews you’re allowed to mark up.

Validation routine

  • Run Rich Results Test after changes; confirm MovingCompany/LocalBusiness is detected with no required-field errors.
  • Spot-check search result previews for name/address/phone alignment.
  • Monitor Search Console for local business enhancement issues.
  • Retest after site moves, CDN changes, or template updates that might affect image or script delivery.

Required properties

  • name
  • address.streetAddress
  • address.addressLocality
  • address.addressRegion
  • address.postalCode
  • address.addressCountry

Recommended properties

  • telephone
  • openingHours
  • openingHoursSpecification
  • aggregateRating.ratingValue
  • aggregateRating.ratingCount
  • areaServed
  • makesOffer[].itemOffered.name
  • priceRange
  • image
  • contactPoint.telephone
  • contactPoint.contactType
  • sameAs[]
Minimal JSON-LD
Validate
{
  "@context": "https://schema.org",
  "@type": "MovingCompany",
  "name": "Quick Move",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "500 Pine Ave",
    "addressLocality": "San Jose",
    "addressRegion": "CA",
    "postalCode": "95110",
    "addressCountry": "US"
  }
}
Moving company with hours, services, and contacts
Validate
{
  "@context": "https://schema.org",
  "@type": "MovingCompany",
  "name": "Quick Move",
  "url": "https://www.quickmove.example/locations/san-jose",
  "image": [
    "https://www.quickmove.example/images/fleet.jpg",
    "https://www.quickmove.example/images/team.jpg"
  ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "500 Pine Ave Suite 2",
    "addressLocality": "San Jose",
    "addressRegion": "CA",
    "postalCode": "95110",
    "addressCountry": "US"
  },
  "telephone": "+1-408-555-0100",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "08:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "09:00",
      "closes": "14:00"
    }
  ],
  "priceRange": "$$",
  "areaServed": [
    "San Jose",
    "Campbell",
    "Sunnyvale"
  ],
  "makesOffer": [
    {
      "@type": "Offer",
      "itemOffered": {
        "@type": "Service",
        "name": "Local moving"
      }
    },
    {
      "@type": "Offer",
      "itemOffered": {
        "@type": "Service",
        "name": "Packing"
      }
    },
    {
      "@type": "Offer",
      "itemOffered": {
        "@type": "Service",
        "name": "Storage"
      }
    }
  ],
  "contactPoint": [
    {
      "@type": "ContactPoint",
      "contactType": "sales",
      "telephone": "+1-408-555-0100"
    },
    {
      "@type": "ContactPoint",
      "contactType": "dispatch",
      "telephone": "+1-408-555-0199"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "ratingCount": "187"
  },
  "sameAs": [
    "https://www.yelp.com/biz/quick-move-san-jose",
    "https://www.linkedin.com/company/quick-move"
  ]
}

Related types

Browse all schema types

References