Local SEO Schema & Content Modules
Unleash the full power of structured data and high-converting copy. Use our ready-made schema templates and responsive HTML/CSS content modules to build service pages that rank and convert.
Why Local Schema Matters
Schema markup is structured data vocabulary that you add to your website. It helps search engines (like Google, Bing, and Yahoo) understand the context of your content, leading to richer search listings (snippets) and better local positioning.
For local businesses, schema acts as a direct validation link between your website, physical location, and digital entities (such as your Google Business Profile).
Key Benefits of LocalBusiness Schema:
Local Schema Optimization Checklist
When creating or validating your JSON-LD structured data block, check that these five critical parameters are satisfied:
LocalBusiness root type if possible. Instead, use specific types like Plumber, Electrician, HVACBusiness, or Dentist. This clarifies your vertical to crawlers.geo block containing latitude and longitude. You can retrieve these values using our geocoding search tools or OpenCage API mapping.sameAs array. This links your authority.openingHoursSpecification array, detailing opening/closing intervals rather than a loose string.<head> tag of your target service pages to ensure instant crawlers detection.Local Niche Schema Templates
Select an industry below to review and copy optimized schema templates. These structured blocks are pre-populated with standard local SEO attributes that you can customize or import.
Need a custom schema configuration?
Use our interactive builder to fill in your values and download the schema.
Service Page Content Modules
These responsive, beautiful HTML and CSS code modules are designed specifically for local service landing pages. Copy these blocks directly into your website sections to establish immediate local authority and boost visitor contact conversion.
Tip: Use the tabs on each module to view the visual Mock Preview, HTML source code, or CSS stylesheet!
Professional Plumbing Services in Austin, TX
Reliable plumbing repair, maintenance, and emergency installations. Available 24/7. Call our local Austin team today for a transparent, upfront estimate.
<section class="local-hero">
<div class="hero-container">
<span class="hero-tagline">Your Trusted Local Professionals</span>
<h1 class="hero-title">Professional [Service Name] in [City, State]</h1>
<p class="hero-description">
Reliable [Service] repair, maintenance, and urgent installations. Available 24/7. Call our local [City] team today for a transparent, upfront estimate.
</p>
<div class="hero-badges">
<span class="badge-item"><i class="fas fa-check"></i> Licensed & Insured</span>
<span class="badge-item"><i class="fas fa-check"></i> Upfront Pricing</span>
<span class="badge-item"><i class="fas fa-check"></i> 24/7 Support</span>
</div>
<a href="tel:[Phone]" class="btn-hero-phone">
<i class="fas fa-phone-alt"></i> Call [Phone]
</a>
</div>
</section>
.local-hero {
background: linear-gradient(135deg, rgba(30, 41, 59, 0.95) 0%, rgba(15, 23, 42, 0.9) 100%),
url('/images/hero-bg.jpg') center/cover no-repeat;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 16px;
padding: 4rem 2rem;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.hero-tagline {
color: #8b5cf6;
font-weight: 700;
text-transform: uppercase;
font-size: 0.85rem;
letter-spacing: 0.08em;
}
.hero-title {
font-size: 2.5rem;
color: #ffffff;
margin: 0.5rem 0 1.2rem;
font-weight: 800;
line-height: 1.2;
}
.hero-description {
color: #94a3b8;
max-width: 650px;
margin: 0 auto 2rem;
font-size: 1.1rem;
line-height: 1.6;
}
.hero-badges {
display: flex;
justify-content: center;
gap: 1.5rem;
flex-wrap: wrap;
margin-bottom: 2rem;
}
.badge-item {
font-size: 0.9rem;
color: #cbd5e1;
display: inline-flex;
align-items: center;
gap: 6px;
}
.badge-item i {
color: #10b981;
}
.btn-hero-phone {
display: inline-flex;
align-items: center;
gap: 10px;
background: linear-gradient(135deg, #10b981 0%, #059669 100%);
color: #ffffff;
padding: 14px 28px;
border-radius: 8px;
font-weight: 700;
text-decoration: none;
box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
transition: transform 0.2s, box-shadow 0.2s;
}
.btn-hero-phone:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
}
Emergency Plumbing Repair
We diagnose and repair broken pipes, flooding, leaks, and clogged sewers instantly to prevent property damage.
Drain Cleaning & Unclogging
Stubborn clogs cleared safely using hydro-jetting and advanced cable cameras for long-lasting drain flow.
Water Heater Services
Expert repair and installation of energy-efficient tankless water heaters and traditional water systems.
<div class="service-grid">
<div class="service-card">
<i class="fas fa-tools"></i>
<h3>Emergency Repair Services</h3>
<p>We diagnose and repair broken systems, leaks, and mechanical issues instantly to protect your home from damage.</p>
</div>
<div class="service-card">
<i class="fas fa-wrench"></i>
<h3>Routine Maintenance</h3>
<p>Preventive service checkups, cleaning, and calibrations designed to keep your home systems running efficiently.</p>
</div>
<div class="service-card">
<i class="fas fa-cog"></i>
<h3>Professional Installation</h3>
<p>Expert configurations and replacements of top-tier brands with full warranty support.</p>
</div>
</div>
.service-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
padding: 1rem 0;
}
.service-card {
background: rgba(17, 24, 39, 0.4);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 12px;
padding: 2rem;
transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.service-card:hover {
transform: translateY(-4px);
border-color: rgba(139, 92, 246, 0.4);
box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15);
}
.service-card i {
font-size: 2.25rem;
color: #8b5cf6;
margin-bottom: 1.25rem;
}
.service-card h3 {
margin: 0 0 10px 0;
font-size: 1.25rem;
color: #ffffff;
font-weight: 700;
}
.service-card p {
margin: 0;
color: #94a3b8;
font-size: 0.95rem;
line-height: 1.5;
}
<!-- Include FAQPage Schema in Head to match this module -->
<div class="faq-accordion">
<div class="faq-item">
<button class="faq-question">
<span>Do you offer emergency services in [City]?</span>
<i class="fas fa-chevron-down"></i>
</button>
<div class="faq-answer">
<p>Yes, our certified crews operate 24/7/365 to handle urgent leaks, equipment failures, and utility emergencies across [City] and adjacent zip codes.</p>
</div>
</div>
<div class="faq-item">
<button class="faq-question">
<span>Are your pricing quotes guaranteed?</span>
<i class="fas fa-chevron-down"></i>
</button>
<div class="faq-answer">
<p>Absolutely. We present complete upfront flat-rate quotes before any work begins, ensuring zero surprise fees on your invoice.</p>
</div>
</div>
</div>
<!-- Simple script helper -->
<script>
document.querySelectorAll('.faq-question').forEach(button => {
button.addEventListener('click', () => {
const faqItem = button.parentElement;
const answer = faqItem.querySelector('.faq-answer');
const icon = button.querySelector('i');
// Toggle active class
faqItem.classList.toggle('active');
if (faqItem.classList.contains('active')) {
answer.style.maxHeight = answer.scrollHeight + 'px';
icon.style.transform = 'rotate(180deg)';
} else {
answer.style.maxHeight = '0';
icon.style.transform = 'rotate(0)';
}
});
});
</script>
.faq-accordion {
max-width: 800px;
margin: 0 auto;
}
.faq-item {
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
margin-bottom: 0.5rem;
}
.faq-question {
width: 100%;
background: transparent;
border: none;
padding: 1.25rem 0;
color: #ffffff;
font-size: 1.1rem;
font-weight: 700;
text-align: left;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
transition: color 0.2s;
}
.faq-question:hover {
color: #8b5cf6;
}
.faq-question i {
font-size: 0.9rem;
color: #94a3b8;
transition: transform 0.3s ease;
}
.faq-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease-out;
}
.faq-answer p {
margin: 0;
padding-bottom: 1.25rem;
color: #94a3b8;
line-height: 1.5;
font-size: 0.95rem;
}
.faq-item.active .faq-answer {
/* Height is computed dynamically in JS */
}
Local Office Details
Apex Plumbing Solutions
123 Main St, Austin, TX 78701
(512) 555-0199
Mon - Fri: 8:00 AM - 6:00 PM
Saturday: 9:00 AM - 3:00 PM
Google Map Embed Container
<section class="local-office-section">
<div class="office-grid">
<div class="office-details">
<h2>Local Office Contact</h2>
<div class="nap-info">
<p class="biz-detail"><i class="fas fa-map-marker-alt"></i> <strong>[Business Legal Name]</strong></p>
<p class="biz-address">[Street Address, City, State ZipCode]</p>
<p class="biz-detail"><i class="fas fa-phone-alt"></i> [Phone]</p>
<p class="biz-detail"><i class="fas fa-clock"></i> Mon - Fri: 08:00 AM - 06:00 PM</p>
<p class="biz-detail-sub">Saturday: 09:00 AM - 03:00 PM</p>
</div>
</div>
<div class="office-map">
<!-- Replace the src URL with your specific Google Maps Embed URL -->
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3440.7077977461877!2d-97.74567868487612!3d30.267152981801267!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8644b508a02f3231%3A0x378a8a61428b584e!2sAustin%2C%20TX!5e0!3m2!1sen!2sus!4v1680000000000!5m2!1sen!2sus"
width="100%"
height="280"
style="border:0; border-radius: 8px;"
allowfullscreen=""
loading="lazy"
referrerpolicy="no-referrer-when-downgrade">
</iframe>
</div>
</div>
</section>
.local-office-section {
background: rgba(17, 24, 39, 0.4);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 16px;
padding: 2.5rem;
}
.office-grid {
display: grid;
grid-template-columns: 1fr 1.2fr;
gap: 30px;
align-items: center;
}
@media (max-width: 768px) {
.office-grid {
grid-template-columns: 1fr;
}
}
.office-details h2 {
margin: 0 0 1.25rem 0;
font-size: 1.75rem;
color: #ffffff;
font-weight: 800;
}
.nap-info {
display: flex;
flex-direction: column;
gap: 8px;
}
.biz-detail {
margin: 0;
color: #cbd5e1;
font-size: 1rem;
display: flex;
align-items: center;
gap: 10px;
}
.biz-detail i {
color: #8b5cf6;
width: 20px;
text-align: center;
}
.biz-address {
margin: 0;
color: #94a3b8;
font-size: 0.95rem;
padding-left: 30px;
}
.biz-detail-sub {
margin: 0;
color: #94a3b8;
font-size: 0.95rem;
padding-left: 30px;
}
.office-map {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0,0,0,0.4);
}