skills/seo/on-page/url-structure/SKILL.md
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.
npx skillsauth add kostja94/marketing-skills url-structureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 |
website-structure: Plan structure and URL paths; apply url-structure rules after structure is defined
canonical-tag: HTTPS, www, trailing slash — handles duplicate URL variants
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
testing
When the user wants to create, audit, or optimize sitemap.xml. Also use when the user mentions "sitemap," "sitemap.xml," "sitemap index," "lastmod," "changefreq," "priority," "URL discovery," "URL discovery for search engines," "single source of truth," "URL config," "unify sitemap IndexNow," or "reduce duplicate maintenance." For IndexNow, use indexnow.
development
When the user wants to configure, audit, or optimize robots.txt. Also use when the user mentions "robots.txt," "crawler rules," "block crawlers," "AI crawlers," "GPTBot," "allow/disallow," "disallow path," "crawl directives," "user-agent," "block Googlebot," "fix robots.txt," "robots.txt blocking," or "search engine crawling." For indexing, use indexing.
testing
When the user wants to create SEO pages at scale using templates and data—including AI-assisted, grounded copy for per-URL differentiation (vs rigid mail-merge templates). Also use when the user mentions "programmatic SEO," "programmatic SEO pages," "template pages," "scale content," "location pages," "city pages," "comparison pages at scale," "X vs Y pages," "integration pages," "pages from data," "automated landing pages," or "programmatic landing pages." Uses a playbook matrix aligned to skills under skills/pages. For user-facing template galleries or marketplaces (browse → use), use template-page-generator.
data-ai
When the user wants to add or optimize Twitter Card metadata for X (Twitter) link previews. Also use when the user mentions "Twitter Card," "twitter:card," "twitter:image," "twitter:title," "X preview," or "tweet preview." For Facebook/LinkedIn previews, use open-graph.