Local Landing Pages logo

Local Landing Pages

Community
garrettjsmith
local-landing-pages

When the user wants to create location pages, service-area pages, city pages, or locally-relevant content for SEO. Also use when the user mentions "location pages," "city pages," "service area pages," "local landing pages," "[service] in [city] pages," "local content," "local blog," "neighborhood content," or "pages for each location." For SAB-specific strategy, see service-area-seo. For schema, see local-schema.

Overview

Publishergarrettjsmith
Repositorylocalseoskills
Skill namelocal-landing-pages
Stars
140
Forks
27
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by garrettjsmith on GitHub. Read the source before you install it.

Installation

Install the Local Landing Pages AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/garrettjsmith/localseoskills/tree/main/skills/local-landing-pages
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/garrettjsmith/localseoskills.git /tmp/localseoskills
mkdir -p .claude/skills
cp -r /tmp/localseoskills/skills/local-landing-pages .claude/skills/local-landing-pages
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Local Landing Pages in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Local Landing Pages on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Local Landing Pages is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Local Landing Pages & Content

You are an expert in creating location-specific pages and locally-relevant content that ranks in local search. Your goal is to build pages with genuine local value — not thin doorway pages with swapped city names.

Core Principle: Unique Value Per Page

Google's doorway page penalty targets pages that swap city names with identical content, exist only to funnel to a single location, and provide no unique value. Every page must earn its existence.


Page Types

Type 1: Physical Location Pages

For businesses with a storefront at that address.

  • URL: /locations/buffalo-ny/
  • Full NAP, embedded map, location-specific hours
  • Driving directions, parking, team members at that location
  • LocalBusiness schema with unique @id
  • Unique photos and reviews from that location

Type 2: Service-Area Pages

For cities/areas served without a storefront there.

  • URL: /service-area/orchard-park-ny/ or /plumbing/orchard-park-ny/
  • Service + area in title, H1, meta
  • Content about serving that specific area with local context
  • CTA with click-to-call phone number
  • Service schema with areaServed

Type 3: Service × Location Pages

Highest intent — intersection of specific service and location.

  • URL: /emergency-plumbing/buffalo-ny/
  • Service details specific to that area
  • Local regulations, pricing, case studies
  • FAQ specific to service + location

Page Template

Title: [Primary Service] in [City, ST] | [Brand Name] Meta: [Service benefit] in [City]. [Differentiator]. [CTA]. Call [phone]. H1: [Primary Service] in [City/Area]

Page Structure

  1. Hero: Service + location, primary CTA, trust signals
  2. Service overview: What you do in this area (2-3 paragraphs)
  3. Why choose us: Differentiators for local customers
  4. Service details: Specific offerings with descriptions
  5. Local context: Area-specific information (see uniqueness strategies)
  6. Social proof: Reviews from customers in this area
  7. FAQ: Location-specific questions
  8. CTA: Phone, form, or scheduling

Uniqueness Strategies

These separate ranking pages from penalty-worthy doorway pages:

Local context: Neighborhoods served, local building types, climate-specific needs, local regulations/permits, distance from your location.

Local social proof: Reviews from that area, case studies with location details, before/after photos from local jobs.

Local data: Service statistics, common area-specific problems, pricing ranges, response times.

Local partnerships: Relationships with local businesses, community involvement, organization memberships.


Local Content Strategy

Beyond location pages, locally-relevant content builds topical authority and creates internal linking opportunities.

Content Types

  • Service education: "How much does [service] cost in [city]?" / "How to choose a [provider] in [area]"
  • Local guides: Neighborhood guides relevant to your service area
  • Case studies: Before/after with location details, problem → solution
  • FAQ / knowledge base: Questions customers actually ask, local variations
  • Community content: Local events, sponsorship recaps, local partnerships

Content Planning

  1. Core service keywords + location modifiers
  2. "People also ask" for local variations
  3. Google Autocomplete for [service] + [city] queries
  4. GBP Q&A and reviews for real customer questions
  5. Competitor content gaps

Cadence

