Skip to content
Development
Skill

/seo-local-business

Generate complete SEO setup for local business websites — HTML head tags, JSON-LD LocalBusiness schema, robots.txt, sitemap.xml. Australian-optimised with +61 phone, ABN, suburb patterns. Use whenever the user wants SEO for a local business (tradesman, café, clinic, agency,

From plugin
jezweb-skills
1k63 skills57 commands
Install
$ npx -y skills add jezweb/claude-skills --skill seo-local-business --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/seo-local-business

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate complete SEO setup for local business websites — HTML head tags, JSON-LD LocalBusiness schema, robots.txt, sitemap.xml. Australian-optimised with +61 phone, ABN, suburb patterns. Use whenever the user wants SEO for a local business (tradesman, café, clinic, agency,

SKILL.md

seo-local-business.SKILL.md
name: seo-local-business
description: "Generate complete SEO setup for local business websites — HTML head tags, JSON-LD LocalBusiness schema, robots.txt, sitemap.xml. Australian-optimised with +61 phone, ABN, suburb patterns. Use whenever the user wants SEO for a local business (tradesman, café, clinic, agency, retailer), needs JSON-LD structured data, asks for LocalBusiness schema, or wants meta tags / robots.txt / sitemap for a suburb-serving 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

1. Complete `<head>` section with meta tags, Open Graph, Twitter Cards 2. JSON-LD structured data (LocalBusiness + Service + FAQ schemas) 3. `robots.txt` 4. `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
Read more
Ships withjezweb-skills

Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.

Get the whole plugin

Other skills on jezweb-skills.