The Slow Mirror: Recapturing a Decaying Website with a Single Script
I recently found myself chasing a ghost. It was the official website for a community arts project that had dissolved five years ago, a fragile collection of event photos, participant stories, and local history. When I clicked a link a colleague had sent me, I was met not with a vibrant archive, but with a blank page. The domain had expired, and a generic parking page had taken its place. The ghost, it seemed, had vanished.
But digital ghosts often leave footprints. My first instinct, like many, was to check the Wayback Machine. I pasted the URL and held my breath. The crawler had indeed visited the site, but its captures were fragmented, partial. It had caught the homepage a few times, but the ‘About’ page was a mosaic of broken images, and the ‘Gallery’ directory returned nothing but 404 errors. The archive had tried, but the ghost was too quick, too ephemeral for its broad nets. I needed a more focused, deliberate approach.
This is where the technique of the ‘slow mirror’ comes in. Instead of relying on a massive, global service that might miss the deeper corners of a small site, you become the archivist. The tool for this is ‘wget’, a humble and powerful command-line program that’s likely already on your computer or easily installed. Unlike a frantic screenshot, wget is designed for respectful replication. It doesn’t just save a page; it can follow links, download the associated images, style sheets, and scripts, and recreate the directory structure on your own hard drive.
The specific command that became my key was a simple one, but its components are a mantra for digital preservation. I opened a terminal and typed: wget --mirror --page-requisites --convert-links --wait=5 https://example.com. Let’s break down this quiet incantation. --mirror tells wget to recursively follow every link it finds, building a complete copy. --page-requisites is crucial; it grabs every resource—every JPEG, every CSS file—needed to display the page properly offline. --convert-links is the act of care; it updates the links in the downloaded pages to point to your local files, ensuring the mirror works even when the original is gone.
But the most important part, the element that makes it a ‘slow’ mirror, is --wait=5. This instructs the script to pause for five seconds between requests. It is a gesture of goodwill, a way of saying to the struggling server, “I am not a bot seeking to overwhelm you; I am a scribe, patiently copying your words before they fade.” This single parameter transforms the act from one of extraction to one of preservation.
I pressed enter, and the script began its quiet work. Line by line, it logged its progress, pulling down the HTML, the styles, the images of smiling faces from a forgotten festival. It took nearly an hour, but when it was done, I had a perfect, browsable copy of the site in a folder on my desktop. The ghost was no longer a phantom in the machine; it was a tangible record, safe from the next domain expiration. This single, simple script is a powerful act of digital stewardship, a way to personally ensure that the small, fragile pieces of our shared history don’t simply blink out.
Notes & further reading
A few pages I came back to while writing this: