The slug is the only part of a short link you control, and it does two jobs at once: it's a database key and a piece of copy. Most teams design for one and forget the other. Here's the framework that handles both.
Two families, two jobs
Random codes — yas.sh/Ab3xK9q — are generated by the platform: base62 alphabet (0-9a-zA-Z), 7 characters, ~3.5 trillion combinations, collision-resistant by construction. They're for machine-generated links: API exports, bulk uploads, anything where nobody will ever read the URL aloud.
Human aliases — yas.sh/launch24 — are written by people for people. They're semantic, memorable, and readable in a printed flyer or a podcast show note. They're for links that carry brand: campaigns, product launches, bio links.
The rule: if a human will see the link, give it a human slug. If only a machine will, let the platform generate one.
Slug hygiene that scales
Whatever you choose, the same hygiene rules apply:
- Lowercase only.
Launch24andlaunch24are two different links — and someone will get one wrong. Enforce lowercase at creation. - Hyphens, not underscores.
black-fridaysurvives copy-paste and voice assistants;black_fridaygets eaten by underline-hiding text styles. - No reserved words.
admin,login,api,dashboard,wp-admin,favicon.icoand a few dozen more should be blocked as aliases — they collide with platform routes and confuse crawlers. - Keep it short. 3–5 words max. The entire point is fewer keystrokes than the destination URL.
- No dates in the middle of slugs you'll reuse.
summer-2026-saleis dead in November;summer-salesurvives. If you version, version at the end:summer-sale-2026.
The collision question
Two links cannot share one alias — that's a hard uniqueness constraint. Teams that don't plan for this hit it at the worst time: during a campaign when they need /launch but it's taken by last quarter's page.
The fix is a naming convention before you need it:
| Use case | Pattern | Example |
|---|---|---|
| Campaign | campaign-name-<year> |
summer-sale-2026 |
| Product | product-slug |
pro-plan |
| Per-piece content | topic-slug |
launch-post |
| Permanent pages | brand-term |
pricing |
And keep a small registry — the yas.sh dashboard search makes this trivial: check before you create, and you never discover collisions by watching a campaign fail.
Slugs are URLs are contracts
A short link published in a printed brochure, a QR code, or a million-email send is permanent infrastructure. The slug generator helps you produce clean slugs from messy titles — but the decision framework is human: would you be happy seeing this slug on a billboard? If the answer is no, don't create it. If yes, it'll outlast the campaign that created it.
Reserved words and collision avoidance in practice
The slug space is shared with platform routes, so a small reserved-word list is not optional — it prevents the confusing situation where an alias shadows a real page or endpoint. Words like admin, login, api, dashboard, wp-admin, favicon.ico, and a handful of platform routes should be blocked as aliases at creation time. When your batch or migration script hits one, it should not fail the whole job; it should log the conflict, apply the naming convention's fallback (for example a suffix), and continue, then report the collision in the output inventory.
The dashboard's built-in search is the second half of collision avoidance: before you create an alias, search to confirm it is free. Combined with the uniqueness constraint at the API, this means you only ever discover a collision when you planned for it — not by watching a campaign fail.
Versioning slugs so they age well
A slug that names a permanent destination should not carry a moving reference. The recurring mistake is embedding a date in the middle of a slug that gets reused across seasons or quarters. Two rules keep slugs future-proof:
- Version at the end, not the middle.
summer-salesurvives from one summer to the next;summer-sale-2026is dead in November. When you genuinely need a new version, append it at the end:summer-sale-2026. - Prefer a stable brand term for permanent pages. For links that should never change — pricing, documentation, your bio page — use a fixed, brand-level slug and let a redirect handle any relocation. A permanent slug plus a
301from the old URL gives you both stability and the freedom to move the destination.
The test for any slug you create: would you be comfortable seeing this on a billboard in a year? If the answer is yes, it will outlive the campaign that created it; if no, keep thinking.
Slugs and analytics
Because a slug is the human-facing part of the URL, it is also the part people type and remember — which makes it a useful dimension for your reporting. When your aliases follow a consistent naming convention, your analytics become more readable: the link analytics series shows that a well-named alias lets you tell at a glance which campaign, channel, or product a burst of clicks belongs to, without opening each link. Consistent naming is not just hygiene; it is an analytical asset.
Slugs in QR and print
Slugs have a special role in print and QR contexts where the URL is the interface. A readable, human slug printed on a flyer or encoded into a QR code does two things: it survives being typed from memory, and it builds trust because the reader can see where the link leads. A random code still works technically, but it communicates nothing and looks like a tracking artifact. When a human will see the link, give it a human name — the same rule as anywhere else, only more so.
Conclusion
Human-friendly slugs and machine-generated codes each have a place; the rule is simple — if a person will read the URL, give it a name. Pair a consistent naming convention with the collision checks and reserved-word list, and your short links become permanent, readable infrastructure instead of a source of campaign-time surprises.
