Method 1: paste the code (free)
Generate the markup
Build your schema in LocalSchema and copy the JSON from the Code tab (the JSON itself, without the surrounding <script> tag).
Open the page's SEO settings
In the Wix editor, open the page menu → SEO basics → Advanced SEO → Structured data markup.
Add new markup
Choose to add new markup, paste the JSON and apply. Wix validates the JSON before saving.
Publish and test
Publish the site, then check the live URL with the LocalSchema checker or Google's Rich Results Test.
{
"@context": "https://schema.org",
"@type": "Plumber",
"@id": "https://lonestarplumbing.example/#localbusiness",
"name": "Lone Star Plumbing Co.",
"legalName": "Lone Star Plumbing Company LLC",
"description": "Licensed Austin plumbers for leaks, water heaters, drain cleaning and repiping. Upfront flat-rate pricing and 24/7 emergency service.",
"slogan": "Fixed right, the first time.",
"url": "https://lonestarplumbing.example",
"logo": "https://lonestarplumbing.example/logo.png",
"image": [
"https://lonestarplumbing.example/img/van-16x9.jpg",
"https://lonestarplumbing.example/img/team-1x1.jpg"
],
"foundingDate": "2004-06-15",
"telephone": "+1 512-555-0144",
"email": "service@lonestarplumbing.example",
"priceRange": "$$",
"currenciesAccepted": "USD",
"paymentAccepted": "Cash, Credit Card, Check, Financing",
"knowsLanguage": [
"English",
"Spanish"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "4810 Burnet Rd, Suite 200",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78756",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.320371,
"longitude": -97.739614
},
"areaServed": [
{
"@type": "Place",
"name": "Austin"
},
{
"@type": "Place",
"name": "Round Rock"
},
{
"@type": "Place",
"name": "Cedar Park"
},
{
"@type": "Place",
"name": "Pflugerville"
},
{
"@type": "Place",
"name": "Georgetown"
},
{
"@type": "GeoCircle",
"geoMidpoint": {
"@type": "GeoCoordinates",
"latitude": 30.320371,
"longitude": -97.739614
},
"geoRadius": 40000
}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "07:00",
"closes": "19:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "08:00",
"closes": "16:00"
}
],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Plumbing services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Drain cleaning",
"description": "Kitchen, bath and main line clearing with camera inspection."
},
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "149.00",
"priceCurrency": "USD"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Water heater installation",
"description": "Tank and tankless installs, haul-away included."
},
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "1400.00",
"priceCurrency": "USD",
"maxPrice": "4200.00"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Leak detection",
"description": "Non-invasive slab and wall leak location."
},
"price": "295.00",
"priceCurrency": "USD"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Emergency plumbing",
"description": "24/7 burst pipe and overflow response."
},
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "189.00",
"priceCurrency": "USD"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Whole-home repiping",
"description": "PEX repipe with drywall patching."
},
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": "6500.00",
"priceCurrency": "USD"
}
}
]
},
"sameAs": [
"https://maps.app.goo.gl/lonestarplumbing-example",
"https://www.yelp.com/biz/lone-star-plumbing-co-austin",
"https://www.facebook.com/lonestarplumbingatx",
"https://www.bbb.org/us/tx/austin/profile/plumber/lone-star-plumbing-co",
"https://nextdoor.com/pages/lone-star-plumbing-co-austin-tx"
]
}Sample for a plumber — generate your own in the builder or on your business type's page.
Method 2: hosted embed (Pro)
Paste one script once. Hours, holiday closures and services you change in LocalSchema reach the site automatically — no more editing Wix for every update.
Copy the embed script
In LocalSchema, open the location's Embed tab and copy the script tag.
Add custom code
In the Wix dashboard go to Settings → Custom Code (under Advanced) → Add Custom Code. Paste the script, place it in Head, and load it on all pages or just the location page.
Publish
Custom code needs a published site on a connected domain. After that, edits in LocalSchema reach the page automatically.
<script src="https://local-schema-beacon.lovable.app/s/loc_yourkey.js" async></script>Your real key is on the location's Embed tab after you publish it.
Common Wix pitfalls
- Wix's own business info can generate basic LocalBusiness markup for some sites. If the checker shows two business entities, remove one.
- Custom Code isn't available on every plan; the per-page structured data field is the free alternative.