seo-local-business

Generate a complete SEO package for local business websites. Produces meta tags, structured data, robots.txt, and sitemap.xml.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "seo-local-business" with this command: npx skills add jezweb/claude-skills/jezweb-claude-skills-seo-local-business

SEO Local Business

Generate a complete SEO package for local business websites. Produces meta tags, structured data, robots.txt, and sitemap.xml.

What You Produce

  • Complete <head> section with meta tags, Open Graph, Twitter Cards

  • JSON-LD structured data (LocalBusiness + Service + FAQ schemas)

  • robots.txt

  • sitemap.xml

Workflow

Step 1: Gather Business Info

Ask for (or extract from existing site):

Required Optional

Business name ABN

Primary service Opening hours

Location (city/suburb) Social media URLs

Phone number Price range

Website URL Service areas (suburbs)

Business description GPS coordinates

Step 2: Generate Head Tags

Fill placeholders in this template:

<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Primary Meta Tags --> <title>{{PAGE_TITLE}} | {{BUSINESS_NAME}}</title> <meta name="title" content="{{PAGE_TITLE}} | {{BUSINESS_NAME}}"> <meta name="description" content="{{META_DESCRIPTION}}">

<!-- Canonical URL --> <link rel="canonical" href="{{CANONICAL_URL}}">

<!-- Open Graph / Facebook --> <meta property="og:type" content="website"> <meta property="og:url" content="{{CANONICAL_URL}}"> <meta property="og:title" content="{{PAGE_TITLE}} | {{BUSINESS_NAME}}"> <meta property="og:description" content="{{META_DESCRIPTION}}"> <meta property="og:image" content="{{OG_IMAGE_URL}}">

<!-- Twitter --> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:url" content="{{CANONICAL_URL}}"> <meta property="twitter:title" content="{{PAGE_TITLE}} | {{BUSINESS_NAME}}"> <meta property="twitter:description" content="{{META_DESCRIPTION}}"> <meta property="twitter:image" content="{{OG_IMAGE_URL}}">

<!-- Geo Tags (Local SEO) --> <meta name="geo.region" content="{{GEO_REGION}}"> <meta name="geo.placename" content="{{CITY}}"> <meta name="geo.position" content="{{LATITUDE}};{{LONGITUDE}}"> <meta name="ICBM" content="{{LATITUDE}}, {{LONGITUDE}}">

<!-- Favicons --> <link rel="icon" type="image/svg+xml" href="favicon.svg"> <link rel="icon" type="image/png" sizes="32x32" href="favicon-32.png"> <link rel="apple-touch-icon" href="apple-touch-icon.png">

<!-- Structured Data --> <script type="application/ld+json"> {{JSON_LD_SCHEMA}} </script> </head>

Title tag patterns (50-60 chars max):

Page Pattern Example

Homepage Brand - Tagline

Newcastle Plumbing - 24/7 Emergency Service

Service Service in Location | Brand

Hot Water Repairs Newcastle | ABC Plumbing

About About Us | Brand

About Us | ABC Plumbing Newcastle

Contact Contact | Brand

Contact Us | ABC Plumbing Newcastle

Meta description patterns (150-160 chars):

Page Pattern

Homepage [USP]. [Service] in [Location]. [CTA]. Call [phone].

Service Professional [service] in [location]. [Benefit]. [Trust signal]. Get a free quote today.

About [X] years serving [location]. [Team info]. [Credentials]. Learn about [brand].

Contact Contact [brand] for [service] in [location]. [Hours]. Call [phone] or request a quote online.

Step 3: Generate Structured Data

LocalBusiness (homepage — always include):

Use LocalBusiness or a more specific subtype:

Subtype Use for

Plumber

Plumbing services

Electrician

Electrical services

RoofingContractor

Roofing

HVACBusiness

Air conditioning/heating

AutoRepair

Mechanics

BeautySalon

Hair/beauty

Dentist

Dental practices

LegalService

Law firms

AccountingService

Accountants

RealEstateAgent

Real estate

Restaurant

Restaurants/cafes

BarOrPub

Pubs/bars

Hotel

Accommodation

Store

Retail shops

ProfessionalService

Generic professional

LocalBusiness schema properties:

Property Required Notes

@type

Yes LocalBusiness or subtype from above

name

Yes Business name as shown to customers

image

Yes Primary business image or logo

description

Yes 1-2 sentence business description

@id

Yes Unique ID, use {url}/#organization

url

Yes Website homepage URL

telephone

Yes International format: +61-2-4900-1234

address

Yes PostalAddress (see below)

email

Recommended Primary contact email

priceRange

Recommended $ to $$$$

geo

