Somewhere out there, a perfectly functional site still opens with a doctype that references a DTD on a W3C server, declares itself HTML 4.01 Transitional, and has done so since a different decade. If that describes a project of yours, the first thing to say is: it probably still works. The second is that upgrading is far less frightening than the inertia suggests.
People do not cling to HTML 4 out of love. They cling out of legitimate caution:
The living standard was designed to be backwards compatible. Nearly all valid HTML 4 markup is still valid today. Your <p>, <table>, <a>, and <form> did not change. In the vast majority of cases, “moving off HTML 4” is a one-line edit at the top of the file:
<!-- before -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!-- after -->
<!DOCTYPE html>
That single change swaps a Transitional doctype — which can nudge browsers toward almost-standards behavior — for a clean, unambiguous standards-mode trigger. Everything below it keeps working.
<main>, <video>, and new input types incrementally.You do not migrate to the living standard the way you migrate a database. You change one line, confirm nothing broke, and then modernize at whatever pace suits you.
Change the doctype. Load the site and click around. Run a validator and fix the handful of genuine errors it surfaces — usually a missing alt or an obsolete attribute like bgcolor. Then leave it. There is no obligation to adopt every new element the same afternoon. The point is to stop standing on a frozen version of a standard that has moved on. The risk of the move is small; the cost of staying is a slow accumulation of “why does this behave oddly” bugs that standards mode would simply not have.