How to Download, Edit & Publish Websites

Complete beginner-friendly tutorials covering every step of building your website β€” from downloading a free template to editing content, customising the design, and deploying it live on the internet. No coding experience required.

Module 1 – Downloading Templates

Learn how to browse, select, and download free HTML templates from our library. Understand ZIP extraction and what files you'll receive.

Step 1: How to download a template from our website

Follow these steps to download any template from our library:

  1. Visit freewebsitetemplates.co.uk/templates to browse available templates.
  2. Click on any template card to open the live preview page.
  3. Review the template on desktop and mobile to make sure it fits your business.
  4. Click the "Download Free" or "Download ZIP" button.
  5. The file will download as a .zip archive to your Downloads folder.
πŸ’‘ Pro Tip

Before downloading, check if the template matches your industry. We have specialised templates for electricians, plumbers, restaurants, salons, and more.

Step 2: How to extract (unzip) the downloaded file

Template files come compressed in a ZIP archive. You need to extract them before editing.

Windows Instructions
1. Navigate to your Downloads folder
2. Right-click on the .zip file (e.g., "restaurant-template.zip")
3. Select "Extract All..." from the context menu
4. Choose a destination folder (e.g., Desktop or Documents)
5. Click "Extract" β€” a new folder appears with all template files
Mac Instructions
1. Navigate to your Downloads folder in Finder
2. Double-click the .zip file
3. macOS automatically extracts it into a folder
4. The new folder appears in the same directory as the .zip file
5. You can now move this folder anywhere you like
⚠️ Important

Never edit files directly inside the ZIP archive β€” always extract first. Editing inside a ZIP can corrupt your files and lose your changes.

Step 3: How to open the template in a browser to preview

Once extracted, you can preview the template locally in your browser before making any changes.

  1. Open the extracted template folder.
  2. Find the file named index.html β€” this is the homepage.
  3. Double-click index.html to open it in your default web browser.
  4. The template will load as a fully styled webpage (works offline!).
  5. Navigate through links to check all pages work correctly.
πŸ’‘ Pro Tip

If the page looks unstyled (plain text), make sure you extracted ALL files from the ZIP, not just the HTML file. The CSS, JavaScript, and image files must be in the same folder structure.

Module 2 – Understanding File Structure

Learn what each file and folder does inside a template package. Understanding the structure helps you know exactly where to make changes.

Step 1: Typical template folder structure explained

Here's what you'll typically find inside a downloaded template:

