On October 1 we renamed the Government section of The Farmington Mercury. We called it "Town Hall." Friendlier, plainer, the word people actually use.
Tap it, and the first thing you saw was a federal sentencing.
That one's on us. The name was better. We just put it up before anybody looked at what was sitting behind it. Nothing behind it had changed.
Why nobody cleans this up
Fixing it meant moving stories, and moving a story is scarier than it sounds.
Every story on the web has an address, and part of the address is the section it's filed under. Move the story to a different section and the address changes. Every link anybody ever made to the old one breaks, unless you set up forwarding. The one in an email. The one in a search result. The one in another story.
That's a pretty good reason to leave a misfiled story alone. It's also how you end up with school board stories filed under Government for years.
First we read everything
Farmington was the first of five. We were giving all five of our news sites plainer section names. After Farmington went sideways, we stopped and read before we touched anything else.
Every published story, on every site, by its headline. We moved nothing while we did it. That was 727 stories on Farmington, 505 on The Charlotte Mercury, 219 on Strolling Ballantyne, 79 on Strolling Firethorne and 26 on Fourth Ward Charlotte.
On Farmington alone, 162 were in the wrong section. Almost all of it was old, from 2024 and 2025. Most of those got moved. Most of the rest were old house listings, which came down instead.
Then we built the forwarding
Before one story moved, we built the forwarding.
Here's how it works. Somebody asks for a story at an address where it doesn't live anymore. The site goes looking for that story anywhere in the same publication. If it finds exactly one, it sends the reader along to the right address, permanently. Think of a forwarding order at the post office. If it doesn't, the reader gets the regular not-found page.
We tried it on one story first. A ribs recipe on Strolling Ballantyne. The new address loaded, the old one forwarded, and then we started the real work.
I looked at every batch as a list before anything in it moved. Farmington took 121 moves. Ballantyne took 45, Charlotte 26, Firethorne 11. Fourth Ward didn't need any. That's 203.
Every one got logged, old section next to new section. Every one got checked on the live site, both ways. New address loads. Old address forwards.
We also took 42 pages down completely. Most were Farmington house listings from 2024. We unpublished them, we didn't delete them, so any of them can come back. Three were duplicates of stories that are still up, and their old addresses forward to the copy we kept.
The leftovers
Some stories didn't have a right place to go. Opinion columns. State politics. Things that were never about the town in the first place.
We could have jammed them under "Town Hall" or "Around Town." That would have been the same mistake all over again. So they got their own sections. The one for stories that aren't about the town is called The Junk Drawer.
Why this was one job and not five
If these were five separate websites, this would have been five projects. Five rounds of setting up forwarding, and five chances to do it a little differently each time.
Ours all sit in one database and run on the same software. So we wrote the forwarding once, and every site had it the minute it went live. The next site we add will have it on day one.
A section name is a promise about what's behind it. We changed the names first and checked the promise second. Wrong order. The forwarding is what let us go back and make it true.
This is No. 18 in We Built Our Own, a Mercury Local series on building our own publishing system. Previous: One pass, not three.
