HTML Tutorial
The Foundation of Every Web Page
Every HTML page on the internet - from a personal blog to a banking dashboard to whatever weird interactive thing you just found on the web - is built on the same four-tag skeleton, and I think this is one of those things that sounds almost too simple to be true until you open View Source on a random website and see that same structure sitting right there underneath all the complexity. The html tag, the head tag, the title tag, and the body tag aren't just conventions someone made up - they're what tells the browser how to treat your file, where to find the page's instructions, and what to actually show the person reading it. Getting these four right is the whole job before anything else starts.
1. The html Element: The Root of It All
The html tag wraps around literally everything else in your document and it's called the root element because everything branches out from it, kind of like how a family WhatsApp group has one admin and everything else flows down from there. The DOCTYPE declaration sits above it but isn't actually an HTML element - it's more of an instruction to the browser - so the html tag is genuinely the outermost container for all your actual content. There's not a lot to configure on the html tag itself except for one attribute that matters quite a bit.
1<!DOCTYPE html>
2<html lang="en">
3 <!-- All other HTML code goes inside here -->
4</html>Key Attribute
lang="en"- The lang attribute declares what language the page is written in - en for English, es for Spanish, fr for French, and so on. Screen readers use it to know how to pronounce words correctly, and search engines use it to decide which users in which countries should be served your page. It's a small thing to add and it has real consequences for accessibility and SEO if you leave it out.
2. The head Element: The Invisible Command Center
The head section is the part of an HTML document that never shows up on the actual page and I think this confuses people more than it should because it feels like you're writing things into a void - but everything in the head is still doing real work, just for the browser and search engines rather than the person reading the page. Think of it like the back of a restaurant: diners never see the kitchen but the kitchen is why the food exists at all. The head is where you tell the browser what character set to use, how to scale the page on phones, what the page title is, and where to find your CSS files.
1<head>
2 <meta charset="UTF-8">
3 <meta name="viewport" content="width=device-width, initial-scale=1.0">
4 <title>Your Page Title Here</title>
5 <meta name="description" content="A free guide to learning HTML basics.">
6 <link rel="stylesheet" href="css/styles.css">
7</head>What goes inside the head?
<title>- The page title - covered in its own section below.<meta charset="UTF-8">- Defines the character encoding for the page. UTF-8 covers basically every character from every human language and is what you should always use. Skip this and you'll eventually have a page where apostrophes show up as weird box symbols and you'll spend longer than you should figuring out why.<meta name="viewport" content="width=device-width, initial-scale=1.0">- This one line is the difference between a page that looks correct on a phone and a page that renders as a tiny zoomed-out nightmare on mobile. It tells the browser to set the page width to match the device screen. If you're ever looking at a site on your phone and it's showing you a desktop-sized layout that you have to pinch-zoom around, someone forgot this tag.<meta name="description" content="A description of your page">- This is the text snippet that shows up underneath your page title in Google results. It doesn't directly affect your ranking but it affects whether people click, so writing a clear honest description of what the page contains is worth doing.<link rel="stylesheet" href="styles.css">- Links your HTML file to an external CSS file so the browser knows where to find your styles.<script src="script.js"></script>- Loads a JavaScript file. You'll often see this at the bottom of the body rather than the head for performance reasons - the browser loads things in order and putting scripts at the end means the visible content loads first.
3. The title Element: Your Page's Identity
The title tag defines the title of your page and it's doing three separate jobs at once which I didn't fully appreciate for a long time: it's the text in the browser tab, it's what gets saved when someone bookmarks the page, and it's what appears as the big blue clickable link in Google search results. That last one is the reason the title tag gets talked about so much in SEO - the title tag is one of the strongest signals you can give a search engine about what your page is actually about, and a well-written title with the right keywords in it can meaningfully change how often your page gets clicked when it shows up in results.
1<title>What is HTML? A Beginner's Guide | WebDev Basics</title>Best Practices
Length- Keep it under 60 characters or Google will cut it off mid-sentence in the results, which looks unprofessional and loses the end of whatever you were trying to say.Keywords- Put your most important keywords toward the front because search engines weight the beginning of the title more heavily, and users scanning results read left to right.Descriptive- Every page on your site should have a different title that actually describes what that specific page contains - not just your site name repeated on every page.Brand- Putting your brand or site name at the end of the title, separated by a pipe or dash, is a common pattern that keeps it visible without pushing your actual keywords further back.
4. The body Element: The Visible Canvas
Everything the person actually sees when they load your page lives inside the body tag - text, images, buttons, navigation, videos, forms, all of it - and after all the abstract configuration happening in the head, the body is refreshingly straightforward in that sense. Whatever you put in here gets rendered on screen. My first few HTML pages were just a body full of h1 and p tags with no head section at all, and they worked fine visually, which is the browser being forgiving again, but they had no title and no character encoding and would have fallen apart the moment anyone tried to read them on a phone. The body is where you spend most of your time as a front end developer, stuffing it with every heading, paragraph, link, and image element the page needs.
1<body>
2 <header>
3 <h1>Welcome to My Website</h1>
4 <nav>...</nav>
5 </header>
6 <main>
7 <p>This is a paragraph of text that users can read on the page.</p>
8 <img src="images/hero.jpg" alt="A descriptive alt text">
9 <a href="about.html">Learn more about me</a>
10 </main>
11 <footer>...</footer>
12</body>Putting It All Together
Here's what a complete, properly structured HTML5 document looks like with all four elements in place - this is the template most developers start from every time they make a new page, and it's worth memorizing or keeping somewhere handy until it becomes automatic.
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Your Awesome Page Title | Your Brand</title>
7 <meta name="description" content="A concise and engaging description of this specific page.">
8 <link rel="stylesheet" href="styles.css">
9</head>
10<body>
11 <h1>This is a Main Heading</h1>
12 <p>This is a paragraph. All visible content lives in the body.</p>
13 <!-- More content goes here -->
14 <script src="scripts.js"></script>
15</body>
16</html>Why This Structure Actually Matters
You can build a page without most of this and Chrome will probably render it anyway - browsers are designed to be forgiving and they'll make their best guess about what you meant - but skipping the proper structure creates real problems that are annoying to trace back to their cause. The lang attribute on the html tag is what screen readers use to pronounce your content correctly for people who depend on them. The charset meta tag is what stops your apostrophes and quote marks from turning into garbled characters. The viewport meta tag is the entire reason your page doesn't render as a tiny illegible column on a mobile screen. The title and meta description are the first thing Google reads about your page before deciding how to rank it and what snippet to show. None of these feel urgent when you're looking at a page that visually looks fine in your browser, but they matter a lot for everyone who isn't you on a desktop with Chrome, which is most of the internet.
You've Built the Frame
These four elements - html, head, title, body - are the skeleton that every single webpage is built on, and now that you know what each one does and why it's there, you won't ever look at an HTML file the same way. The head is the part the browser reads but the user never sees, the body is everything the user actually sees, and the html tag is just the container holding both of them. Once this structure is automatic in your fingers you can start filling the body with all the actual tags that make pages interesting - headings, links, images, lists, forms - and the skeleton just quietly does its job underneath everything else