Weblog Design: Archives and URLs

I’m doing a few posts about weblog design. Here are the others I’ve written so far. Apologies: this one is pretty dry. A few guidelines on website organization. (Dry enough that I won’t even bother to defragment the previous sentence.)

First, every post should have its own permalink: a single page holding just that one post.

Second, a weblog should organize itself using archives that make sense for the types and amount of posts it makes. For most weblogs, this will be a monthly archive. Some that post very frequently might consider weekly or even daily archives.

It’s not necessary that every post have a link to the next-oldest/newest post unless you frequently only write longer posts. It isn’t a satisfying experience to read a one- or two-sentence post, click the link to load the next post, wait for it to load, and then find another one-sentence post. Instead, provide a link up to appropriate archive page that shows other posts made around that time so your visitor can scroll up/down to read more right there.

Somewhere sensible on your post page, put a link to its relative archive. It can be very simple, like:

You are: HomeArchivesSeptember 2018 ← Here

The arrows point left, not right, because the point of them is to point up the path you might want to follow. You can omit the “you are” and “here” parts to your liking. Barring that, even a link that says “more posts” will do. The link should point to the appropriate archive (September 2018 in this case) with an anchor to the current post. Then your reader can scroll up/down right away, rather than having to find their place from the top of the page.

If you categorize your posts with tags, each permalink should also have a link to that post’s tags. Not every post needs to be tagged. The ideal weblog software would put all the posts for one tag on the same page if there are fewer than a sensible number, and then paginate by month if there are a lot. Ideally that “sensible” number should account for how long your average post is. A weblog with all tweet-length posts might stuff 100 or more onto one archive page where one with long articles might only do 10 or 20. General-use weblog publishing software is unlikely to have this level of finesse.

If multiple authors work on the same site, the byline should have a link to that author’s own personal archive page that ideally not only lists every post by that author but also shows a few featured pieces.

Despite the trend for most web browsers to hide the full address from the user, I still think it’s important to design a weblog’s URL. It should tell you everything you need to know about the site’s organization. My ideal weblog URL:

example.com/archives/2018-09/title.html¹

You’ll note I’m linking to /2018-09/ here and not /2018/09/. I don’t think yearly archives are very useful. Unless you post only a few articles a year, it’s rare you’re going to think your visitors would read an entire year’s posts at once. If a yearly archive page isn’t useful, it shouldn’t be part of your site’s directory structure. Every component of the URL should be navigable. If you use /2018/, a page should exist there.

Each monthly archive page should have a link at the top and bottom for older/newer that points to the previous/next month’s archive. It should use words like “older”/”newer” and not “previous”/”next” so that you understand where the link goes. Even better would be to label the link “August 2018.”

The /archives/ page should have links to each month’s archive, as well as any tag archives the site has. An even better archive page design might also pick out featured posts, maybe per-month or per-tag, and is a great place to show off other stuff you’re proud of. A straight, stuffy list of month after month after month isn’t very useful. Instead, try to think of a way to design the archive page to be the second-most interesting place on your site. The front page is for the new stuff. The archive page is for the good stuff. The very best you’ve ever published.


  1. There are good arguments as to whether the page itself should live at title.html, title (no file extension), or /title/. I might get into that in another post but I’m just thinking about archive organization for now.