The short version is: it’s fixed!
If you have any currently-cached Leif & Thorn pages from the past week, you’ll still have a stuck version. But once you reload them — or if you clear your whole cache one more time — it should be smooth sailing from here on out.
And if you’re on Reddit, please go give some upvotes/awards to this comment, which provided the pivotal clue that helped catch the culprit.
Technical details, for the curious:
So the problem, it turns out, was in the HTTP response headers.
(Sidenote: I’m not enough of a techie that I knew any of this beforehand. What you’re reading here is the best of my understanding based on a couple days of highly-motivated googling. Experienced coders, feel free to jump in if something isn’t quite right.)
You can check a page’s response headers in your browser by using the Inspect feature (or whatever it’s called — usually something like that).
Choose the “Network” tab, load a page, click the HTML document in the list it gives you (it’ll be at the top), then look under “Headers”.
Here’s what it looked like for Leif & Thorn (the browser is a Google Chrome fork):
The problem line here is:
This tells the browser “If you have a cached version of the page, as long as it’s no older than 15552000 seconds, it’s up-to-date! No need to load a new one.”
I won’t make you do the math — that’s 6 months.
Hitting refresh is a manual way of telling your browser, “no, actually, load the new page anyway,” so that would force it to fetch an updated version. But the updated version would also have a header that told it “this totally counts as a current version for the next 6 months.”
(Which is why you have to clear out your cached pages one last time. Then you’ll replace it with a version where the header says “max-age=10”.)
The source of this exciting and helpful instruction was the .htaccess file, which is a configuration file in the top-level folder of your website. It tells browsers lots of under-the-hood things, like “redirect URL X to URL Y” and “forbid access to this spammer’s IP.”
And now, some process at SiteGround had auto-updated .htaccess in the /leifandthorn directory (and the one in /catperson) with a list of caching rules for different files.
Including this rule:
ExpiresByType text/html “access plus 6 months”
That has now been changed to “10 seconds”. I touched up some of the rules for other filetypes too, and I’m checking .htaccess files in other subdirectories to make sure they’re all in line.
The overzealous SiteGround caching process is currently disabled. I’m not switching it back on until/unless I feel sure it won’t do this again.
…in the meantime, I’m also un-recommending SiteGround as a hosting site for webcomics. Not gonna move my own site, because the issue did get fixed, but not every artist has the time/energy/code-familiarity to wrestle through this kind of thing in the first place! And you shouldn’t have to, either.
Readers, if you have any further issues after refreshing/cache-clearing, please let me know!
And, well. Since all this started before I launched the Volume 2 Kickstarter, casual readers might not even have seen any updates about it yet. So this would be a great time to help spread the news by sharing the link.