Obsolete HTML Code
After the introduction of the HTML5 web standards many practices have become obsolete and because many developers create new sites copying the old ones they reproduce the same errors over and over again. Most of these won't cause any errors but it's recommended to avoid them.
Outdated tags:
i, b , strike, u - use <em>, <strong>, <del>, <span> (text-decoration: underline) instead
acronym - use <abbr> instead
tt, xmp - for computer code use <code> and for preformatted text use <pre>
font, basefont - use CSS styles to control typography.
applet - <embed> or <object> is preferred
bgsound - use <audio> for sound
Further obsolete HTML tags: big, blink, center, dir, marquee, multicol, nextid, nobr, noembed, plaintext, spacer, tt.
The good news is we don't have to learn all these because there's a website which shows us which browsers support certain tags: caniuse.com
Apart from the tags there are many tag attributes which have become obsolete, though the elements are still in use.
For example the a (anchor) tag doesn't support the following attributes anymore: charset, coords, datafld, datasrc, methods, name, urn, shape.
Doctype declaration
According to the standards, each HTML document requires a doctype declaration which begins the HTML document and tells a validator which version of HTML to use in checking the document's syntax.
Old declaration (useless):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Valid HTML5 declaration to use:
<meta charset="UTF-8" />