Building a Landing Page
Create landing pages that convert! Learn how to build professional marketing landing pages with hero sections, compelling CTAs, social proof, and conversion-focused design.
Why Landing Pages Matter
Landing pages are focused, single-purpose pages designed to convert visitors into customers, subscribers, or leads. Unlike regular web pages, landing pages have one clear goal and remove all distractions.
Key benefits:
- Higher conversion rates — Focused message, clear CTA
- Better ad performance — Targeted pages for campaigns
- Measurable results — Track specific goals
- A/B testing — Easy to test variations
- Cost-effective — Don’t need entire website
Anatomy of a Landing Page
A successful landing page includes these essential elements:
- Hero Section — Headline, subheadline, CTA
- Value Proposition — Why your offer matters
- Social Proof — Testimonials, logos, stats
- Features/Benefits — What users get
- Call-to-Action — Primary conversion button
- Form — Capture leads (if applicable)
- Footer — Minimal, trust signals only
Let’s build each section!
Hero Section with Strong CTA
The hero section is the first thing visitors see—make it count:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Master Web Development in 30 Days | Online Course</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.hero {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 40px 20px;
}
.hero-content {
max-width: 900px;
}
.hero h1 {
font-size: 3.5rem;
line-height: 1.2;
margin-bottom: 20px;
font-weight: 800;
}
.hero p {
font-size: 1.5rem;
margin-bottom: 40px;
opacity: 0.95;
line-height: 1.5;
}
.cta-button {
display: inline-block;
background: white;
color: #667eea;
padding: 18px 40px;
font-size: 1.25rem;
font-weight: bold;
text-decoration: none;
border-radius: 50px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
transition: all 0.3s;
}
.cta-button:hover {
transform: translateY(-3px);
box-shadow: 0 15px 40px rgba(0,0,0,0.3);
}
.hero-subtext {
margin-top: 20px;
font-size: 1rem;
opacity: 0.8;
}
@media (max-width: 768px) {
.hero h1 {
font-size: 2.5rem;
}
.hero p {
font-size: 1.25rem;
}
}
</style>
</head>
<body>
<section class="hero">
<div class="hero-content">
<h1>Master Web Development in 30 Days</h1>
<p>
Go from beginner to job-ready with our intensive bootcamp.
Learn HTML, CSS, JavaScript and build real projects.
</p>
<a href="#signup" class="cta-button">
Start Learning Today
</a>
<p class="hero-subtext">
✓ No credit card required ✓ 14-day money-back guarantee
</p>
</div>
</section>
</body>
</html>Hero section best practices:
- Clear headline — State the main benefit immediately
- Supporting copy — Explain in one sentence
- Strong CTA — Actionable, benefit-focused button
- Trust signals — No credit card, free trial, guarantee
- Visual hierarchy — Guide eye to CTA
Social Proof Section
Build credibility with testimonials, logos, and statistics:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Social Proof Section</title>
<style>
.social-proof {
padding: 80px 20px;
background: white;
text-align: center;
}
.stats {
max-width: 1000px;
margin: 0 auto 60px auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 40px;
}
.stat {
padding: 20px;
}
.stat-number {
font-size: 3rem;
font-weight: bold;
color: #4CAF50;
margin-bottom: 10px;
}
.stat-label {
font-size: 1.1rem;
color: #666;
}
.testimonials {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
}
.testimonial {
background: #f8f9fa;
padding: 30px;
border-radius: 10px;
text-align: left;
position: relative;
}
.testimonial::before {
content: '"';
font-size: 4rem;
color: #e0e0e0;
position: absolute;
top: 10px;
left: 20px;
}
.testimonial-text {
margin-bottom: 20px;
line-height: 1.6;
color: #333;
position: relative;
z-index: 1;
}
.testimonial-author {
display: flex;
align-items: center;
gap: 15px;
}
.author-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
object-fit: cover;
}
.author-name {
font-weight: bold;
color: #333;
}
.author-title {
font-size: 0.9rem;
color: #666;
}
.company-logos {
margin-top: 60px;
padding-top: 60px;
border-top: 1px solid #e0e0e0;
}
.company-logos h3 {
margin-bottom: 40px;
color: #666;
font-weight: normal;
font-size: 1.1rem;
}
.logos {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 40px;
opacity: 0.6;
}
.logos img {
height: 40px;
filter: grayscale(100%);
transition: all 0.3s;
}
.logos img:hover {
filter: grayscale(0%);
opacity: 1;
}
</style>
</head>
<body>
<section class="social-proof">
<!-- Statistics -->
<div class="stats">
<div class="stat">
<div class="stat-number">10,000+</div>
<div class="stat-label">Students Enrolled</div>
</div>
<div class="stat">
<div class="stat-number">4.9/5</div>
<div class="stat-label">Average Rating</div>
</div>
<div class="stat">
<div class="stat-number">95%</div>
<div class="stat-label">Job Placement Rate</div>
</div>
<div class="stat">
<div class="stat-number">30 Days</div>
<div class="stat-label">To Completion</div>
</div>
</div>
<!-- Testimonials -->
<div class="testimonials">
<div class="testimonial">
<p class="testimonial-text">
"This course transformed my career! I went from knowing nothing
about coding to landing my first developer job in just 6 weeks.
The projects were practical and the support was amazing."
</p>
<div class="testimonial-author">
<img src="avatar1.jpg" alt="Sarah J." class="author-avatar">
<div>
<div class="author-name">Sarah Johnson</div>
<div class="author-title">Junior Developer at TechCorp</div>
</div>
</div>
</div>
<div class="testimonial">
<p class="testimonial-text">
"Clear explanations, hands-on projects, and supportive community.
I've tried other courses but this one actually made concepts
click for me. Worth every penny!"
</p>
<div class="testimonial-author">
<img src="avatar2.jpg" alt="Mike C." class="author-avatar">
<div>
<div class="author-name">Mike Chen</div>
<div class="author-title">Freelance Web Developer</div>
</div>
</div>
</div>
<div class="testimonial">
<p class="testimonial-text">
"As someone who struggled with online learning, I was skeptical.
But the structured approach and real-world projects kept me
engaged. Best investment in my career!"
</p>
<div class="testimonial-author">
<img src="avatar3.jpg" alt="Emily R." class="author-avatar">
<div>
<div class="author-name">Emily Rodriguez</div>
<div class="author-title">Frontend Engineer at StartupXYZ</div>
</div>
</div>
</div>
</div>
<!-- Company Logos -->
<div class="company-logos">
<h3>Our students work at leading companies</h3>
<div class="logos">
<img src="logo-google.svg" alt="Google">
<img src="logo-microsoft.svg" alt="Microsoft">
<img src="logo-amazon.svg" alt="Amazon">
<img src="logo-facebook.svg" alt="Facebook">
<img src="logo-apple.svg" alt="Apple">
</div>
</div>
</section>
</body>
</html>Social proof elements:
- Statistics — Concrete numbers build trust
- Testimonials — Real people, real results
- Photos — Make testimonials authentic
- Company logos — Credibility by association
- Specific details — Generic praise lacks impact
Features and Benefits Section
Show what users get and why it matters:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Features Section</title>
<style>
.features {
padding: 80px 20px;
background: #f8f9fa;
}
.features-container {
max-width: 1200px;
margin: 0 auto;
}
.features h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 20px;
color: #333;
}
.features-subtitle {
text-align: center;
font-size: 1.25rem;
color: #666;
margin-bottom: 60px;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 40px;
}
.feature-card {
background: white;
padding: 40px;
border-radius: 10px;
box-shadow: 0 5px 20px rgba(0,0,0,0.05);
transition: transform 0.3s;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.feature-icon {
width: 60px;
height: 60px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
margin-bottom: 20px;
}
.feature-card h3 {
font-size: 1.5rem;
margin-bottom: 15px;
color: #333;
}
.feature-card p {
color: #666;
line-height: 1.6;
margin-bottom: 15px;
}
.feature-list {
list-style: none;
padding: 0;
}
.feature-list li {
padding-left: 25px;
margin-bottom: 8px;
color: #555;
position: relative;
}
.feature-list li::before {
content: '✓';
position: absolute;
left: 0;
color: #4CAF50;
font-weight: bold;
}
</style>
</head>
<body>
<section class="features">
<div class="features-container">
<h2>Everything You Need to Succeed</h2>
<p class="features-subtitle">
Comprehensive curriculum designed to take you from zero to hero
</p>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon">📚</div>
<h3>Structured Learning Path</h3>
<p>
Follow our proven curriculum that takes you from basics to
advanced concepts step-by-step.
</p>
<ul class="feature-list">
<li>30 video lessons (10+ hours)</li>
<li>Interactive coding challenges</li>
<li>Real-world project assignments</li>
<li>Downloadable resources</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">💼</div>
<h3>Portfolio Projects</h3>
<p>
Build 5 professional projects you can showcase to employers
and clients.
</p>
<ul class="feature-list">
<li>Responsive portfolio website</li>
<li>E-commerce product page</li>
<li>Interactive web application</li>
<li>Blog platform with CMS</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">👥</div>
<h3>Community Support</h3>
<p>
Join a supportive community of fellow learners and experienced
mentors.
</p>
<ul class="feature-list">
<li>Private Discord community</li>
<li>Weekly live Q&A sessions</li>
<li>Code review from mentors</li>
<li>Networking opportunities</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">🎯</div>
<h3>Career Support</h3>
<p>
Get the tools and guidance you need to land your first
developer job.
</p>
<ul class="feature-list">
<li>Resume and portfolio review</li>
<li>Interview preparation</li>
<li>Job search strategies</li>
<li>LinkedIn profile optimization</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">⚡</div>
<h3>Lifetime Access</h3>
<p>
Learn at your own pace with unlimited lifetime access to all
course materials.
</p>
<ul class="feature-list">
<li>Access on any device</li>
<li>All future updates included</li>
<li>Download materials offline</li>
<li>Certificate of completion</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">🛡️</div>
<h3>Money-Back Guarantee</h3>
<p>
Try the course risk-free with our 14-day money-back guarantee.
</p>
<ul class="feature-list">
<li>Full refund within 14 days</li>
<li>No questions asked</li>
<li>Keep any downloaded materials</li>
<li>Risk-free investment</li>
</ul>
</div>
</div>
</div>
</section>
</body>
</html>Features section tips:
- Feature vs Benefit — Don’t just list features, explain benefits
- Visual icons — Help scan quickly
- Specific details — “30 video lessons” beats “lots of content”
- Checkmarks — Make scanning easier
Pricing Section
Present pricing clearly and compellingly:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pricing Section</title>
<style>
.pricing {
padding: 80px 20px;
background: white;
}
.pricing-container {
max-width: 1000px;
margin: 0 auto;
text-align: center;
}
.pricing h2 {
font-size: 2.5rem;
margin-bottom: 20px;
color: #333;
}
.pricing-subtitle {
font-size: 1.25rem;
color: #666;
margin-bottom: 60px;
}
.pricing-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
}
.pricing-card {
background: white;
border: 2px solid #e0e0e0;
border-radius: 15px;
padding: 40px;
transition: all 0.3s;
}
.pricing-card:hover {
transform: translateY(-10px);
box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}
.pricing-card.featured {
border-color: #4CAF50;
position: relative;
transform: scale(1.05);
}
.featured-badge {
position: absolute;
top: -15px;
left: 50%;
transform: translateX(-50%);
background: #4CAF50;
color: white;
padding: 5px 20px;
border-radius: 20px;
font-size: 0.9rem;
font-weight: bold;
}
.plan-name {
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 20px;
color: #333;
}
.plan-price {
font-size: 3rem;
font-weight: bold;
color: #4CAF50;
margin-bottom: 10px;
}
.plan-price span {
font-size: 1.5rem;
color: #666;
}
.plan-duration {
color: #666;
margin-bottom: 30px;
}
.plan-features {
list-style: none;
padding: 0;
margin-bottom: 30px;
text-align: left;
}
.plan-features li {
padding: 12px 0;
padding-left: 30px;
position: relative;
color: #555;
}
.plan-features li::before {
content: '✓';
position: absolute;
left: 0;
color: #4CAF50;
font-weight: bold;
font-size: 1.2rem;
}
.plan-cta {
display: block;
width: 100%;
padding: 15px 30px;
background: #667eea;
color: white;
text-decoration: none;
border-radius: 50px;
font-weight: bold;
font-size: 1.1rem;
transition: all 0.3s;
border: none;
cursor: pointer;
}
.plan-cta:hover {
background: #764ba2;
transform: translateY(-2px);
}
.featured .plan-cta {
background: #4CAF50;
}
.featured .plan-cta:hover {
background: #45a049;
}
</style>
</head>
<body>
<section class="pricing">
<div class="pricing-container">
<h2>Choose Your Plan</h2>
<p class="pricing-subtitle">
Start learning today with our flexible pricing options
</p>
<div class="pricing-cards">
<!-- Basic Plan -->
<div class="pricing-card">
<div class="plan-name">Starter</div>
<div class="plan-price">
$49
<span>/month</span>
</div>
<div class="plan-duration">Billed monthly</div>
<ul class="plan-features">
<li>Access to all video lessons</li>
<li>Interactive coding challenges</li>
<li>Community Discord access</li>
<li>Certificate of completion</li>
</ul>
<button class="plan-cta">Get Started</button>
</div>
<!-- Pro Plan (Featured) -->
<div class="pricing-card featured">
<div class="featured-badge">Most Popular</div>
<div class="plan-name">Pro</div>
<div class="plan-price">
$99
<span>/month</span>
</div>
<div class="plan-duration">Billed monthly</div>
<ul class="plan-features">
<li>Everything in Starter, plus:</li>
<li>1-on-1 mentor sessions</li>
<li>Code review on projects</li>
<li>Priority support</li>
<li>Career coaching</li>
<li>Job placement assistance</li>
</ul>
<button class="plan-cta">Start Pro Trial</button>
</div>
<!-- Lifetime Plan -->
<div class="pricing-card">
<div class="plan-name">Lifetime</div>
<div class="plan-price">
$299
<span>one-time</span>
</div>
<div class="plan-duration">Pay once, own forever</div>
<ul class="plan-features">
<li>Everything in Pro, plus:</li>
<li>Lifetime access to all content</li>
<li>All future course updates</li>
<li>Premium Discord community</li>
<li>Exclusive webinars</li>
<li>Best value (save $890/year)</li>
</ul>
<button class="plan-cta">Buy Lifetime Access</button>
</div>
</div>
<p style="margin-top: 40px; color: #666;">
All plans include 14-day money-back guarantee • No credit card required for trial
</p>
</div>
</section>
</body>
</html>Pricing best practices:
- Highlight recommended plan — Guide decision-making
- Show value — Not just features, explain benefits
- Annual savings — Encourage longer commitment
- Remove friction — Free trial, money-back guarantee
- Clear CTA — Action-oriented button text
Lead Capture Form
Create a simple, high-converting signup form:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lead Capture Form</title>
<style>
.signup {
padding: 80px 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.signup-container {
max-width: 600px;
margin: 0 auto;
text-align: center;
}
.signup h2 {
font-size: 2.5rem;
margin-bottom: 20px;
}
.signup p {
font-size: 1.25rem;
margin-bottom: 40px;
opacity: 0.95;
}
.signup-form {
background: white;
padding: 40px;
border-radius: 15px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.form-group {
margin-bottom: 20px;
text-align: left;
}
.form-group label {
display: block;
margin-bottom: 8px;
color: #333;
font-weight: 500;
}
.form-group input {
width: 100%;
padding: 15px;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 1rem;
transition: border-color 0.3s;
}
.form-group input:focus {
outline: none;
border-color: #667eea;
}
.submit-button {
width: 100%;
padding: 18px;
background: #4CAF50;
color: white;
border: none;
border-radius: 50px;
font-size: 1.25rem;
font-weight: bold;
cursor: pointer;
transition: all 0.3s;
}
.submit-button:hover {
background: #45a049;
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(76, 175, 80, 0.3);
}
.privacy-note {
margin-top: 20px;
font-size: 0.9rem;
color: #666;
}
.benefits-list {
list-style: none;
padding: 0;
margin: 20px 0 30px 0;
text-align: left;
}
.benefits-list li {
padding: 10px 0;
padding-left: 30px;
position: relative;
color: #333;
}
.benefits-list li::before {
content: '✓';
position: absolute;
left: 0;
color: #4CAF50;
font-weight: bold;
font-size: 1.2rem;
}
</style>
</head>
<body>
<section class="signup" id="signup">
<div class="signup-container">
<h2>Start Your Journey Today</h2>
<p>
Join 10,000+ students learning web development.
Get instant access to our free starter course!
</p>
<form class="signup-form" action="/signup" method="POST">
<ul class="benefits-list">
<li>5 free video lessons to get started</li>
<li>Downloadable cheat sheets</li>
<li>Access to community Discord</li>
<li>Weekly coding tips newsletter</li>
</ul>
<div class="form-group">
<label for="name">Your Name</label>
<input
type="text"
id="name"
name="name"
placeholder="John Doe"
required>
</div>
<div class="form-group">
<label for="email">Email Address</label>
<input
type="email"
id="email"
name="email"
placeholder="[email protected]"
required>
</div>
<button type="submit" class="submit-button">
Get Free Access Now
</button>
<p class="privacy-note">
We respect your privacy. Unsubscribe anytime.
No spam, guaranteed.
</p>
</form>
</div>
</section>
</body>
</html>Form conversion tips:
- Above the fold — Place where visitors can see it
- Minimal fields — Only ask for essentials
- Clear value — Show what they get
- Privacy reassurance — Build trust
- Action-oriented CTA — “Get Started” beats “Submit”
Common Landing Page Mistakes
Mistake 1: Too Many CTAs
Problematic example: Multiple competing calls-to-action
Improved example: One primary CTA repeated strategically
Why: Confusion kills conversion. One goal, one action.
Mistake 2: Slow Loading
Problematic example: Heavy images, unoptimized assets
Improved example: Compressed images, minimal scripts
Why: Every second of load time costs conversions.
Mistake 3: Weak Headline
Problematic example: “Welcome to Our Website”
Improved example: “Master Web Development in 30 Days”
Why: Headlines should communicate value immediately.
Mistake 4: No Social Proof
Problematic example: Just features and benefits
Improved example: Testimonials, logos, statistics
Why: People trust other people more than marketing claims.
Mistake 5: Not Mobile Optimized
Problematic example: Desktop-only design
Improved example: Mobile-first responsive design
Why: 60%+ of traffic is mobile!
Try It Yourself
Ready to build landing pages? Try these challenges:
Challenge 1: Simple Lead Capture (Beginner)
Create a basic landing page with:
- Compelling headline and subheadline
- Three key benefits
- Email capture form
- Single clear CTA
- Mobile responsive
Challenge 2: Product Launch Page (Intermediate)
Build a complete product landing page featuring:
- Hero section with video/image
- Features and benefits section
- Social proof (testimonials)
- Pricing table
- FAQ section
- Multiple CTA placements
Challenge 3: High-Converting Sales Page (Advanced)
Create a professional sales landing page with:
- Video sales letter
- Urgency/scarcity elements
- Detailed pricing comparison
- Risk reversal (guarantees)
- Exit-intent popup
- A/B test variations
Bonus: Use analytics to track conversion rate and iterate!
What You Learned
Congratulations! You now know how to:
- Structure high-converting landing pages
- Write compelling hero sections
- Present social proof effectively
- Design features/benefits sections
- Create pricing tables that sell
- Build lead capture forms
- Optimize for mobile conversion
- Apply conversion psychology
- Avoid common landing page mistakes
- Test and improve conversion rates
Next Steps
Now that you can build landing pages, explore these related tutorials:
- Contact Forms — Advanced form techniques
- SEO Optimization — Drive traffic to your landing pages
- Building a Complete Website — Full site development
Ready to build high-converting pages? Start creating in our interactive HTML editor!