cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…
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,
Claude Code
$ npx -y skills add jezweb/claude-skills --skill seo-local-business --agent claude-code
Codex
$ npx skills add jezweb/claude-skills --skill seo-local-business -a codex -y
Cursor
$ npx skills add jezweb/claude-skills --skill seo-local-business -a cursor -y
Gemini CLI
$ npx skills add jezweb/claude-skills --skill seo-local-business -a gemini-cli -y
GitHub Copilot
$ npx skills add jezweb/claude-skills --skill seo-local-business -a github-copilot -y
OpenCode
$ npx skills add jezweb/claude-skills --skill seo-local-business -a opencode -y
Windsurf
$ npx skills add jezweb/claude-skills --skill seo-local-business -a windsurf -y
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."
Generate a complete SEO package for local business websites. Produces meta tags, structured data, robots.txt, and sitemap.xml.
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`
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 |
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.` |
**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.abcplumbingProduction 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.
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure,…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.