When our own site started going intermittently unreachable — working fine, then timing out completely, then working again — the instinct is to assume the worst: a hack, a bad plugin, a broken server. We went through all three theories, in order, and none of them were right. Here’s the actual process that found the real cause, because the process matters more than the answer.
First theory: the caching plugin. We found a real, confirmed bug — a caching plugin’s config file still pointed to a Windows path from local development, throwing errors on every page load on the live Linux server. We fixed it. The outages continued.
Second theory: server configuration. We replaced .htaccess with a clean default. Still broke. We checked PHP memory and execution limits — generous, not the bottleneck. We checked the hosting account’s actual resource usage data — zero faults, minimal usage, all day. Every theory that pointed at “something on our server” came back clean, one at a time, with real evidence each time.
Third theory: the server error log itself. This was the most telling step. During an actual live outage, we checked the server’s own error log — and it was completely empty. No PHP errors, no application failures, nothing. That absence of evidence was itself the evidence: if the problem were happening at the application or server-configuration level, something would have logged it. Nothing did, which meant the requests weren’t reaching the server at all.
“The real cause wasn’t the site. It wasn’t the server. It was a home WiFi connection with a stale DNS cache — and it only showed up because someone finally tested from a fully independent network, not another device still riding the same WiFi.”
Why this matters beyond one outage
The instinct when something breaks is to look for the most dramatic explanation first — a hack, a breach, an attack. Most of the time, the real answer is more boring and requires ruling things out systematically rather than guessing. We didn’t get it right on the first theory, or the second. We got it right by testing each theory against real evidence and being willing to say “that wasn’t it” and move to the next one.
The takeaway
When something’s intermittently broken, the fastest path to the real answer isn’t the most alarming explanation — it’s the most disciplined elimination process. Test one variable at a time, demand real evidence before accepting a theory, and be willing to be wrong about your first three guesses.