seo-local-business

Complete SEO setup for local Australian business websites with meta tags, structured data, and sitemaps. Generates full <head> section with meta tags, Open Graph, Twitter Cards, and geo-location tags optimized for Australian businesses Produces JSON-LD schemas for LocalBusiness, Service, and FAQ pages with Australian phone formatting (+61), ABN support, and suburb-based service areas Creates robots.txt and sitemap.xml files populated with all site pages Includes title and meta description templates for homepage, service, about, and contact pages with character limits and conversion-focused patterns

INSTALLATION
npx skills add https://github.com/jezweb/claude-skills --skill seo-local-business
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

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).

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card