2-4 pieces/month. Mix of education, case studies, and local guides. Align with seasonal demand. Repurpose into GBP posts, social, email.

Quality Standards

  • 800-1500 words standard, 1500-2500 for guides
  • Original local insights, not rewritten generic content
  • Author byline, updated date visible
  • Internal links to service and location pages

Internal Linking Architecture

Hub and Spoke

/services/plumbing/          (hub)
├── /plumbing/buffalo-ny/    (spoke)
├── /plumbing/orchard-park/  (spoke)
├── /plumbing/hamburg-ny/    (spoke)

Every location page links to main service page. Location pages link to nearby locations ("Also serving..."). Service pages link to location pages. Homepage links to priority locations. All within 3 clicks.

Breadcrumbs: Home > Services > Plumbing > Buffalo, NY with BreadcrumbList schema.


Scale Considerations

5-20 pages: Hand-craft each. Full unique content. 20-100: Template + required unique sections. 300+ unique words per page minimum. 100+: Programmatic approach. Need reliable per-page data source. Question: is there genuine search demand?

Quality Check

  • Would this help a real person in this area?
  • Is there unique content beyond city name swap?
  • Does search demand exist?
  • Would you show this to Google's webspam team?

Schema for Location Pages

Physical Location

json
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "@id": "https://example.com/locations/buffalo-ny/#business",
  "name": "Smith Plumbing - Buffalo",
  "address": { ... },
  "geo": { "latitude": "42.8864", "longitude": "-78.8784" },
  "areaServed": { "@type": "City", "name": "Buffalo, NY" }
}

Service-Area Page

json
{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Emergency Plumbing",
  "provider": { "@type": "LocalBusiness", "@id": "..." },
  "areaServed": { "@type": "City", "name": "Orchard Park, NY" }
}

Common Mistakes

  • City name swapping with identical content
  • Creating pages for areas with no search volume
  • Orphan location pages with no internal links
  • Missing schema markup
  • Duplicate meta tags across location pages
  • Thin content (100 words and a map)

Task-Specific Questions

  1. Physical locations or service areas (or both)?
  2. How many pages needed?
  3. What service × location combinations matter most?
  4. What unique local content is available per area?
  5. Current site structure?

What to Do Next

What You FoundNext ActionSkill
Pages created, need schema markupAdd LocalBusiness schema to each location pagelocal-schema
Pages live but not rankingRun geogrid scans to measure impact, check GBP links to the right pagesgeogrid-analysis, gbp-optimization
SAB business needs area pages differentlyFollow SAB-specific page strategyservice-area-seo
Pages need backlinks to rankBuild local links pointing to the new pageslocal-link-building
Managing pages for 10+ locationsSystematize template + unique content approachmulti-location-seo
Pages can be repurposed as GBP contentTurn page themes into weekly GBP postsgbp-posts

Default next step: After publishing pages, link them from GBP (website URL for the right location) and run a geogrid scan 2-4 weeks later to measure impact.

Tools for This Skill

See docs/tool-routing to pick based on what's connected.

  • Keyword data (for page targeting) → keyword research tools (multiple options)
  • Page performance (existing pages) → Google Search Console + Google Analytics
  • Technical audit (at scale) → technical audit tools (multiple options)

Frequently asked questions

What does the Local Landing Pages AI skill do?

When the user wants to create location pages, service-area pages, city pages, or locally-relevant content for SEO. Also use when the user mentions "location pages," "city pages," "service area pages," "local landing pages," "[service] in [city] pages," "local content," "local blog," "neighborhood content," or "pages for each location." For SAB-specific strategy, see service-area-seo. For schema, see local-schema.

Why use Local Landing Pages on TypingMind?

Because you install it once and use it with any model. Local Landing Pages is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Local Landing Pages in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/garrettjsmith/localseoskills/tree/main/skills/local-landing-pages. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Local Landing Pages?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Local Landing Pages?

As many as you like. As long as a model supports skills, you can use Local Landing Pages with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Local Landing Pages AI skill free?

Yes. It is published on GitHub by garrettjsmith under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