Camen Design Forum

Questions regarding URL design

append delete Nikolai

Hello there,

I'm currently having issues trying to figure out how to manage URLs for a blog application I am developing for my own site. As I'm finally building my own tool to manage the entries, I think this is an important aspect to solve, in line with W3C's "cool URLs don't change".

Previously I used Chyrp for over a year to manage my content, and had basic URLs in form "/2011/04/01/my-april-first-joke/" and "/tag/april-1st-jokes/", which I found not useful enough as content was duplicated on 6 different pages (index, yearly, monthly and daily archives, tag archives and the single page) and I didn't add many entries to make browsing by date thing useful.

What I am trying to do at the moment is remove useless layers in the URL patterns and make them as simple as possible, following this reference:…. Usually, I would use the simple "/section/page" or a deeper "/section/subsection/page" format, as all pages were static (following a pattern from the sites previously built), but as this site feels like a live application where dates matter the most, I get lost trying to figure out which pattern to use.

Thanks in advance

Reply RSS


append delete #1. Kroc

You haven’t told / shown me what content you have.

Design your URLs around your content, not your current URLs.

All you’ve said is "I have a website, what URL should I use?" :)

append delete #2. Nikolai

Sorry for being uninformative there, I realize I should have provided examples of what I'm having at the moment.

In the core, the application is similar to Tumblr in terms of how it manages content: there are articles, bookmarks, photos and quotes. Each entry has its own date and tags, but different meta data depending on its type: articles have title and body, bookmarks have URLs and description (which is actually a reblog or a reply to what the original URL author wrote), photos have an image and an additional description field and so on. I don't post often - the average is 4 to 5 entries on a monthly level, so filtering by day is useless here, but filtering by month could have its advantage in case I (or anybody else) was looking for a particular entry posted in, say, April 2009.

At first I thought of using something like you are using on your site with "/photos/photo-name", but it turned out that some pages look rather empty; for example, bookmarks with shorter description had lots of free space, while photos and articles managed to fill the page up. Then I came to an idea to use something like "/2011/04/#my_april_first_joke", which didn't produce free space on a page, but in return pages had titles like "Archive of April 2010", which I wasn't a fan of. Currently I'm thinking of sticking with the first solution and just getting over the free space in pages (or writing longer descriptions hehe), but I fear there might be a better and more elegant solution and that I am missing it.

Another thing I am trying to solve regarding the URLs is browsing. All entries have tags that were added to them in the Chyrp era and they are preserved in the exported files, so I think it would be good to put them in good use and make browsing entries a bit easier (as I write on a lot of topics, different people may be interested in different things; one could want only the programming related entries, while another person might want only entries related to chemistry and physics). For tags, I thought the URLs could be in the form of "/tags/programming" (where visiting "/tags/" only would display a tag cloud). As for date based archives, I thought the URLs could be in format like "/archives/2011/04". There's an alternate idea to have something like "/browse/" where entries could be browsed using query strings, something like "/browse/?tag=programming" or "/browse/?date=2011-04".

As this is my first time I'm building a blogging application and as I don't know much about URLs (except when making static sites) and how site indexing works, I'd like to know which combinations would work best for a small blog like mine. Also, if there are any things to be aware of when providing various methods to browse content, please let me know.

append delete #3. Kroc

Think of this from a human perspective, not purely an information one.

If you have a stream of content, usually short, in varying formats you have to ask yourself how to do people get to your site, what are they looking for when they are there, and why? What is useful to them and what is not useful to them.

Dates are basically useless. When you have a date browser, how does that help me when I can’t see what content relates to a date until I’ve clicked it? It’s mystery meat navigation. You have no idea what you’ve got until you click it. The date is not relevant.

If you present a list of months to click on, that’s as good as useless. This is why I don’t do it on my site. It’s just random clicking.

Think content first, time secondary. New is important, old is not. Seeing the content beats choosing what to see beforehand.

Just do what I’ve done, but instead of having one item per page, have a month's worth, and then at the bottom link to the next page. So,

/programming/ (this month's programming articles)
/programming/mar-2011 (last month's programming articles)
/programming/feb-2011 (&c.)

The home page would be all types amalgamated, but the same principle. Show one month on the page and then link to previous months for each additional page.

/ (this month's content)
/feb-2011 (&c.)

Permalink based on the article name. Date is irrelevant here. When people link to an article, the date does not need to be in the URL.

/programming/article_name (for each tag, too)

When people click the date in the article’s page, it will take them to the month page it belongs in.

append delete #4. Kroc

Oh, and for people who really need it. Add a year page (/2011, /2010, …) that lists the titles of every entry for the year, grouped into each month.

append delete #5. Gerben

> some pages look rather empty
Why don't you, in those cases, load some extra related content/photos using AJAX. A bit like Jeremy Keith did here:…
So on /photos/photo-name load some other photos with the same tag(s), or load older photos.

append delete #6. Nikolai

Thank you for responding, the issue of managing URLs for a blog is much clearer to me now. Honestly, I think my patterns were poisoned with what comes packaged with pre-baked blogging tools, I am glad I was able to receive some tips on the matter before implementing it. Frankly, I thought that browsing by date was a bit superfluous even, this new information raised the question about it even being added seeing that in practice it doesn't serve any use and only duplicates content (perhaps if I were to develop a search, something like a filter could be added, but that's completely other thing). In any case, thanks for your help and time, it has been truly informative.

That sounds interesting, however I want the focus to stay on the item a page currently displays. A rearrangement and resizing of elements is what I am planning to do to increase the focus and bring up the shorter items to size

append delete #7. JJ

On my own blog, the article slug is the only thing in the URI when viewing a post.
e.g. host.tld/…

Now that carries with it the possibility of collisions with other static pages you might have, but that isn't a problem as long as you're aware.


(Leave this as-is, it’s a trap!)

There is no need to “register”, just enter the same name + password of your choice every time.

Pro tip: Use markup to add links, quotes and more.

Your friendly neighbourhood moderators: Kroc, Impressed, Martijn