Document Workflow
Create URL slugs and preserve existing links
A practical workflow for choosing a Unicode or ASCII path policy, checking real route uniqueness, and changing published URLs with redirects and release evidence.
Written and tested by SimpleWebUtilsPublished: Reviewed:
How this workflow was checked
We replayed “Keep a Korean title readable, then verify the route in the CMS” in Slug Generator, keeping the guide's input unchanged. “Preserve the source and remove confidential draft data” and “Check ownership, duplicates, and reserved behavior in the real system” defined the normal path; “Letting unsupported ASCII transliteration erase the title” and “Optimizing for a mythical perfect slug length” defined the boundary review before the output was accepted.
The slug retained the Korean words, normalized URL to lowercase, and produced 2026-여름-여행-준비와-안전한-url-가이드 for a CMS route and redirect check.
Problem
A title-to-slug transformation looks small, yet the resulting string becomes part of a public identifier. Different systems disagree about case sensitivity, Unicode normalization, percent encoding, trailing slashes, reserved words, maximum bytes, and when two paths collide. ASCII transliteration can also discard a writing system that the chosen engine does not support, while a readable Unicode path can become much longer when percent encoded. Most importantly, changing a slug after publication is not a text-formatting operation: it moves a resource that may already have inbound links, bookmarks, search history, analytics dimensions, cached responses, language alternates, structured data, feeds, and application references. A clean candidate is therefore only the beginning. The reliable unit of work includes the exact source title, pinned transformation settings, a duplicate and reserved-route query against the real platform, staged route behavior, a tested permanent redirect from every old variant, updated canonical and internal references, post-release crawl and traffic evidence, and a rollback path.
Sources and standards
These authoritative references define the formats or security boundaries used in this workflow. Tool-specific verification is documented separately above.
- URL Living Standard
WHATWG
When to use this
- A new article, help page, product page, release note, or documentation section needs a stable path before its first publication.
- A multilingual title should remain readable as Unicode or follow an explicitly reviewed ASCII-only route policy.
- A team needs to pin separator, case, camelCase, normalization, and maximum-length rules in a CMS or repository.
- An existing path is misleading, incorrect, duplicated, or inconsistent and a URL migration is being considered.
- A route convention must be tested across the application, proxy, CDN, database, analytics, sitemap, and search surface before rollout.
Steps
- Step 1
Inventory the platform and current route contract
Record the public origin, locale structure, router and CMS versions, case sensitivity, trailing-slash behavior, Unicode normalization, percent-encoding behavior, reserved segments, database column limits, CDN or proxy limits, and whether the page already has a live URL. Export the current route, canonical, hreflang, sitemap entry, redirects, inbound internal links, structured data, feed references, and recent legitimate analytics or search evidence before changing anything.
- Step 2
Preserve the source and remove confidential draft data
Keep the exact title, current slug, current full URL, content identifier, locale, and timestamp in the change record. Remove confidential codenames, customer identifiers, tokens, and unreleased product details before using a browser, clipboard, screenshot, or downloaded text. A local generator avoids an intentional content upload, but it does not control device history or extensions.
- Step 3
Choose one explicit path policy
Decide whether international letters remain as Unicode or require ASCII transliteration, then pin hyphen or underscore, lowercase behavior, Latin camelCase splitting, and an optional visible-length control. Prefer Unicode when an unsupported script would otherwise disappear. Treat ASCII spelling as editorial content that may require a speaker or brand owner, not as an automatic translation.
- Step 4
Generate and inspect one candidate
Run Slug Generator in Manual mode and record @sindresorhus/slugify 3.0.0 plus every selected option. Review removed punctuation, meaning, word boundaries, unsupported-character warnings, truncation, visible length, and percent-encoded length. The tool accepts 10,000 UTF-8 bytes, 20 lines, and 5,000 bytes per line, but a real route label should be much smaller and focused on the page subject.
- Step 5
Check ownership, duplicates, and reserved behavior in the real system
Query the CMS, router, database, repository, and generated route manifest for the exact candidate and normalized variants. Test uppercase and lowercase, NFC and NFD Unicode, decoded and percent-encoded forms, trailing slash, locale prefixes, and reserved routes such as framework or administration paths. Create and update a staged record to prove the actual collision and normalization behavior.
- Step 6
Build the complete migration for a published URL
Keep every old public variant mapped to the single new canonical URL with the platform-appropriate permanent redirect. Update canonical and hreflang tags, internal links, navigation, sitemap, structured data, Open Graph URLs, feeds, API references, campaign links, tests, and analytics annotations. Avoid redirect chains and loops, preserve query strings only when intended, and do not delete the old route before the redirect is active.
- Step 7
Stage, release, monitor, and retain rollback evidence
In staging, request old and new URLs with representative query and locale variants, inspect status, Location, final canonical, robots, page content, and cache headers, and crawl internal links. After release, repeat edge checks, watch 404s, redirect errors, crawl and index status, legitimate entrances, and conversions for the old and new paths. Keep the prior routing rule and exact rollback trigger until caches, crawlers, integrations, and users have stabilized.
Example
Keep a Korean title readable, then verify the route in the CMS
Input
2026 여름 여행 준비와 안전한 URL 가이드Output
2026-여름-여행-준비와-안전한-url-가이드Common mistakes
Letting unsupported ASCII transliteration erase the title
An empty or partial ASCII result is a failed editorial decision, not a clean route. Keep Unicode or provide a reviewed spelling and document why it was chosen.
Checking uniqueness only in the browser
The generator has no route inventory. Query the real storage and manifest, including normalized, case-folded, localized, encoded, and trailing-slash variants.
Optimizing for a mythical perfect slug length
No universal character count guarantees search performance. Use length controls to meet a verified platform and editorial contract, and review percent-encoded bytes separately.
Changing the canonical URL before redirects are ready
Publishing the new path first can create 404s and split references. Stage the new route, old-to-new redirect, metadata, links, sitemap, and cache behavior as one release.
Removing redirects as soon as a crawl succeeds
Old links can survive in bookmarks, documents, apps, and infrequent crawls for years. Retain redirects according to an explicit ownership policy and monitor real old-path requests before any retirement.
FAQ
Is a Unicode slug a valid URL path?
Unicode can be represented in an internationalized URL, while network requests commonly percent-encode its UTF-8 bytes. Valid generic syntax does not prove that your framework, proxy, database, CDN, analytics system, or external integration preserves the same path, so test the complete production chain.
Does ASCII transliteration improve SEO?
There is no universal ranking guarantee. ASCII may satisfy a legacy platform or editorial policy, while Unicode may be clearer to readers. Choose the form that accurately represents the page and is supported consistently, then evaluate crawl, index, and legitimate user evidence.
How do I know whether a slug is unique?
Query and attempt the operation in the actual route store or staged build. Include case folding, Unicode normalization, locale prefixes, decoded and encoded forms, reserved names, aliases, soft-deleted records, and trailing-slash rules.
Which redirect status should I use after a permanent change?
Use the permanent redirect behavior supported and documented by your platform, commonly 301 or 308, after testing method, cache, and query-string behavior. Temporary migrations require a different decision. Do not select a code solely from this guide without checking the application contract.
Should the old slug remain in the sitemap?
Normally a sitemap should list the current canonical URL, while the old URL continues to redirect. Confirm this with the site's indexing policy, remove stale internal references, and verify that the old path does not return a competing 200 page.
What evidence should a URL-change release include?
Include old and new URLs, content ID and locale, pinned generation settings, duplicate and reserved-route checks, staged status and Location captures, final canonical and hreflang, updated links and sitemap, chain and loop tests, cache behavior, monitoring dashboards, rollback trigger, and post-release crawl and legitimate traffic observations.