Skip to main content
skill CX Codex

url-structure — Claude Code skill: what it does, how to install

Plans SEO-friendly URL hierarchies, eliminates file extensions, and establishes clean path conventions for websites and migrations.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add kostja94/marketing-skills --skill url-structure -a claude-code
Open on GitHub

What url-structure does

The skill sets architecture guidelines for search engine readability. It enforces lowercase characters, hyphens between words, and plain language over database IDs. It strips technical extensions such as .html or .php to keep routing technology-agnostic and easier to maintain.

For navigation, it maps out flat, category-based, or shallow nested hierarchies. It also defines routing patterns for multi-language setups using path prefixes like /en/ or dedicated subdomains. If a root contextus.md exists, the skill loads project structure modules directly from that file without asking for duplicate inputs.

Boundaries are clearly defined. Dynamic query parameters are restricted to two at most. Writing individual 3–5 word slugs is passed to url-slug-generator, while tracking parameters and protocol variations defer to canonical-tag. When updating existing paths, it creates a 301 redirect map.

What it helps with

  • organize site hierarchy and category path depth for a new domain
  • remove file extensions like .html or .php from routing
  • prepare 301 redirect mappings for site migrations
  • structure path prefixes or subdomains for multi-language content
  • clean up dynamic query parameters on catalog pages

Example prompts for the agent

  • Design an SEO-friendly URL hierarchy for an e-commerce catalog
  • Audit our current blog URLs and suggest clean static path structures
  • Create a 301 redirect map for restructuring our site categories

How to install url-structure

1Skills CLI (Vercel)

npx skills add kostja94/marketing-skills --skill url-structure -a claude-code

2Manually: put the files in place

~/.claude/skills/url-structure/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/url-structure/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about url-structure

How do I install url-structure in Claude Code?

Run npx skills add kostja94/marketing-skills --skill url-structure -a claude-code in your terminal. The configuration is stored at ~/.claude/skills/url-structure/SKILL.md.

What does url-structure do?

It provides architecture rules for website paths, recommending hyphen-separated lowercase words, shallow folder depth, and static paths over dynamic query parameters. It also outputs 301 redirect plans when URLs change.

Does this skill generate individual page slugs?

No, writing specific 3–5 word slugs belongs to url-slug-generator. This skill plans overall path hierarchies, language prefixes, and structural standards.

Source text

SKILL.md · MIT
---
name: url-structure
description: When the user wants to optimize URL structure, fix URL issues, or plan URL hierarchy. Also use when the user mentions "URL structure," "URL optimization," "slug," "clean URLs," "URL hierarchy," "URL path," "permalink structure," "URL best practices," "dynamic URLs," or "URL parameters." For per-page slug wording, use url-slug-generator. For canonical consolidation, use canonical-tag.
metadata:
  version: 1.1.0
---

# SEO On-Page: URL Structure

Guides URL structure optimization for SEO: readability, hierarchy, and best practices.

**When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.

## Scope (On-Page SEO)

- **URL hierarchy**: Path structure, categories, depth
- **URL format**: Static vs dynamic; omit file extensions
- **URL slug**: See **url-slug-generator** for slug creation (3–5 words, under 60 chars)
- **Duplicate variants**: Route protocol, host, slash, default-document, extension, case, and tracking variants to **canonical-tag**

## Initial Assessment

**Project context:** Read root `contextus.md` when present and load only the modules relevant to this task. Without Contextus, use available project material or user-provided facts and ask for missing information; do not create a parallel context system.

Identify:
1. **Site structure**: Categories, subcategories, content types
2. **Current URLs**: Existing patterns and issues
3. **Multi-language**: URL structure for zh/en (e.g., /zh/, /en/ or subdomains)

## Best Practices

### URL Guidelines

| Principle | Guideline |
|-----------|-----------|
| **Readable** | Use words, not IDs; `/blog/seo-guide` not `/p/12345` |
| **Short** | Shorter is generally better; avoid unnecessary depth |
| **Keyword** | Include target keyword when natural |
| **Lowercase** | Use lowercase; avoid mixed case |
| **Hyphens** | Use hyphens to separate words: `seo-guide` |
| **Avoid** | Special chars, query params for core content, session IDs |

### Hierarchy

| Pattern | Example | Use |
|---------|---------|-----|
| **Flat** | `/page-name` | Simple sites |
| **Category** | `/blog/post-name`, `/tools/tool-name` | Content sites |
| **Nested** | `/category/subcategory/page` | Deep hierarchies (keep shallow) |

### Multi-language

| Pattern | Example |
|---------|---------|
| **Path prefix** | `/zh/page`, `/en/page` |
| **Subdomain** | `zh.example.com`, `en.example.com` |
| **ccTLD** | `example.cn`, `example.com` |

### Static vs Dynamic vs Pseudo-Static URLs

| Type | Example | Use |
|------|---------|-----|
| **Static** | `/blog/seo-guide` | Direct file; best SEO; content stable |
| **Dynamic** | `/product?id=123` | Program-generated; avoid for indexable content |
| **Pseudo-static** | `/blog/seo-guide` (rewritten from `.php`) | Combines both; common in CMS |
| **Rule** | Prefer static or pseudo-static; if dynamic, keep params ≤2; use **canonical-tag** and **robots-txt** (Clean-param) |

### File Extensions

- **Omit** `.html`, `.php`, `.aspx` — keeps URLs technology-agnostic, shorter, easier to refactor
- **Example**: `/seo-guide` not `/seo-guide.html`

### URL Parameter Boundary

Use parameters only when they represent a real function. Route duplicate-page decisions for UTM, tracking, sorting, filtering, sessions, and other parameter variants to **canonical-tag**; do not assume every parameterized URL should canonicalize to the base page.

### Use Cases

| Scenario | Focus |
|----------|-------|
| **New site** | Plan hierarchy upfront; avoid later restructuring |
| **Migration** | 301 mapping; canonical; see **canonical-tag** |
| **Large site** | Dynamic URLs, params, multi-language — canonical + robots |
| **SEO audit** | Check structure, params, canonical consistency |

## Common Issues

| Issue | Fix |
|-------|-----|
| Long URLs | Shorten; remove redundant words |
| Dynamic params | Decide whether they change page identity; use **canonical-tag** for duplicate variants |
| Mixed case | Prefer lowercase for new URLs; use **canonical-tag** before consolidating existing routes |
| Changed URLs | 301 redirect old to new |

## Output Format

- **URL structure** recommendation
- **Slug** conventions
- **Hierarchy** for key content types
- **Redirect** plan if changing URLs
- **References**: [Alignify URL optimization](https://alignify.co/zh/seo/url-optimization); [Google URL guidelines](https://developers.google.com/search/docs/crawling-indexing/url-structure)

## Related Skills

- **website-structure**: Plan structure and URL paths; apply url-structure rules after structure is defined

- **canonical-tag**: Audits and consolidates duplicate URL identities across protocol, host, slash, default documents, extensions, case, and tracking parameters
- **url-slug-generator**: Slug creation for content pages; length, keywords, format
- **category-page-generator**: E-commerce category URL hierarchy, faceted URLs
- **products-page-generator**: Product URL hierarchy
- **services-page-generator**: Service URL hierarchy
- **robots-txt**: Clean-param for query params
- **internal-links**: URL structure affects link patterns

© kostja94 · MIT · kostja94/marketing-skills

Similar skills

Everything for SEO and GEO →

From the same set120

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor