archive about

why blog pagination URL structure needs restructuring

Blogs are read in reverse chronological order, but their archive should be numbered like a diary, in chronological order. Your /page/1 should show the oldest posts, not the newer ones.

I was listening to ATP, where Casey talks about his new blog and mentions that he hasn't implemented pagination yet, and I remembered an old post of mine --which I will rewrite here, now that I'm older and wiser, with a few additions and improvements.

The most popular convention on how to represent a blog pagination URL is that the home page is page #1. These are the latest, let’s say, 10 articles. Then you have index page #2, where the next 10 most recent articles appear, and so on.

It sounds reasonable, but it’s quite impractical: Every time you publish a new article, all index pages change content! The last article of index page #1 goes to page #2. The last article of page #2 goes to page #3, etc.

As a result

The funny thing? No matter what number I assign to the page containing the very first 10 posts of the blog I wrote back in 2004, they have been the same for 10 years now, and will continue to be the same for as long as my blog exists (unless I decide to delete one of the first 10 posts). So, why not make this index page #1?

The way I see it, the very first post of your blog should be on index page #1. The last ones on index page, say, #100. As you add posts, the pages increment. But the older index pages don’t change.

This would cause only one inconsistency: if you have 23 posts, with 10 posts per page, index page #3 will have only 3 posts (21-23), which is not nice. A workaround could be a rule that no index page should have fewer than, say 6 posts: index page #1 has posts 1-10, page #2 has posts 11-23 (13 posts) and when you get to the 26th post, then index page #2 has (11-20) and index page #3 (the homepage) posts 21-26.

In short: blogs are read in reverse chronological order, but their archive should be numbered like a diary, in chronological order. If you want to read the latest entry, go to the last page, that's how we've always done it. And, by the way, thanks to technology, when you visit the blog's homepage, it will already be "open" in the last page.