Bird
Raised Fist0
HTMLmarkup~8 mins

Head and body sections in HTML - Performance & Optimization

Choose your learning style10 modes available
Performance: Head and body sections
MEDIUM IMPACT
This affects the critical rendering path by controlling when and how resources load and when content is displayed.
Including scripts and styles in the head to load page resources
HTML
<head>
  <link rel="preload" href="styles.css" as="style">
  <link rel="stylesheet" href="styles.css">
  <script src="large-script.js" defer></script>
</head>
<body>
  <h1>Welcome</h1>
</body>
Using preload and defer allows styles to load early and scripts to load without blocking rendering.
📈 Performance GainReduces render-blocking, improving LCP by 200-400ms
Including scripts and styles in the head to load page resources
HTML
<head>
  <script src="large-script.js"></script>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <h1>Welcome</h1>
</body>
Blocking scripts and large CSS in the head delay rendering of visible content, increasing load time.
📉 Performance CostBlocks rendering until scripts/styles load, increasing LCP by 300-500ms
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Blocking scripts/styles in headMinimal DOM nodesMultiple reflows due to delayed stylesHigh paint cost due to late style application[X] Bad
Preload CSS and defer scriptsMinimal DOM nodesSingle reflow after styles loadLower paint cost with early style application[OK] Good
Rendering Pipeline
The browser parses the head first, loading metadata, styles, and scripts. Blocking scripts/styles delay layout and paint. The body content renders after head resources are ready.
→HTML Parsing
→Style Calculation
→Layout
→Paint
⚠️ BottleneckBlocking scripts/styles in the head delay Style Calculation and Layout stages.
Core Web Vital Affected
LCP
This affects the critical rendering path by controlling when and how resources load and when content is displayed.
Optimization Tips
1Put only essential metadata and critical CSS in the head.
2Use defer or async attributes on scripts to avoid blocking rendering.
3Preload critical resources to speed up style and script loading.
Performance Quiz - 3 Questions
Test your performance knowledge
What is the main performance issue with placing large scripts directly in the head without defer or async?
AThey block HTML parsing and delay rendering.
BThey increase the number of DOM nodes.
CThey reduce the size of the CSS file.
DThey improve the speed of image loading.
DevTools: Performance
How to check: Record a page load and look for long tasks blocking the main thread during head parsing. Check if scripts/styles block rendering.
What to look for: Look for 'Long Tasks' and 'Blocking Time' in the waterfall; early style and script loading without blocking indicates good performance.

Practice

(1/5)
1. What is the main purpose of the <head> section in an HTML document?
easy
A. To hold information for the browser like title and styles, not visible content
B. To display the main content visible to users
C. To create navigation menus
D. To add images and videos to the page

Solution

  1. Step 1: Understand the role of the <head> section

    The <head> contains metadata like the page title, links to stylesheets, and scripts, which the browser uses but does not show directly.
  2. Step 2: Compare with <body> section

    The <body> holds visible content like text and images, unlike the <head> which is for behind-the-scenes info.
  3. Final Answer:

    To hold information for the browser like title and styles, not visible content -> Option A
  4. Quick Check:

    <head> = browser info, not visible [OK]
Hint: Head is for browser info, body is for visible content [OK]
Common Mistakes:
  • Thinking <head> shows content on the page
  • Confusing <head> with <body>
  • Believing <head> holds images or text visible to users
2. Which of the following is the correct structure for an HTML document's head and body sections?
easy
A. ......
B. ......
C. ......
D. ......

Solution

  1. Step 1: Recall the correct order of HTML tags

    The <html> tag wraps the whole document. Inside it, <head> comes first, then <body>.
  2. Step 2: Check each option's tag order

    <html><head>...</head><body>...</body></html> correctly places <head> before <body> inside <html>. Others have wrong order or nesting.
  3. Final Answer:

    <html><head>...</head><body>...</body></html> -> Option A
  4. Quick Check:

    HTML structure = html > head > body [OK]
Hint: Head always before body inside html tag [OK]
Common Mistakes:
  • Placing body before head
  • Nesting html inside head or body
  • Missing closing tags
3. What will be displayed in the browser when this HTML code runs?
<html>
  <head>
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome!</h1>
  </body>
</html>
medium
A. The text 'My Page' as a heading on the page
B. The text 'Welcome!' as a heading on the page
C. Both 'My Page' and 'Welcome!' as headings on the page
D. No visible text on the page

Solution

  1. Step 1: Identify visible content in <body>

    The <body> contains <h1>Welcome!</h1>, which is visible on the page.
  2. Step 2: Understand <title> role in <head>

    The <title> sets the browser tab's title, not page content.
  3. Final Answer:

    The text 'Welcome!' as a heading on the page -> Option B
  4. Quick Check:

    Body content visible, title shown in tab [OK]
Hint: Title shows in tab, body shows on page [OK]
Common Mistakes:
  • Thinking title text appears on page
  • Expecting both title and body text visible
  • Ignoring difference between head and body
4. Identify the error in this HTML snippet:
<html>
  <head>
    <title>Page</title>
  <body>
    <h1>Hello</h1>
  </body>
</html>
medium
A. Using <title> inside <body>
B. Missing closing <html> tag
C. No errors, code is correct
D. Missing closing <head> tag before <body>

Solution

  1. Step 1: Check tag closures in the snippet

    The <head> tag is opened but not closed before <body> starts, which is invalid.
  2. Step 2: Confirm other tags

    The <html> tag is properly closed, and <title> is correctly inside <head>.
  3. Final Answer:

    Missing closing <head> tag before <body> -> Option D
  4. Quick Check:

    Head must close before body starts [OK]
Hint: Close head before starting body [OK]
Common Mistakes:
  • Forgetting to close head tag
  • Thinking title can be inside body
  • Ignoring tag nesting rules
5. You want to add a CSS style to change the background color of the page. Where should you place the <style> tag and why?
hard
A. At the end of the <body> section, to load styles last
B. Inside the <body> section, so styles apply only to visible content
C. Inside the <head> section, so styles load before the page content
D. Outside both <head> and <body> sections, for global effect

Solution

  1. Step 1: Understand where styles belong

    CSS styles are usually placed inside <style> tags within the <head> so the browser loads them before showing content.
  2. Step 2: Evaluate other options

    Placing styles in <body> or outside tags is invalid or causes delayed styling, which is not best practice.
  3. Final Answer:

    Inside the <head> section, so styles load before the page content -> Option C
  4. Quick Check:

    Styles in head load early for proper display [OK]
Hint: Put styles in head for early loading [OK]
Common Mistakes:
  • Placing style tags inside body
  • Leaving style tags outside html structure
  • Loading styles too late causing flicker
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard