Skip to content

@type: ProfessionalService · LocalBusiness

Marketing agency schema generator

Agencies sell local SEO to clients but often neglect their own. ProfessionalService schema with real office details, services and client-facing profiles shows prospects you practise what you preach.

Free · no account needed · validated against Google's LocalBusiness guidelines

Example · Hartwell & Mendez LLP
<script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "ProfessionalService",  "@id": "https://hartwellmendez.example/#localbusiness",  "name": "Hartwell & Mendez LLP",  "legalName": "Hartwell & Mendez Limited Liability Partnership",  "description": "Chicago personal injury and employment law firm. Free consultations, no fee unless we win, and attorneys who answer their own phones.",  "url": "https://hartwellmendez.example",  "logo": "https://hartwellmendez.example/logo.png",  "image": [    "https://hartwellmendez.example/img/office-16x9.jpg",    "https://hartwellmendez.example/img/partners-4x3.jpg"  ],  "foundingDate": "1998-01-12",  "telephone": "+1 312-555-0177",  "email": "intake@hartwellmendez.example",  "priceRange": "Free consultation",  "currenciesAccepted": "USD",  "paymentAccepted": "Check, Bank Transfer, Credit Card",  "knowsLanguage": [    "English",    "Spanish",    "Polish"  ],  "address": {    "@type": "PostalAddress",    "streetAddress": "200 W Madison St, Floor 21",    "addressLocality": "Chicago",    "addressRegion": "IL",    "postalCode": "60606",    "addressCountry": "US"  },  "geo": {    "@type": "GeoCoordinates",    "latitude": 41.881832,    "longitude": -87.634102  },  "areaServed": [    {      "@type": "Place",      "name": "Chicago"    },    {      "@type": "Place",      "name": "Cook County"    },    {      "@type": "Place",      "name": "DuPage County"    },    {      "@type": "Place",      "name": "Illinois"    }  ],  "openingHoursSpecification": [    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": [        "Monday",        "Tuesday",        "Wednesday",        "Thursday",        "Friday"      ],      "opens": "08:30",      "closes": "18:00"    },    {      "@type": "OpeningHoursSpecification",      "dayOfWeek": "Saturday",      "opens": "10:00",      "closes": "14:00"    }  ],  "specialOpeningHoursSpecification": [    {      "@type": "OpeningHoursSpecification",      "name": "Christmas",      "validFrom": "2026-12-24",      "validThrough": "2026-12-25",      "opens": "00:00",      "closes": "00:00"    }  ],  "hasOfferCatalog": {    "@type": "OfferCatalog",    "name": "Practice areas",    "itemListElement": [      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Car accident claims",          "description": "Representation for drivers, passengers and pedestrians."        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Workplace injury",          "description": "Workers' compensation and third-party claims."        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Wrongful termination",          "description": "Discrimination, retaliation and severance negotiation."        }      },      {        "@type": "Offer",        "itemOffered": {          "@type": "Service",          "name": "Initial consultation",          "description": "45-minute case review with a partner."        },        "price": "0.00",        "priceCurrency": "USD"      }    ]  },  "aggregateRating": {    "@type": "AggregateRating",    "ratingValue": "4.9",    "reviewCount": "187",    "bestRating": "5",    "worstRating": "1"  },  "review": [    {      "@type": "Review",      "author": {        "@type": "Person",        "name": "Patricia Nowak"      },      "reviewRating": {        "@type": "Rating",        "ratingValue": "5",        "bestRating": "5"      },      "reviewBody": "They handled everything after my accident and kept me informed every week.",      "datePublished": "2026-06-11"    }  ],  "sameAs": [    "https://maps.app.goo.gl/hartwellmendez-example",    "https://www.linkedin.com/company/hartwell-mendez-llp",    "https://www.avvo.com/attorneys/hartwell-mendez",    "https://www.facebook.com/hartwellmendezlaw"  ]}</script>
Validator score 96/100 · 0 errors

Generate your marketing agency schema

Fill in your details — the JSON-LD, validator and search preview update as you type. Free, no account.

Full builder

Step 1 of 7

Business

Business type

Pick the most specific schema.org subtype. It's the strongest relevance signal you can send.

Identity

Use the name exactly as it appears on your storefront and Google Business Profile.

Missing business name

0/750

Website & media

Missing website URL

Square, at least 112×112px, on a plain background.

No images

Free schema checker

Validate existing marketing agency markup

Already have marketing agency markup? Paste it to see its score, rich result eligibility and exactly what to fix.

Properties that matter for agencies

@type: ProfessionalServiceThe schema.org type for agencies and consultancies.
hasOfferCatalogSEO, PPC, web design retainers.
areaServedCities or regions you serve.
sameAsLinkedIn, Clutch and Google profiles.
name + addressRequired by Google for every LocalBusiness — and must match your Business Profile exactly.

Best practices

  • Use your own hosted embed as a live demo for clients.
  • List retainer pricing as monthly offers.
  • Keep remote-only agencies in service-area mode.

FAQ

What the validator checks

  • Required name and full postal address
  • Phone format and international prefix
  • Overlapping or invalid split hours
  • Coordinates with 5+ decimal precision
  • Expired holiday exceptions
  • Keyword-stuffed business names
  • Self-serving review markup
  • Most specific schema.org subtype

For agencies

Managing several agencies?

Host the schema for up to 25 client locations and update hours across every site from one dashboard.

See Pro