skillZs
LIVE SKILL TAGS
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
REAL INSTALL DATA
← back to all skills
jezweb/claude-skills1.4k installs

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, retailer), needs JSON-LD structured data, asks for LocalBusiness schema, or wants meta tags / robots.txt / sitemap for a suburb-serving business.

How do I install this agent skill?

npx skills add https://github.com/jezweb/claude-skills --skill seo-local-business
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill is a collection of static templates and instructions for generating SEO assets for local businesses. It contains no executable code, network operations, or sensitive file access.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

  • Runlayerwarn

    6/6 files flagged

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

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

RequiredOptional
Business nameABN
Primary serviceOpening hours
Location (city/suburb)Social media URLs
Phone numberPrice range
Website URLService areas (suburbs)
Business descriptionGPS 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):

PagePatternExample
HomepageBrand - TaglineNewcastle Plumbing - 24/7 Emergency Service
ServiceService in Location | BrandHot Water Repairs Newcastle | ABC Plumbing
AboutAbout Us | BrandAbout Us | ABC Plumbing Newcastle
ContactContact | BrandContact Us | ABC Plumbing Newcastle

Meta description patterns (150-160 chars):

PagePattern
Homepage[USP]. [Service] in [Location]. [CTA]. Call [phone].
ServiceProfessional [service] in [location]. [Benefit]. [Trust signal]. Get a free quote today.
About[X] years serving [location]. [Team info]. [Credentials]. Learn about [brand].
ContactContact [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:

SubtypeUse for
PlumberPlumbing services
ElectricianElectrical services
RoofingContractorRoofing
HVACBusinessAir conditioning/heating
AutoRepairMechanics
BeautySalonHair/beauty
DentistDental practices
LegalServiceLaw firms
AccountingServiceAccountants
RealEstateAgentReal estate
RestaurantRestaurants/cafes
BarOrPubPubs/bars
HotelAccommodation
StoreRetail shops
ProfessionalServiceGeneric professional

LocalBusiness schema properties:

PropertyRequiredNotes
@typeYesLocalBusiness or subtype from above
nameYesBusiness name as shown to customers
imageYesPrimary business image or logo
descriptionYes1-2 sentence business description
@idYesUnique ID, use {url}/#organization
urlYesWebsite homepage URL
telephoneYesInternational format: +61-2-4900-1234
addressYesPostalAddress (see below)
emailRecommendedPrimary contact email
priceRangeRecommended$ to $$$$
geoRecommendedGeoCoordinates: latitude/longitude
openingHoursSpecificationRecommendedSee hours format below
areaServedRecommendedCities/suburbs served
sameAsRecommendedSocial media profile URLs
taxIDOptionalABN for Australian businesses
logoOptionalBusiness logo URL
foundingDateOptionalISO 8601 date
paymentAcceptedOptionale.g. "Cash, Credit Card, EFTPOS"
currenciesAcceptedOptionalAUD

PostalAddress:

PropertyExample
streetAddress123 Hunter Street
addressLocalityNewcastle
addressRegionNSW
postalCode2300
addressCountryAU

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

PropertyRequiredNotes
nameYesService name
descriptionYesWhat the service provides
providerYes{ "@id": "{url}/#organization" }
areaServedRecommendedCity or region
serviceTypeRecommendedCategory of service
offersOptionalPricing/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"

PrefixInternational
02+612
04+614
1300Keep as-is

ABN

Add to LocalBusiness schema when available:

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

Australian State Codes

StateCodeGeo Region
New South WalesNSWAU-NSW
VictoriaVICAU-VIC
QueenslandQLDAU-QLD
South AustraliaSAAU-SA
Western AustraliaWAAU-WA
TasmaniaTASAU-TAS
Northern TerritoryNTAU-NT
ACTACTAU-ACT

Service Areas

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

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/jezweb/claude-skills/seo-local-business">View seo-local-business on skillZs</a>