Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/kostja94-url-structure/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-10 | ✓→✗ | ▼ Worse | 15% | 0% |
| case-18 | ✓→✓ | = Same ✓ | 41% | 0% |
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.
Check for project context first: If .claude/project-context.md or .cursor/project-context.md exists, read it for site structure.
Identify:
| 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 |
| 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) |
| Pattern | Example | |---------|---------| | Path prefix | /zh/page, /en/page | | Subdomain | zh.example.com, en.example.com | | ccTLD | example.cn, example.com |
| 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) |
.html, .php, .aspx — keeps URLs technology-agnostic, shorter, easier to refactor/seo-guide not /seo-guide.html| 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 robots-txt Clean-param | | Session IDs | Use cookies; never in indexable URLs |
| 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 |
| 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 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-18 | pass→pass | 9,941 | 6,222 | -37% | 1 | 1 | 0% | 1,628 | 2,290 | +41% | 0 | 0 | — |
case-01 | fail→pass | 30,715 | 14,257 | -54% | 1 | 1 | 0% | 5,551 | 4,270 | -23% | 0 | 0 | — |
case-02 | fail→pass | 24,167 | 12,373 | -49% | 1 | 1 | 0% | 4,520 | 3,764 | -17% | 0 | 0 | — |
case-03 | fail→pass | 18,147 | 10,123 | -44% | 1 | 1 | 0% | 3,485 | 3,149 | -10% | 0 | 0 | — |
case-04 | pass→pass | 12,326 | 6,844 | -44% | 1 | 1 | 0% | 2,158 | 2,409 | +12% | 0 | 0 | — |
case-05 | pass→pass | 8,969 | 6,918 | -23% | 1 | 1 | 0% | 1,715 | 2,492 | +45% | 0 | 0 | — |
case-06 | pass→pass | 10,223 | 8,595 | -16% | 1 | 1 | 0% | 1,977 | 2,759 | +40% | 0 | 0 | — |
case-07 | pass→pass | 11,587 | 11,251 | -3% | 1 | 1 | 0% | 2,056 | 3,153 | +53% | 0 | 0 | — |
case-08 | pass→pass | 10,270 | 8,068 | -21% | 1 | 1 | 0% | 2,113 | 2,710 | +28% | 0 | 0 | — |
case-09 | pass→pass | 5,416 | 6,283 | +16% | 1 | 1 | 0% | 1,068 | 2,523 | +136% | 0 | 0 | — |
case-10 | pass→fail | 15,008 | 11,201 | -25% | 1 | 1 | 0% | 2,766 | 3,194 | +15% | 0 | 0 | — |
case-11 | pass→pass | 13,804 | 9,865 | -29% | 1 | 1 | 0% | 2,591 | 2,832 | +9% | 0 | 0 | — |
case-12 | pass→pass | 11,603 | 10,405 | -10% | 1 | 1 | 0% | 1,927 | 3,146 | +63% | 0 | 0 | — |
case-13 | pass→pass | 12,121 | 8,911 | -26% | 1 | 1 | 0% | 1,997 | 2,763 | +38% | 0 | 0 | — |
case-14 | pass→pass | 11,319 | 7,267 | -36% | 1 | 1 | 0% | 1,975 | 2,536 | +28% | 0 | 0 | — |
case-15 | pass→pass | 12,884 | 8,882 | -31% | 1 | 1 | 0% | 2,247 | 2,834 | +26% | 0 | 0 | — |
case-16 | pass→pass | 9,288 | 6,358 | -32% | 1 | 1 | 0% | 1,580 | 2,358 | +49% | 0 | 0 | — |
case-17 | pass→pass | 8,492 | 6,453 | -24% | 1 | 1 | 0% | 1,813 | 2,456 | +35% | 0 | 0 | — |
case-19 | pass→pass | 10,990 | 9,411 | -14% | 1 | 1 | 0% | 1,922 | 2,867 | +49% | 0 | 0 | — |
case-20 | pass→pass | 2,573 | 4,554 | +77% | 1 | 1 | 0% | 485 | 2,110 | +335% | 0 | 0 | — |
case-21 | pass→pass | 8,392 | 5,718 | -32% | 1 | 1 | 0% | 1,588 | 2,226 | +40% | 0 | 0 | — |
case-22 | pass→pass | 10,452 | 7,546 | -28% | 1 | 1 | 0% | 1,831 | 2,535 | +38% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.