Recommended GeoCoordinates: latitude/longitude

openingHoursSpecification

Recommended See hours format below

areaServed

Recommended Cities/suburbs served

sameAs

Recommended Social media profile URLs

taxID

Optional ABN for Australian businesses

logo

Optional Business logo URL

foundingDate

Optional ISO 8601 date

paymentAccepted

Optional e.g. "Cash, Credit Card, EFTPOS"

currenciesAccepted

Optional AUD

PostalAddress:

Property Example

streetAddress

123 Hunter Street

addressLocality

Newcastle

addressRegion

NSW

postalCode

2300

addressCountry

AU

Example:

{ "@context": "https://schema.org", "@type": "LocalBusiness", "name": "ABC Plumbing Newcastle", "image": "https://www.abcplumbing.com.au/og-image.jpg", "description": "Professional plumbing services in Newcastle and Lake Macquarie.", "@id": "https://www.abcplumbing.com.au/#organization", "url": "https://www.abcplumbing.com.au", "telephone": "+61-2-4900-1234", "email": "info@abcplumbing.com.au", "priceRange": "$$", "address": { "@type": "PostalAddress", "streetAddress": "123 Hunter Street", "addressLocality": "Newcastle", "addressRegion": "NSW", "postalCode": "2300", "addressCountry": "AU" }, "geo": { "@type": "GeoCoordinates", "latitude": -32.9283, "longitude": 151.7817 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "07:00", "closes": "17:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Saturday"], "opens": "08:00", "closes": "12:00" } ], "areaServed": [ { "@type": "City", "name": "Newcastle" }, { "@type": "City", "name": "Lake Macquarie" } ], "sameAs": [ "https://www.facebook.com/abcplumbing", "https://www.instagram.com/abcplumbing" ] }

Service (service pages — add per service):

Property Required Notes

name

Yes Service name

description

Yes What the service provides

provider

Yes { "@id": "{url}/#organization" }

areaServed

Recommended City or region

serviceType

Recommended Category of service

offers

Optional Pricing/availability

{ "@context": "https://schema.org", "@type": "Service", "name": "Hot Water System Installation", "description": "Professional hot water system installation and replacement in Newcastle.", "provider": { "@id": "https://www.abcplumbing.com.au/#organization" }, "areaServed": { "@type": "City", "name": "Newcastle" }, "serviceType": "Plumbing", "offers": { "@type": "Offer", "availability": "https://schema.org/InStock", "priceRange": "$$" } }

FAQ (pages with FAQ sections):

{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "How much does a plumber cost in Newcastle?", "acceptedAnswer": { "@type": "Answer", "text": "Plumber callout fees in Newcastle typically range from $80-150." } } ] }

Step 4: Generate robots.txt and sitemap.xml

robots.txt:

User-agent: * Allow: /

Sitemap: {{SITE_URL}}/sitemap.xml

sitemap.xml:

<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>{{SITE_URL}}/</loc> <lastmod>{{DATE}}</lastmod> <changefreq>weekly</changefreq> <priority>1.0</priority> </url> <!-- Add one <url> per page. Priority: 1.0 homepage, 0.8 services, 0.6 others --> </urlset>

Step 5: Validate

Test structured data at: https://validator.schema.org/

Common validation errors:

  • Missing @context — every JSON-LD block needs it

  • Wrong phone format — must be international (+61-... )

  • Missing @id — needed for cross-referencing between schemas

  • Empty areaServed — include at least one city

Australian-Specific Patterns

Phone Numbers

<!-- Link: international format. Display: local format. --> <a href="tel:+61249001234">(02) 4900 1234</a>

Schema telephone: "+61-2-4900-1234"

Prefix International

02 +612

04 +614

1300 Keep as-is

ABN

Add to LocalBusiness schema when available:

{ "taxID": "12 345 678 901" }

Australian State Codes

State Code Geo Region

New South Wales NSW AU-NSW

Victoria VIC AU-VIC

Queensland QLD AU-QLD

South Australia SA AU-SA

Western Australia WA AU-WA

Tasmania TAS AU-TAS

Northern Territory NT AU-NT

ACT ACT AU-ACT

Service Areas

Use areaServed with Australian city and suburb names (see LocalBusiness example above).

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

elevenlabs-agents

No summary provided by upstream source.

Repository SourceNeeds Review
1.1K-jezweb
Automation

git-workflow

No summary provided by upstream source.

Repository SourceNeeds Review
588-jezweb
Automation

agent-browser

No summary provided by upstream source.

Repository SourceNeeds Review
472-jezweb
Automation

claude-agent-sdk

No summary provided by upstream source.

Repository SourceNeeds Review
423-jezweb