$npx -y skills add jezweb/claude-skills --skill seo-local-businessGenerate 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, retai
| 1 | # SEO Local Business |
| 2 | |
| 3 | Generate a complete SEO package for local business websites. Produces meta tags, structured data, robots.txt, and sitemap.xml. |
| 4 | |
| 5 | ## What You Produce |
| 6 | |
| 7 | 1. Complete `<head>` section with meta tags, Open Graph, Twitter Cards |
| 8 | 2. JSON-LD structured data (LocalBusiness + Service + FAQ schemas) |
| 9 | 3. `robots.txt` |
| 10 | 4. `sitemap.xml` |
| 11 | |
| 12 | ## Workflow |
| 13 | |
| 14 | ### Step 1: Gather Business Info |
| 15 | |
| 16 | Ask for (or extract from existing site): |
| 17 | |
| 18 | | Required | Optional | |
| 19 | |----------|----------| |
| 20 | | Business name | ABN | |
| 21 | | Primary service | Opening hours | |
| 22 | | Location (city/suburb) | Social media URLs | |
| 23 | | Phone number | Price range | |
| 24 | | Website URL | Service areas (suburbs) | |
| 25 | | Business description | GPS coordinates | |
| 26 | |
| 27 | ### Step 2: Generate Head Tags |
| 28 | |
| 29 | Fill placeholders in this template: |
| 30 | |
| 31 | ```html |
| 32 | <head> |
| 33 | <meta charset="UTF-8"> |
| 34 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 35 | |
| 36 | <!-- Primary Meta Tags --> |
| 37 | <title>{{PAGE_TITLE}} | {{BUSINESS_NAME}}</title> |
| 38 | <meta name="title" content="{{PAGE_TITLE}} | {{BUSINESS_NAME}}"> |
| 39 | <meta name="description" content="{{META_DESCRIPTION}}"> |
| 40 | |
| 41 | <!-- Canonical URL --> |
| 42 | <link rel="canonical" href="{{CANONICAL_URL}}"> |
| 43 | |
| 44 | <!-- Open Graph / Facebook --> |
| 45 | <meta property="og:type" content="website"> |
| 46 | <meta property="og:url" content="{{CANONICAL_URL}}"> |
| 47 | <meta property="og:title" content="{{PAGE_TITLE}} | {{BUSINESS_NAME}}"> |
| 48 | <meta property="og:description" content="{{META_DESCRIPTION}}"> |
| 49 | <meta property="og:image" content="{{OG_IMAGE_URL}}"> |
| 50 | |
| 51 | <!-- Twitter --> |
| 52 | <meta property="twitter:card" content="summary_large_image"> |
| 53 | <meta property="twitter:url" content="{{CANONICAL_URL}}"> |
| 54 | <meta property="twitter:title" content="{{PAGE_TITLE}} | {{BUSINESS_NAME}}"> |
| 55 | <meta property="twitter:description" content="{{META_DESCRIPTION}}"> |
| 56 | <meta property="twitter:image" content="{{OG_IMAGE_URL}}"> |
| 57 | |
| 58 | <!-- Geo Tags (Local SEO) --> |
| 59 | <meta name="geo.region" content="{{GEO_REGION}}"> |
| 60 | <meta name="geo.placename" content="{{CITY}}"> |
| 61 | <meta name="geo.position" content="{{LATITUDE}};{{LONGITUDE}}"> |
| 62 | <meta name="ICBM" content="{{LATITUDE}}, {{LONGITUDE}}"> |
| 63 | |
| 64 | <!-- Favicons --> |
| 65 | <link rel="icon" type="image/svg+xml" href="favicon.svg"> |
| 66 | <link rel="icon" type="image/png" sizes="32x32" href="favicon-32.png"> |
| 67 | <link rel="apple-touch-icon" href="apple-touch-icon.png"> |
| 68 | |
| 69 | <!-- Structured Data --> |
| 70 | <script type="application/ld+json"> |
| 71 | {{JSON_LD_SCHEMA}} |
| 72 | </script> |
| 73 | </head> |
| 74 | ``` |
| 75 | |
| 76 | **Title tag patterns** (50-60 chars max): |
| 77 | |
| 78 | | Page | Pattern | Example | |
| 79 | |------|---------|---------| |
| 80 | | Homepage | `Brand - Tagline` | `Newcastle Plumbing - 24/7 Emergency Service` | |
| 81 | | Service | `Service in Location \| Brand` | `Hot Water Repairs Newcastle \| ABC Plumbing` | |
| 82 | | About | `About Us \| Brand` | `About Us \| ABC Plumbing Newcastle` | |
| 83 | | Contact | `Contact \| Brand` | `Contact Us \| ABC Plumbing Newcastle` | |
| 84 | |
| 85 | **Meta description patterns** (150-160 chars): |
| 86 | |
| 87 | | Page | Pattern | |
| 88 | |------|---------| |
| 89 | | Homepage | `[USP]. [Service] in [Location]. [CTA]. Call [phone].` | |
| 90 | | Service | `Professional [service] in [location]. [Benefit]. [Trust signal]. Get a free quote today.` | |
| 91 | | About | `[X] years serving [location]. [Team info]. [Credentials]. Learn about [brand].` | |
| 92 | | Contact | `Contact [brand] for [service] in [location]. [Hours]. Call [phone] or request a quote online.` | |
| 93 | |
| 94 | ### Step 3: Generate Structured Data |
| 95 | |
| 96 | **LocalBusiness** (homepage — always include): |
| 97 | |
| 98 | Use `LocalBusiness` or a more specific subtype: |
| 99 | |
| 100 | | Subtype | Use for | |
| 101 | |---------|---------| |
| 102 | | `Plumber` | Plumbing services | |
| 103 | | `Electrician` | Electrical services | |
| 104 | | `RoofingContractor` | Roofing | |
| 105 | | `HVACBusiness` | Air conditioning/heating | |
| 106 | | `AutoRepair` | Mechanics | |
| 107 | | `BeautySalon` | Hair/beauty | |
| 108 | | `Dentist` | Dental practices | |
| 109 | | `LegalService` | Law firms | |
| 110 | | `AccountingService` | Accountants | |
| 111 | | `RealEstateAgent` | Real estate | |
| 112 | | `Restaurant` | Restaurants/cafes | |
| 113 | | `BarOrPub` | Pubs/bars | |
| 114 | | `Hotel` | Accommodation | |
| 115 | | `Store` | Retail shops | |
| 116 | | `ProfessionalService` | Generic professional | |
| 117 | |
| 118 | LocalBusiness schema properties: |
| 119 | |
| 120 | | Property | Required | Notes | |
| 121 | |----------|----------|-------| |
| 122 | | `@type` | Yes | `LocalBusiness` or subtype from above | |
| 123 | | `name` | Yes | Business name as shown to customers | |
| 124 | | `image` | Yes | Primary business image or logo | |
| 125 | | `description` | Yes | 1-2 sentence business description | |
| 126 | | `@id` | Yes | Unique ID, use `{url}/#organization` | |
| 127 | | `url` | Yes | Website homepage URL | |
| 128 | | `telephone` | Yes | International format: `+61-2-4900-1234` | |
| 129 | | `address` | Yes | P |