Seo Local Business

by jezweb64965d9d9fc7No license1K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 3 days ago

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.

Instructions onlyMarketing & Sales
AI-generated overview

Generates SEO packages for local business sites: head meta tags, JSON-LD LocalBusiness schema, robots.txt and sitemap.xml.

What it does
This skill produces a complete local-business SEO package: an HTML head section with meta tags, Open Graph and Twitter Cards, geo tags and favicons; JSON-LD structured data for LocalBusiness, Service and FAQ; plus robots.txt and sitemap.xml. It supplies title and meta description patterns per page type, a LocalBusiness subtype table, property tables and Australian-specific conventions such as +61 phone formats, ABN taxID and state codes. It also lists validation steps and common structured-data errors.
When to use it
Use it when a local business site needs SEO markup, such as a tradesman, cafe, clinic, agency or retailer serving a suburb or city. It fits requests for LocalBusiness schema, JSON-LD structured data, meta tags, robots.txt or sitemap.xml.
Requirements
No scripts; instructions and template assets only. The agent needs the business details (name, service, location, phone, website URL, description) and may consult the bundled head, robots and sitemap templates. Validation is suggested via an external schema validator site.

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:

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

json
{  "@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": "[email protected]",  "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
json
{  "@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):

json
{  "@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
<?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

html
<!-- 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:

json
{ "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).

Source and attribution

Source:jezweb/claude-skillsinplugins/web-design/skills/seo-local-businessat commit64965d9

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal