SEO Widget Library

Portable, mobile-optimized widgets for local SEO & lead conversion.
Edit src/seo-widgets/config.ts to customize.

SEO & Local Widgets

These widgets boost local search rankings with NAP consistency, service area signals, and structured data.

<NAPContactCard />

Leaflet map with red geofence boundary + pin marker, plus redesigned Call/Email CTA below.

<ServiceAreaSection />

Leaflet map with geofence boundary + pin + service area cities + address/phone/hours.

Loading map...

We're here to help

Address

123 Main Street, Minneapolis, MN 55401

Hours

Monday7:00 AM – 6:00 PM
Tuesday7:00 AM – 6:00 PM
Wednesday7:00 AM – 6:00 PM
Thursday7:00 AM – 6:00 PM
Friday7:00 AM – 6:00 PM
Saturday8:00 AM – 4:00 PM
SundayClosed

Areas Served

01.Minneapolis, MN
02.St. Paul, MN
03.Bloomington, MN
04.Plymouth, MN
05.Maple Grove, MN
06.Brooklyn Park, MN
07.Eagan, MN
08.Burnsville, MN
09.Eden Prairie, MN
10.Woodbury, MN
<BreadcrumbNav />

SEO breadcrumbs with JSON-LD structured data. Helps Google understand site hierarchy.

<ProjectPageMap />

Geo-tagged project page with map pin, related services, and structured data. Each project becomes a ranking page.

Stamped Patio in Plymouth Minnesota

Our team completed a beautiful stamped concrete patio for a homeowner in Plymouth, MN. The project included a custom stone pattern with integral color and a sealed finish for long-lasting durability.

Loading map...

Related Services

Stamped ConcretePatioDecorative Concrete
<ProjectsGalleryMap />

Interactive map with clickable pins + scrollable card grid with images. Each card links to a dedicated project page. Data from src/data/projects.json.

<LocalBusinessSchema />

Invisible JSON-LD structured data injected into the page. Tells Google your business name, address, phone, hours, and service areas. Already added to this page.

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Hoosier Concrete Construction",
  "telephone": "(763) 299-1449",
  "address": "123 Main Street, Minneapolis, MN 55401",
  "areaServed": "Minneapolis, MN, St. Paul, MN, Bloomington, MN..."
}

This component renders no visible UI — just schema markup in the page head.

Conversion & Engagement Widgets

Interactive widgets that convert visitors into leads. All mobile-optimized.

<MobileStickyBar />

Fixed bottom bar with Call, Book, Text, Email buttons. Persistent CTA on every page.

The sticky bar is active at the bottom of this page. Preview both variants:

Call
Book
Text
Email
Call
Book
Text
Email
<CallQRModal />

'Talk to us instantly' modal with scannable QR code that dials your phone number.

<TextFormModal />

'Send us a text message' lead capture form with name, phone, address, and message fields.

<BookingWizardModal />

Multi-step booking form: Residential/Commercial → Service → Contact → Details. Progressive disclosure for higher conversions.

<ChatWidget />

AI chat widget with optional phone verification. Captures leads through conversational UI.