Folder Structure
my-template/
β”œβ”€β”€ index.html          ← Homepage (main file you'll edit)
β”œβ”€β”€ about.html          ← About page
β”œβ”€β”€ services.html       ← Services page
β”œβ”€β”€ contact.html        ← Contact page
β”œβ”€β”€ css/
β”‚   └── styles.css      ← All visual styling (colours, fonts, layout)
β”œβ”€β”€ js/
β”‚   └── script.js       ← Interactive behaviours (menus, sliders)
β”œβ”€β”€ images/
β”‚   β”œβ”€β”€ hero-banner.jpg ← Large header images
β”‚   β”œβ”€β”€ logo.png        ← Your business logo
β”‚   └── services/       ← Service-specific images
└── fonts/
    └── ...             ← Custom font files (if any)
πŸ’‘ Key Files to Know

index.html = Your homepage. css/styles.css = Controls how everything looks. images/ = Where to put your own photos. These three are the files you'll edit most often.

Step 2: Which text editor to use for editing

You need a proper code editor β€” not Word or Notepad. Here are the best free options:

Recommended Editors
1. Visual Studio Code (VS Code) β€” FREE
   β†’ Download: code.visualstudio.com
   β†’ Best choice for beginners and professionals
   β†’ Features: syntax highlighting, live preview, file explorer

2. Sublime Text β€” FREE trial
   β†’ Download: sublimetext.com
   β†’ Lightweight and fast

3. Brackets β€” FREE
   β†’ Download: brackets.io
   β†’ Built specifically for web design
   β†’ Live preview built-in
⚠️ Never Use These

Do NOT edit HTML files with Microsoft Word, Google Docs, or TextEdit (Mac rich text mode). They add hidden formatting that breaks your code. Always use a dedicated code editor.

Step 3: How to open a template project in VS Code

Opening the entire project folder (not just one file) gives you access to all template files in the sidebar.

  1. Download and install Visual Studio Code from code.visualstudio.com.
  2. Open VS Code and go to File β†’ Open Folder.
  3. Navigate to your extracted template folder and click "Select Folder".
  4. The left sidebar now shows all your template files in a tree view.
  5. Click on index.html to start editing the homepage.
  6. Install the "Live Server" extension for real-time preview in your browser.
πŸ’‘ Live Preview Setup

In VS Code, press Ctrl+Shift+X (Windows) or Cmd+Shift+X (Mac), search for "Live Server" by Ritwick Dey, and install it. Then right-click your index.html and select "Open with Live Server". Every time you save, your browser refreshes automatically!

Module 3 – Editing HTML Content

Learn how to change text, headings, links, phone numbers, addresses, and business information in your template files.

Step 1: How to change headings and text content

Text in HTML is wrapped in tags like <h1>, <h2>, and <p>. Simply replace the text between the opening and closing tags.

Template Default
<h1>Welcome to Our Business</h1>
<p>We provide excellent services to our valued customers.</p>
Your Customised Version
<h1>Professional Plumbing Services in Manchester</h1>
<p>24/7 emergency plumbing, boiler installation, and bathroom renovations. Trusted by 500+ homeowners since 2015.</p>
πŸ’‘ Finding Text Quickly

Press Ctrl+F (Windows) or Cmd+F (Mac) in your editor and search for the placeholder text you want to replace. This is much faster than scrolling through code.

Step 2: How to update phone numbers, emails, and addresses

Contact details appear in multiple places β€” header, footer, and contact page. Use Find & Replace to update them all at once.

Template Placeholder
<a href="tel:+441234567890">01onal 234 567 890</a>
<a href="mailto:info@example.com">info@example.com</a>
<p>123 High Street, London, UK</p>
Your Real Details
<a href="tel:+440161XXXXXXX">0161 XXX XXXX</a>
<a href="mailto:hello@yourbusiness.co.uk">hello@yourbusiness.co.uk</a>
<p>45 Deansgate, Manchester, M3 2AY</p>
πŸ’‘ Find & Replace All

Press Ctrl+Shift+H (Windows) or Cmd+Shift+H (Mac) in VS Code to open "Find & Replace in Files". This searches ALL files in your project and replaces every instance at once.

Step 3: How to change navigation menu links

Navigation menus use <a> tags with href attributes. Change both the display text and the link destination.

Template Default
<nav>
  <a href="index.html">Home</a>
  <a href="about.html">About</a>
  <a href="services.html">Services</a>
  <a href="portfolio.html">Portfolio</a>
  <a href="contact.html">Contact</a>
</nav>
Customised Navigation
<nav>
  <a href="index.html">Home</a>
  <a href="about.html">About Us</a>
  <a href="services.html">Our Services</a>
  <a href="gallery.html">Gallery</a>
  <a href="contact.html">Get a Quote</a>
</nav>
⚠️ Remember

If you rename a page file (e.g., portfolio.html β†’ gallery.html), you must update EVERY link pointing to it across all HTML files, including the mobile menu and footer links.

Step 4: How to add or remove entire sections

HTML sections are marked with comments like <!-- Section Name -->. Delete everything between the opening and closing tags to remove a section.

How Sections Are Structured
<!-- Testimonials Section -->
<section class="testimonials">
  <h2>What Our Clients Say</h2>
  <!-- ... all testimonial content ... -->
</section>
<!-- End Testimonials Section -->

<!-- To REMOVE this section, delete everything from
     the opening <section> to the closing </section>
     including the comments -->
πŸ’‘ Before Deleting

Always make a backup copy of your original files before removing sections. You can simply copy the entire template folder and rename it "template-backup" just in case you need to restore something later.

Module 4 – Customising CSS Styles

Learn how to change colours, fonts, spacing, and layout without breaking the template design. No CSS knowledge required.

Step 1: How to change the primary brand colour

Most templates use CSS variables or repeated hex colour codes. Find and replace the primary colour throughout the stylesheet.

Step-by-Step
1. Open your css/styles.css file
2. Look for a :root section at the top β€” it often contains colour variables:

   :root {
     --primary-color: #4928FD;
   }

3. Change #4928FD to your brand colour (e.g., #1e3a8a for navy blue)
4. Save the file β€” all elements using this variable update automatically!

If there's no :root section, use Find & Replace:
   β†’ Find: #4928FD (the template's primary colour)
   β†’ Replace with: #1e3a8a (your brand colour)
   β†’ Click "Replace All"
πŸ’‘ Finding Your Brand Colour

Use coolors.co or color.adobe.com to generate a harmonious colour palette. Pick a primary colour, a lighter shade for hover effects, and a dark shade for text.

Step 2: How to change fonts

Templates often use Google Fonts. You can swap them by updating both the font import link and the CSS font-family property.

Template Default Font
<!-- In the <head> section of index.html -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
Changing to a Different Font
<!-- Step 1: Go to fonts.google.com, pick a font, copy the link -->
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap" rel="stylesheet">

<!-- Step 2: In your CSS file, find the font-family declaration -->
<style>
body {
  font-family: 'Poppins', sans-serif; /* Changed from 'Inter' */
}
</style>
Step 3: How to adjust spacing and padding

If sections feel too tight or too spaced out, adjust the padding and margin values in CSS.

Common Spacing Adjustments
/* Make sections more spacious */
.section {
  padding-top: 80px;     /* Space inside the top */
  padding-bottom: 80px;  /* Space inside the bottom */
}

/* Reduce gap between heading and paragraph */
h2 {
  margin-bottom: 16px;   /* Space below the heading */
}

/* Add breathing room to containers */
.container {
  padding-left: 24px;
  padding-right: 24px;
}
πŸ’‘ Quick CSS Edits with DevTools

Right-click any element on your page and select "Inspect". You can test CSS changes live in the browser! Once you find values you like, copy them into your CSS file.

Module 5 – Adding Images & Media

Learn how to replace placeholder images with your own photos, resize them properly, and optimise them for fast page loading.

Step 1: How to replace template images with your own

Find the image tag in HTML and update the src attribute to point to your new image file.

Template Placeholder
<img src="images/placeholder-hero.jpg" alt="Hero Image">
Your Custom Image
<!-- Step 1: Place your image in the images/ folder -->
<!-- Step 2: Update the src and alt attributes -->
<img src="images/my-shop-front.jpg" alt="Smith's Bakery storefront on High Street, Manchester">
πŸ’‘ Image Naming Rules

Use lowercase letters, hyphens instead of spaces, and descriptive names. Good: team-photo-2024.jpg. Bad: IMG_20240315_143022.jpg or Photo (1).JPG.

Step 2: How to optimise images for web performance

Large images slow your website down dramatically. Optimise before uploading.

Image Optimisation Checklist
1. RESIZE: Photos from phones are often 4000px+ wide.
   β†’ Resize to max 1920px wide for hero banners
   β†’ Resize to max 800px wide for content images
   β†’ Resize to max 400px for thumbnails

2. COMPRESS: Use free tools to reduce file size:
   β†’ tinypng.com β€” drag and drop, free
   β†’ squoosh.app β€” Google's free tool with previews
   β†’ imageoptim.com β€” Mac desktop app

3. FORMAT: Use modern formats when possible:
   β†’ JPEG for photographs (aim for under 200KB)
   β†’ PNG for logos/graphics with transparency
   β†’ WebP for best compression (70% smaller than JPEG)
   β†’ SVG for icons and simple graphics

4. TARGET SIZES:
   β†’ Hero banner: under 300KB
   β†’ Content image: under 150KB
   β†’ Logo: under 50KB
Step 3: How to change the logo

The logo usually appears in the header and footer. Update all instances across every page.

  1. Create your logo as a PNG (transparent background) or SVG file.
  2. Name it logo.png or logo.svg and place it in the images/ folder.
  3. Search all HTML files for the existing logo image tag (usually class="logo").
  4. Update the src attribute to point to your new logo file.
  5. Adjust the logo height in CSS if needed (typically 40px-60px).
πŸ’‘ No Logo Yet?

Use canva.com (free tier) to create a professional logo in minutes. Export as PNG with transparent background. You can also use text-based logos with Google Fonts.

Module 6 – Setting Up Contact Forms

Make your contact form actually send emails. Learn about form services, validation, and spam protection for static HTML sites.

Step 1: Why HTML forms don't send emails by default

Static HTML cannot send emails on its own β€” you need a form processing service. Here are the best free options:

Free Form Services
1. Formspree (formspree.io)
   β†’ Free tier: 50 submissions/month
   β†’ No backend needed β€” just change the form action URL
   β†’ Spam filtering included

2. Getform (getform.io)
   β†’ Free tier: 50 submissions/month
   β†’ File upload support
   β†’ Integrations with Slack, Google Sheets

3. FormSubmit (formsubmit.co)
   β†’ Completely free, unlimited submissions
   β†’ No registration required
   β†’ Anti-spam captcha included

4. Netlify Forms (if hosting on Netlify)
   β†’ 100 submissions/month free
   β†’ Just add netlify attribute to your form
   β†’ Built-in spam detection
Step 2: Setting up Formspree (easiest method)

Formspree is the simplest way to make your contact form work. Just change the form action attribute.

Non-Functional Form
<form action="#" method="POST">
  <input type="text" name="name" placeholder="Your Name">
  <input type="email" name="email" placeholder="Your Email">
  <textarea name="message" placeholder="Your Message"></textarea>
  <button type="submit">Send Message</button>
</form>
Working Form with Formspree
<!-- Step 1: Sign up free at formspree.io -->
<!-- Step 2: Create a new form and get your endpoint ID -->
<!-- Step 3: Replace the action URL below -->

<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
  <input type="text" name="name" placeholder="Your Name" required>
  <input type="email" name="email" placeholder="Your Email" required>
  <textarea name="message" placeholder="Your Message" required></textarea>
  <input type="hidden" name="_subject" value="New website enquiry!">
  <button type="submit">Send Message</button>
</form>

Module 7 – Hosting & Deployment

Deploy your finished website live on the internet. Learn free and paid hosting options, uploading methods, and going live in minutes.

Step 1: Free hosting with Netlify (recommended)

Netlify offers the fastest, simplest way to deploy a static HTML website for free. No server setup needed.

  1. Go to app.netlify.com and create a free account (use GitHub, GitLab, or email).
  2. On the dashboard, find the "Sites" tab.
  3. You'll see a large drag-and-drop zone that says "Drag and drop your site output folder here".
  4. Open your file manager and navigate to your template folder (the one containing index.html).
  5. Drag the entire folder (not just index.html!) onto the Netlify drop zone.
  6. Wait 5-10 seconds β€” Netlify gives you a live URL like https://random-name-123.netlify.app.
  7. Your website is now LIVE on the internet! Share the link with anyone.
πŸ’‘ Free Tier Includes

100GB bandwidth/month, free SSL certificate (https://), custom domain support, and automatic CDN distribution across the globe. More than enough for small business websites.

Step 2: Free hosting with GitHub Pages

GitHub Pages is another excellent free hosting option, ideal if you're comfortable with basic Git or want version control.

  1. Create a free account at github.com.
  2. Create a new repository (click the "+" icon β†’ New repository).
  3. Name it yourusername.github.io for a personal site, or any name for a project site.
  4. Upload your template files using the "uploading an existing file" link.
  5. Drag all your template files into the upload area and click "Commit changes".
  6. Go to Settings β†’ Pages and set the source to "Deploy from a branch" β†’ main.
  7. Your site is live at https://yourusername.github.io within 2-5 minutes.
Step 3: Free hosting with Vercel

Vercel is extremely fast and easy to use. It's similar to Netlify with a few extra features.

  1. Go to vercel.com and sign up with GitHub, GitLab, or email.
  2. Click "Add New…" β†’ "Project".
  3. Either import a GitHub repository, or use the CLI to upload your files.
  4. For drag-and-drop: install the Vercel CLI with npm i -g vercel, then run vercel in your template folder.
  5. Follow the prompts β€” your site deploys in seconds with a live URL.
Step 4: Traditional hosting with cPanel (paid option)

If you have a traditional web hosting plan (GoDaddy, Bluehost, SiteGround, etc.), use the cPanel File Manager or FTP.

  1. Log into your hosting provider's control panel (usually yourdomain.com/cpanel).
  2. Open File Manager from the dashboard.
  3. Navigate to the public_html folder (this is your website root).
  4. Click "Upload" and upload your entire template ZIP file.
  5. Once uploaded, right-click the ZIP and select "Extract".
  6. Make sure index.html is directly inside public_html/ (not in a subfolder).
  7. Visit your domain β€” your website should now be live!
⚠️ Common Mistake

If your site shows a directory listing instead of your homepage, check that index.html is in the root of public_html/, not inside a subfolder like public_html/my-template/index.html.

Module 8 – Custom Domain & SEO Setup

Connect a custom domain name, configure SSL certificates, and optimise your site for search engines to attract customers.

Step 1: How to buy and connect a custom domain

A custom domain (e.g., yourbusiness.co.uk) makes your website look professional and trustworthy.

Domain Registration
Recommended Domain Registrars:
1. Namecheap (namecheap.com) β€” from Β£6/year for .co.uk
2. Cloudflare Registrar β€” at-cost pricing, no markup
3. Google Domains β€” simple interface, good DNS
4. GoDaddy β€” popular, frequent sales

Connecting to Netlify:
1. In Netlify dashboard β†’ Site settings β†’ Domain management
2. Click "Add custom domain"
3. Enter your domain (e.g., yourbusiness.co.uk)
4. Netlify gives you nameservers or CNAME records
5. Go to your domain registrar's DNS settings
6. Add the records Netlify provided
7. Wait 24-48 hours for DNS propagation
8. Netlify auto-generates a free SSL certificate!
Step 2: Essential SEO meta tags for every page

Add these meta tags to the <head> section of every page to help Google understand and rank your website.

Essential SEO Tags
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- Page title β€” appears in Google results (50-60 chars) -->
  <title>Smith's Plumbing | Emergency Plumber in Manchester</title>

  <!-- Description β€” appears below title in Google (150-160 chars) -->
  <meta name="description" content="24/7 emergency plumbing services in Manchester. Boiler repairs, leak detection, and bathroom installations. Call 0161 XXX XXXX for a free quote.">

  <!-- Open Graph tags for social media sharing -->
  <meta property="og:title" content="Smith's Plumbing | Emergency Plumber in Manchester">
  <meta property="og:description" content="24/7 emergency plumbing services in Manchester.">
  <meta property="og:image" content="https://yourdomain.co.uk/images/og-banner.jpg">
  <meta property="og:url" content="https://yourdomain.co.uk">

  <!-- Canonical URL to prevent duplicate content -->
  <link rel="canonical" href="https://yourdomain.co.uk/">
</head>
Step 3: Submit your site to Google Search Console

Google needs to know your website exists. Submit it to Search Console so it gets indexed and appears in search results.

  1. Go to search.google.com/search-console and sign in with your Google account.
  2. Click "Add property" and enter your website URL.
  3. Choose the "URL prefix" verification method.
  4. Download the verification HTML file Google gives you.
  5. Upload this file to the root of your website (same folder as index.html).
  6. Click "Verify" in Search Console.
  7. Go to "Sitemaps" and submit https://yourdomain.co.uk/sitemap.xml if you have one.
  8. Google will start crawling and indexing your pages within 1-7 days.
πŸ’‘ Google Business Profile

For local businesses, also set up a Google Business Profile (business.google.com). This shows your business on Google Maps, displays reviews, and links to your website β€” often more valuable than organic SEO for local service businesses.

Step 4: Create a simple robots.txt and sitemap

These two files help search engines crawl your site efficiently.

robots.txt (place in root folder)
User-agent: *
Allow: /
Sitemap: https://yourdomain.co.uk/sitemap.xml
sitemap.xml (place in root folder)
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://yourdomain.co.uk/</loc>
    <lastmod>2026-01-15</lastmod>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://yourdomain.co.uk/about.html</loc>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://yourdomain.co.uk/services.html</loc>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://yourdomain.co.uk/contact.html</loc>
    <priority>0.7</priority>
  </url>
</urlset>