Structure

Decide your URL structure before you create content

URLs are structural decisions

Every page needs an address. That address becomes part of bookmarks, search results, social shares, and email links. Change it later and you break all of those.

Your URL structure isn't decoration. It's a commitment to how your site organizes information. Pick a pattern before you publish your first page, not after you've published fifty.

Common patterns and what they cost

Flat structure (/about, /services, /contact) works for tiny sites with under twenty pages. You never nest. You never categorize. Every page sits at the root.

Date-based (/2024/03/post-title) works for news sites and true chronological archives. It tells users and search engines that freshness matters. It makes old content look old.

Category-based (/services/consulting, /blog/production) works when your content clusters into stable groups. It scales. It shows relationships. It requires you to maintain those categories forever.

ID-based (/post/12345, /item/67890) works when URLs are purely functional and you never want humans reading them. It's honest about treating URLs as database keys.

What breaks when you change patterns mid-site

Redirects. Lots of redirects. Every URL that ever existed needs a working redirect to its new location. Miss one and someone's bookmark dies.

Internal links rot. Your old posts still point to /blog/post-title but now everything lives at /writing/post-title. You have to find and fix every single one.

Search rankings reset. Google treats the new URL as a new page, even with perfect redirects. You lose months of ranking history.

Decide based on what you'll maintain

Don't choose /category/subcategory/post-title if you won't maintain a stable category taxonomy. Don't choose date-based URLs if your content isn't time-sensitive.

Pick the simplest structure that supports your actual content model. If you're not sure what that model is yet, you're not ready to publish.

Your URL structure should match how you've organized your content sections, not fight against it. If your CMS wants one pattern and your content model wants another, fix the mismatch before you go live.

Test your pattern with real titles

Take ten actual page titles from your content plan. Write out the full URLs. Read them aloud. Send them in a fake email.

If they're too long, your pattern has too many segments. If they're confusing, your category names are unclear. If they feel wrong, pick a different pattern now.

URLs are forever. Treat them that way.

← All posts