to `$$` |\n| `geo` | Recommended | GeoCoordinates: latitude/longitude |\n| `openingHoursSpecification` | Recommended | See hours format below |\n| `areaServed` | Recommended | Cities/suburbs served |\n| `sameAs` | Recommended | Social media profile URLs |\n| `taxID` | Optional | ABN for Australian businesses |\n| `logo` | Optional | Business logo URL |\n| `foundingDate` | Optional | ISO 8601 date |\n| `paymentAccepted` | Optional | e.g. \"Cash, Credit Card, EFTPOS\" |\n| `currenciesAccepted` | Optional | `AUD` |\n\nPostalAddress:\n\n| Property | Example |\n|----------|---------|\n| `streetAddress` | `123 Hunter Street` |\n| `addressLocality` | `Newcastle` |\n| `addressRegion` | `NSW` |\n| `postalCode` | `2300` |\n| `addressCountry` | `AU` |\n\nExample:\n\n```json\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"LocalBusiness\",\n \"name\": \"ABC Plumbing Newcastle\",\n \"image\": \"https://www.abcplumbing.com.au/og-image.jpg\",\n \"description\": \"Professional plumbing services in Newcastle and Lake Macquarie.\",\n \"@id\": \"https://www.abcplumbing.com.au/#organization\",\n \"url\": \"https://www.abcplumbing.com.au\",\n \"telephone\": \"+61-2-4900-1234\",\n \"email\": \"info@abcplumbing.com.au\",\n \"priceRange\": \"$\",\n \"address\": {\n \"@type\": \"PostalAddress\",\n \"streetAddress\": \"123 Hunter Street\",\n \"addressLocality\": \"Newcastle\",\n \"addressRegion\": \"NSW\",\n \"postalCode\": \"2300\",\n \"addressCountry\": \"AU\"\n },\n \"geo\": {\n \"@type\": \"GeoCoordinates\",\n \"latitude\": -32.9283,\n \"longitude\": 151.7817\n },\n \"openingHoursSpecification\": [\n {\n \"@type\": \"OpeningHoursSpecification\",\n \"dayOfWeek\": [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\"],\n \"opens\": \"07:00\",\n \"closes\": \"17:00\"\n },\n {\n \"@type\": \"OpeningHoursSpecification\",\n \"dayOfWeek\": [\"Saturday\"],\n \"opens\": \"08:00\",\n \"closes\": \"12:00\"\n }\n ],\n \"areaServed\": [\n { \"@type\": \"City\", \"name\": \"Newcastle\" },\n { \"@type\": \"City\", \"name\": \"Lake Macquarie\" }\n ],\n \"sameAs\": [\n \"https://www.facebook.com/abcplumbing\",\n \"https://www.instagram.com/abcplumbing\"\n ]\n}\n```\n\n**Service** (service pages — add per service):\n\n| Property | Required | Notes |\n|----------|----------|-------|\n| `name` | Yes | Service name |\n| `description` | Yes | What the service provides |\n| `provider` | Yes | `{ \"@id\": \"{url}/#organization\" }` |\n| `areaServed` | Recommended | City or region |\n| `serviceType` | Recommended | Category of service |\n| `offers` | Optional | Pricing/availability |\n\n```json\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Service\",\n \"name\": \"Hot Water System Installation\",\n \"description\": \"Professional hot water system installation and replacement in Newcastle.\",\n \"provider\": { \"@id\": \"https://www.abcplumbing.com.au/#organization\" },\n \"areaServed\": { \"@type\": \"City\", \"name\": \"Newcastle\" },\n \"serviceType\": \"Plumbing\",\n \"offers\": {\n \"@type\": \"Offer\",\n \"availability\": \"https://schema.org/InStock\",\n \"priceRange\": \"$\"\n }\n}\n```\n\n**FAQ** (pages with FAQ sections):\n\n```json\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"FAQPage\",\n \"mainEntity\": [\n {\n \"@type\": \"Question\",\n \"name\": \"How much does a plumber cost in Newcastle?\",\n \"acceptedAnswer\": {\n \"@type\": \"Answer\",\n \"text\": \"Plumber callout fees in Newcastle typically range from $80-150.\"\n }\n }\n ]\n}\n```\n\n### Step 4: Generate robots.txt and sitemap.xml\n\n**robots.txt:**\n\n```\nUser-agent: *\nAllow: /\n\nSitemap: {{SITE_URL}}/sitemap.xml\n```\n\n**sitemap.xml:**\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003curlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n \u003curl>\n \u003cloc>{{SITE_URL}}/\u003c/loc>\n \u003clastmod>{{DATE}}\u003c/lastmod>\n \u003cchangefreq>weekly\u003c/changefreq>\n \u003cpriority>1.0\u003c/priority>\n \u003c/url>\n \u003c!-- Add one \u003curl> per page. Priority: 1.0 homepage, 0.8 services, 0.6 others -->\n\u003c/urlset>\n```\n\n### Step 5: Validate\n\nTest structured data at: https://validator.schema.org/\n\nCommon validation errors:\n- Missing `@context` — every JSON-LD block needs it\n- Wrong phone format — must be international (`+61-...`)\n- Missing `@id` — needed for cross-referencing between schemas\n- Empty `areaServed` — include at least one city\n\n## Australian-Specific Patterns\n\n### Phone Numbers\n\n```html\n\u003c!-- Link: international format. Display: local format. -->\n\u003ca href=\"tel:+61249001234\">(02) 4900 1234\u003c/a>\n```\n\nSchema telephone: `\"+61-2-4900-1234\"`\n\n| Prefix | International |\n|--------|---------------|\n| 02 | +612 |\n| 04 | +614 |\n| 1300 | Keep as-is |\n\n### ABN\n\nAdd to LocalBusiness schema when available:\n\n```json\n{ \"taxID\": \"12 345 678 901\" }\n```\n\n### Australian State Codes\n\n| State | Code | Geo Region |\n|-------|------|------------|\n| New South Wales | NSW | AU-NSW |\n| Victoria | VIC | AU-VIC |\n| Queensland | QLD | AU-QLD |\n| South Australia | SA | AU-SA |\n| Western Australia | WA | AU-WA |\n| Tasmania | TAS | AU-TAS |\n| Northern Territory | NT | AU-NT |\n| ACT | ACT | AU-ACT |\n\n### Service Areas\n\nUse `areaServed` with Australian city and suburb names (see LocalBusiness example above).\n","licenseDocuments":[]}}
Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Daten und Forschung · SKILL.md

seo-local-business

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 me…

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill-Dokumentation

GitHub

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

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

Gespeicherte Skills