{"id":1051,"date":"2025-09-28T09:31:15","date_gmt":"2025-09-28T09:31:15","guid":{"rendered":"https:\/\/james-batchelor.com\/?p=1051"},"modified":"2025-09-28T09:31:15","modified_gmt":"2025-09-28T09:31:15","slug":"10-years-of-website-logs-and-the-resulting-nostalgia-trip","status":"publish","type":"post","link":"https:\/\/james-batchelor.com\/index.php\/2025\/09\/28\/10-years-of-website-logs-and-the-resulting-nostalgia-trip\/","title":{"rendered":"10 years of website logs, and the resulting nostalgia trip"},"content":{"rendered":"\n<p>This week I noticed a little milestone; my current iteration of website logs had clicked over to 10 years\u2019 worth of accumulated statistics.<\/p>\n\n\n\n<p>While I\u2019ve been self-hosting websites since 2002, it wasn\u2019t until 2015 that I started making a conscious effort to backup and retain web logs during server reinstalls and migrations.<\/p>\n\n\n\n<p>To create statistics from these logs, I\u2019ve been using Analog since around 2004. A simple parser that dates back to the early days of the internet and remains wholly unchanged for many decades.<\/p>\n\n\n\n<p>This milestone prompted a nostalgia dive into the archives to see how far back I can go, uncovering Analog output from 2004, and an historic look on how the internet has changed over the last 20 years\u2026<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"157\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image.png\" alt=\"\" class=\"wp-image-1053\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image.png 695w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-300x68.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/figure>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">History<\/h2>\n\n\n\n<p>Since getting online in the late 90\u2019s, I had always found the concept of networks and being able to access servers and web content from anywhere in the world absolutely fascinating.<\/p>\n\n\n\n<p>I dabbled in html in the early years, creating my stake on the internet using Yahoo GeoCities. So, when given the opportunity to build a website for my friend\u2019s music band, I wanted to create something bespoke; something that included social interaction, but being fully integrated to the website and importantly, without adverts.<\/p>\n\n\n\n<p>Back then, to do this for free would involve creating a guestbook on a 3<sup>rd<\/sup> party site such as Lycos, among the other web tools that were rife at the time. Hosting dynamic content was relatively involved and not inexpensive, so providers such as Lycos would offer to do this for you, and support it with adverts. I\u2019ve touched on this a while back following the end of Lycos. LINK<\/p>\n\n\n\n<p>My solution, host the web server myself! The rational was that using my own server I could serve dynamic content and fully integrate it into the website. The catalyst was recently getting an \u201calways on\u201d internet connection in the form of cable internet in 2001, and that my first PC was made obsolete by the introduction of my second PC.<\/p>\n\n\n\n<p>In 2002, using my first PC, Windows NT 4.0 Server, a dynamic DNS service, and purchasing a Netgear RT311 router, I started self-hosting.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/server.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"240\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/server.jpg\" alt=\"\" class=\"wp-image-1054\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/server.jpg 320w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/server-300x225.jpg 300w\" sizes=\"auto, (max-width: 320px) 85vw, 320px\" \/><\/a><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Logging<\/h3>\n\n\n\n<p>The thrill of self-hosting came from the IIS logs, constantly reviewing them to see connections from around the world requesting files from the box in the corner of my room.<\/p>\n\n\n\n<p>Analog, the web log parser came along as an evolution to this, allow consolidation of the logs into a single web page for easy reference and wonder. The more the logs grew, the more the statistics grew and the trends started to develop and reinforce themselves.<\/p>\n\n\n\n<p>Analog has been around since 1995 and is largely unchanged, but still receives periodic maintenance updates from the <a href=\"https:\/\/github.com\/c-amie\/analog-ce\" target=\"_blank\" rel=\"noreferrer noopener\">C:Amie Edition<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10 Year Trend<\/h2>\n\n\n\n<p>Starting with the 10 year view, these are my points of interest for the modern internet, from this website\u2019s perspective\u2026<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Traffic exploded during lockdown<\/h3>\n\n\n\n<p>Page requests and visits really took off in 2020, seeing over a five-fold increase in traffic from June 2020. Its unsure if it was a popular post, or the Google algorithm looked favourably on my site, but people sure had a lot of spare time around this period.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"368\" height=\"230\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-1.png\" alt=\"\" class=\"wp-image-1055\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-1.png 368w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-1-300x188.png 300w\" sizes=\"auto, (max-width: 368px) 85vw, 368px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Self-hosting shielded bot access<\/h3>\n\n\n\n<p>I\u2019ve recently moved away from hosting directly from home (more in a future post) and since moving presence to a commercial VPS service I\u2019ve seen an uptick in visits. This should be good news, but a deeper look at the logs and the increased traffic is from malicious bots, targeting the common WordPress vulnerabilities. These bots must target IP ranges of established hosting providers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"466\" height=\"114\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-2.png\" alt=\"\" class=\"wp-image-1056\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-2.png 466w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-2-300x73.png 300w\" sizes=\"auto, (max-width: 466px) 85vw, 466px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Domains mean nothing anymore<\/h3>\n\n\n\n<p>Back when I started viewing Analog reports, the domain report was my way of gauging where in the world a visitor is from. Since then, the boundaries of domains have blurred drastically, and more used for vanity rather that identification. For example, have I really had 13722 visits from .vn (Vietnam)?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"427\" height=\"395\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-3.png\" alt=\"\" class=\"wp-image-1057\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-3.png 427w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-3-300x278.png 300w\" sizes=\"auto, (max-width: 427px) 85vw, 427px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Cloudflare ruins logs<\/h3>\n\n\n\n<p>While hosting from home, I used Cloudflare as a proxy for a thin veil of security against exposing my IP. This had a detriment to the logs in the form of caching, where Cloudflare would serve a page rather than my server, and so not getting the log of the transaction. This caching also did register as a noticeable drop in traffic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"251\" height=\"111\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-4.png\" alt=\"\" class=\"wp-image-1058\"\/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Bots, bots everywhere<\/h3>\n\n\n\n<p>Back in 2004, I only need worry about web crawlers scraping and indexing the site. Today, anyone can use a cheap VPS or commercial VPN service to anonymously attack and brute force a site it has become an epidemic. Now, my highest failure reports come from other hosting services.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"344\" height=\"152\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-5.png\" alt=\"\" class=\"wp-image-1059\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-5.png 344w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-5-300x133.png 300w\" sizes=\"auto, (max-width: 344px) 85vw, 344px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Operating Systems<\/h3>\n\n\n\n<p>Finally, did someone really try to visit this site on a RISC OS system or even an Amiga?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"195\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-6.png\" alt=\"\" class=\"wp-image-1060\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-6.png 311w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-6-300x188.png 300w\" sizes=\"auto, (max-width: 311px) 85vw, 311px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">20 Year Snapshot<\/h2>\n\n\n\n<p>Turning the clock back 20 years to my hosting infancy, I found an old report buried in a website backup, again, parsed by Analog.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"113\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-7.png\" alt=\"\" class=\"wp-image-1061\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-7.png 786w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-7-300x43.png 300w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-7-768x110.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/figure>\n\n\n\n<p>Granted, this is a snapshot of from a much-reduced sample period, but in honesty, believe the real human visitor count is on par to what this website is now. Albeit catering to very localised content.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hourly trends were what you expect.<\/h3>\n\n\n\n<p>This may be highly skewed by the localised content of the site at the time, but what struck me was the predictability of when users were visiting the site. With a sharp drop during the early hours and peaking in the evening. An indication that these were real visitors.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"394\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-8.png\" alt=\"\" class=\"wp-image-1062\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-8.png 494w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-8-300x239.png 300w\" sizes=\"auto, (max-width: 494px) 85vw, 494px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">File requests were easier to understand.<\/h3>\n\n\n\n<p>A benefit of creating the website yourself. With the exception of forums, off the shelf applications such as WordPress were yet to materialise. Therefore, the file request reports were easier to decipher and to identify popular sections.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"199\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-9.png\" alt=\"\" class=\"wp-image-1063\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-9.png 403w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-9-300x148.png 300w\" sizes=\"auto, (max-width: 403px) 85vw, 403px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Data transfer was at a premium.<\/h3>\n\n\n\n<p>Self-hosting relied on using your home connection to serve pages to the world, and given that most home internet connections are asynchronous, you had to make the website as efficient as possible.<\/p>\n\n\n\n<p>During this snapshot, while I had a modest 600kbps downstream bandwidth, the upstream utilised by visitors was just 128kbps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"242\" height=\"138\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-10.png\" alt=\"\" class=\"wp-image-1064\"\/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Operating Systems<\/h3>\n\n\n\n<p>More nostalgia than a trend, but this complete list of OS visitors takes you back.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"306\" height=\"226\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-11.png\" alt=\"\" class=\"wp-image-1065\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-11.png 306w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2025\/09\/image-11-300x222.png 300w\" sizes=\"auto, (max-width: 306px) 85vw, 306px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>While a delightful look back, both at the web logs and the website files the discovery was bundled with. It makes you want to go back to those simpler times.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week I noticed a little milestone; my current iteration of website logs had clicked over to 10 years\u2019 worth of accumulated statistics. While I\u2019ve been self-hosting websites since 2002, it wasn\u2019t until 2015 that I started making a conscious effort to backup and retain web logs during server reinstalls and migrations. To create statistics &hellip; <a href=\"https:\/\/james-batchelor.com\/index.php\/2025\/09\/28\/10-years-of-website-logs-and-the-resulting-nostalgia-trip\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;10 years of website logs, and the resulting nostalgia trip&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6],"tags":[416,38,417],"class_list":["post-1051","post","type-post","status-publish","format-standard","hentry","category-servers","category-websites","tag-analog","tag-home-server","tag-weblog"],"_links":{"self":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts\/1051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/comments?post=1051"}],"version-history":[{"count":2,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts\/1051\/revisions"}],"predecessor-version":[{"id":1066,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts\/1051\/revisions\/1066"}],"wp:attachment":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/media?parent=1051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/categories?post=1051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/tags?post=1051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}