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 components-url-slug for slug creation (3–5 words, under 60 chars)
- Duplicate variants: See seo-technical-canonical for HTTPS, www, trailing slash
Initial Assessment
Check for product marketing context first: If .claude/product-marketing-context.md or .cursor/product-marketing-context.md exists, read it for site structure.
Identify:
- Site structure: Categories, subcategories, content types
- Current URLs: Existing patterns and issues
- 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 seo-technical-canonical and seo-technical-robots (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 Handling
| Scenario |
Approach |
| UTM / tracking |
Canonical to base URL; params in query string only |
| Search results |
Canonical to search page; avoid indexing result URLs |
| Filters / sort |
Canonical to base; or seo-technical-robots Clean-param |
| Session IDs |
Use cookies; never in indexable URLs |
Use Cases
| Scenario |
Focus |
| New site |
Plan hierarchy upfront; avoid later restructuring |
| Migration |
301 mapping; canonical; see seo-technical-canonical |
| 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 |
Use canonical; clean params in robots (Yandex Clean-param) |
| Mixed case |
Redirect to lowercase |
| Changed URLs |
301 redirect old to new |
Output Format
Related Skills
- seo-technical-canonical: HTTPS, www, trailing slash — handles duplicate URL variants
- components-url-slug: Slug creation for content pages; length, keywords, format
- pages-category-pages: E-commerce category URL hierarchy, faceted URLs
- pages-products: Product URL hierarchy
- pages-services: Service URL hierarchy
- seo-technical-robots: Clean-param for query params
- seo-on-page-internal-links: URL structure affects link patterns
1---2name: seo-on-page-url-structure3description: 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," or "URL hierarchy."4---5
6# SEO On-Page: URL Structure
7
8Guides URL structure optimization for SEO: readability, hierarchy, and best practices.
9
10**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.
11
12## Scope (On-Page SEO)
13
14- **URL hierarchy**: Path structure, categories, depth
15- **URL format**: Static vs dynamic; omit file extensions
16- **URL slug**: See **components-url-slug** for slug creation (3–5 words, under 60 chars)
17- **Duplicate variants**: See **seo-technical-canonical** for HTTPS, www, trailing slash
18
19## Initial Assessment
20
21**Check for product marketing context first:** If `.claude/product-marketing-context.md` or `.cursor/product-marketing-context.md` exists, read it for site structure.
22
23Identify:
241. **Site structure**: Categories, subcategories, content types
252. **Current URLs**: Existing patterns and issues
263. **Multi-language**: URL structure for zh/en (e.g., /zh/, /en/ or subdomains)
27
28## Best Practices
29
30### URL Guidelines
31
32| Principle | Guideline |
33|-----------|-----------|
34| **Readable** | Use words, not IDs; `/blog/seo-guide` not `/p/12345` |
35| **Short** | Shorter is generally better; avoid unnecessary depth |
36| **Keyword** | Include target keyword when natural |
37| **Lowercase** | Use lowercase; avoid mixed case |
38| **Hyphens** | Use hyphens to separate words: `seo-guide` |
39| **Avoid** | Special chars, query params for core content, session IDs |
40
41### Hierarchy
42
43| Pattern | Example | Use |
44|---------|---------|-----|
45| **Flat** | `/page-name` | Simple sites |
46| **Category** | `/blog/post-name`, `/tools/tool-name` | Content sites |
47| **Nested** | `/category/subcategory/page` | Deep hierarchies (keep shallow) |
48
49### Multi-language
50
51| Pattern | Example |
52|---------|---------|
53| **Path prefix** | `/zh/page`, `/en/page` |
54| **Subdomain** | `zh.example.com`, `en.example.com` |
55| **ccTLD** | `example.cn`, `example.com` |
56
57### Static vs Dynamic vs Pseudo-Static URLs
58
59| Type | Example | Use |
60|------|---------|-----|
61| **Static** | `/blog/seo-guide` | Direct file; best SEO; content stable |
62| **Dynamic** | `/product?id=123` | Program-generated; avoid for indexable content |
63| **Pseudo-static** | `/blog/seo-guide` (rewritten from `.php`) | Combines both; common in CMS |
64| **Rule** | Prefer static or pseudo-static; if dynamic, keep params ≤2; use **seo-technical-canonical** and **seo-technical-robots** (Clean-param) |
65
66### File Extensions
67
68- **Omit** `.html`, `.php`, `.aspx` — keeps URLs technology-agnostic, shorter, easier to refactor
69- **Example**: `/seo-guide` not `/seo-guide.html`
70
71### URL Parameter Handling
72
73| Scenario | Approach |
74|----------|----------|
75| **UTM / tracking** | Canonical to base URL; params in query string only |
76| **Search results** | Canonical to search page; avoid indexing result URLs |
77| **Filters / sort** | Canonical to base; or **seo-technical-robots** Clean-param |
78| **Session IDs** | Use cookies; never in indexable URLs |
79
80### Use Cases
81
82| Scenario | Focus |
83|----------|-------|
84| **New site** | Plan hierarchy upfront; avoid later restructuring |
85| **Migration** | 301 mapping; canonical; see **seo-technical-canonical** |
86| **Large site** | Dynamic URLs, params, multi-language — canonical + robots |
87| **SEO audit** | Check structure, params, canonical consistency |
88
89## Common Issues
90
91| Issue | Fix |
92|-------|-----|
93| Long URLs | Shorten; remove redundant words |
94| Dynamic params | Use canonical; clean params in robots (Yandex Clean-param) |
95| Mixed case | Redirect to lowercase |
96| Changed URLs | 301 redirect old to new |
97
98## Output Format
99
100- **URL structure** recommendation
101- **Slug** conventions
102- **Hierarchy** for key content types
103- **Redirect** plan if changing URLs
104- **References**: [Alignify URL optimization](https://alignify.co/zh/seo/url-optimization); [Google URL guidelines](https://developers.google.com/search/docs/crawling-indexing/url-structure)
105
106## Related Skills
107
108- **seo-technical-canonical**: HTTPS, www, trailing slash — handles duplicate URL variants
109- **components-url-slug**: Slug creation for content pages; length, keywords, format
110- **pages-category-pages**: E-commerce category URL hierarchy, faceted URLs
111- **pages-products**: Product URL hierarchy
112- **pages-services**: Service URL hierarchy
113- **seo-technical-robots**: Clean-param for query params
114- **seo-on-page-internal-links**: URL structure affects link patterns