Advertisement

How to Upload Your Website: Free and Paid Hosting Guide

You've built your website locally, and now you want it online. This guide covers all the ways to upload your website, from free options to paid hosting with FTP.

I'll walk you through each method step by step. Choose the one that works best for you.

Before You Start

Make sure your website is ready:

  • All files are in one folder
  • Main page is named index.html
  • You've tested it locally (open index.html in browser)
  • All images and CSS files are in the correct locations

Your folder structure should look something like this:

my-website/
  ├── index.html
  ├── style.css
  ├── script.js (optional)
  └── images/ (optional)
      └── your-images.jpg

Method 1: Free Hosting (Recommended for Beginners)

These options are free, easy, and perfect for getting started. No credit card needed.

Option A: GitHub Pages (Free, Great for Learning)

Best for: Static websites, portfolios, learning Git

Steps:

  1. Create a GitHub account (free)
  2. Click the "+" icon → "New repository"
  3. Name it (e.g., "my-website")
  4. Make it Public
  5. Click "Create repository"
  6. Click "uploading an existing file"
  7. Drag and drop all your website files
  8. Scroll down, enter commit message: "Initial upload"
  9. Click "Commit changes"
  10. Go to Settings → Pages
  11. Under "Source", select "main" branch
  12. Click "Save"
  13. Wait 1-2 minutes, then visit: yourusername.github.io/repo-name

Pros: Free, integrates with Git, good for learning

Cons: Requires GitHub account, slight learning curve

Custom domain: You can use your own domain (like yourname.com) in Settings → Pages

Option B: Netlify (Free, Easiest)

Best for: Quick deployment, drag-and-drop simplicity

Steps:

  1. Go to netlify.com
  2. Click "Sign up" (free account)
  3. Sign up with email or GitHub
  4. On the dashboard, find "Sites" section
  5. Drag and drop your website folder
  6. Wait a few seconds - your site is live!
  7. You'll get a URL like: random-name-123.netlify.app
  8. Click "Site settings" → "Change site name" to customize the URL

Pros: Super easy, instant deployment, free SSL certificate

Cons: Free tier has some limitations (usually fine for personal sites)

Custom domain: Go to Site settings → Domain management → Add custom domain

Option C: Vercel (Free, Great for Developers)

Best for: Modern web apps, automatic deployments

Steps:

  1. Go to vercel.com
  2. Sign up (free, can use GitHub account)
  3. Click "Add New" → "Project"
  4. Import from GitHub or drag and drop
  5. Click "Deploy"
  6. Get instant URL: your-project.vercel.app

Pros: Fast, automatic deployments, great performance

Cons: More developer-focused

Advertisement

Method 2: Paid Hosting with FTP

If you have a paid hosting account (like from Bluehost, HostGator, SiteGround, etc.), you'll use FTP to upload files. This gives you more control and a custom domain.

What is FTP?

FTP (File Transfer Protocol) is a way to transfer files from your computer to a web server. You use an FTP client (software) to connect to your hosting server and upload files.

FTP Account: Your hosting provider gives you FTP credentials (username, password, server address) to access your server. Sometimes this is the same as your cPanel login, or you can create separate FTP accounts.

Step 1: Get Your FTP Credentials

You'll need these from your hosting provider:

  • FTP Server/Host: Usually something like ftp.yourdomain.com or an IP address
  • FTP Username: Your FTP account username
  • FTP Password: Your FTP account password
  • Port: Usually 21 (standard FTP) or 22 (SFTP)

Where to find them:

  • Check your hosting welcome email
  • Log into cPanel → FTP Accounts section
  • Contact your hosting support

Step 2: Create FTP Account in cPanel (If Needed)

If you need to create a new FTP account (or want to see how it works):

  1. Log into your cPanel account
  2. Find "FTP Accounts" in the Files section
  3. Click "FTP Accounts"
  4. Fill in the form:
    • Log In: Enter desired username (e.g., "mywebsite")
    • Domain: Select your domain
    • Password: Enter a strong password (use Password Generator if available)
    • Directory: Usually public_html or public_html/your-folder
    • Quota: Set disk space limit or "Unlimited"
  5. Click "Create FTP Account"
  6. Note down the FTP details shown (you'll need these)

Important: The directory should point to where you want your website files. Usually public_html for the main website, or public_html/subfolder for a subdirectory.

Step 3: Download an FTP Client

You need FTP software to connect and upload files. Here are good free options:

FileZilla (Recommended - Free, Works on All Platforms):

Other options:

  • WinSCP: Windows only, good alternative
  • Cyberduck: Mac/Windows, user-friendly
  • cPanel File Manager: Web-based, no software needed (but slower for large uploads)

Step 4: Connect Using FileZilla

Quick Connect Method:

  1. Open FileZilla
  2. At the top, enter your FTP details:
    • Host: Your FTP server address
    • Username: Your FTP username
    • Password: Your FTP password
    • Port: 21 (or 22 for SFTP)
  3. Click "Quickconnect"
  4. If it asks about certificate, click "OK" or "Trust"
  5. You should see your server files on the right side

Save Connection (Recommended):

  1. File → Site Manager (or press Ctrl+S)
  2. Click "New Site"
  3. Enter a name (e.g., "My Website")
  4. Enter your FTP details:
    • Host: FTP server address
    • Protocol: FTP - File Transfer Protocol (or SFTP if your host uses it)
    • Logon Type: Normal
    • User: FTP username
    • Password: FTP password
  5. Click "Connect"
  6. FileZilla will save this for future use

Step 5: Upload Your Website Files

Once connected, you'll see two panels:

  • Left side: Your computer files (local)
  • Right side: Server files (remote)

To upload:

  1. On the right side, navigate to public_html (or your website directory)
  2. On the left side, navigate to your website folder on your computer
  3. Select all your website files (index.html, style.css, etc.)
  4. Drag and drop from left to right, OR
  5. Right-click selected files → "Upload"
  6. Wait for upload to complete (watch the bottom status bar)

Important:

  • Upload index.html to public_html (not in a subfolder)
  • Keep your folder structure the same (if you have an "images" folder, upload that too)
  • Make sure all files uploaded successfully (check for errors in status)

Step 6: Verify Your Website

After uploading:

  1. Open your web browser
  2. Visit your domain (e.g., yourdomain.com)
  3. Your website should be live!
  4. If you see a default page, make sure index.html is in public_html
  5. If images don't show, check file paths are correct

Using cPanel File Manager (Alternative to FTP)

If you don't want to install FTP software, you can use cPanel's web-based file manager:

  1. Log into cPanel
  2. Find "File Manager" in Files section
  3. Click "File Manager"
  4. Navigate to public_html
  5. Click "Upload" button
  6. Select your files and upload
  7. Or use "Extract" if you uploaded a ZIP file

Pros: No software needed, works in browser

Cons: Slower for large files, less convenient for frequent updates

Managing Your FTP Account

In cPanel → FTP Accounts, you can:

  • Change Password: Update FTP account password
  • Change Quota: Adjust disk space limit
  • Delete: Remove FTP account (doesn't delete files)
  • Configure FTP Client: Get connection details for FileZilla

Note: You can't change the directory path after creating an FTP account. If you need to change it, delete and recreate the account.

Common Issues and Solutions

Can't connect to FTP:

  • Check username and password are correct
  • Try port 22 (SFTP) instead of 21 (FTP)
  • Check if your firewall is blocking the connection
  • Contact hosting support for correct FTP details

Files uploaded but website doesn't show:

  • Make sure index.html is in public_html (not a subfolder)
  • Clear browser cache (Ctrl+F5)
  • Check file permissions (should be 644 for files, 755 for folders)
  • Wait a few minutes - DNS might need to update

Images not showing:

  • Check image file paths in HTML are correct
  • Make sure images folder was uploaded
  • Check file names match exactly (case-sensitive on some servers)

Connection timeout:

  • Try SFTP instead of FTP (port 22)
  • Check your internet connection
  • Some networks block FTP - try from different network

Which Method Should You Use?

Use free hosting (GitHub Pages, Netlify, Vercel) if:

  • You're learning and want something free
  • You don't have a custom domain yet
  • You want easy deployment
  • You're building a portfolio or personal site

Use paid hosting with FTP if:

  • You have a custom domain name
  • You need more control and features
  • You're building a business website
  • You need email hosting, databases, etc.

Pro Tip: Start with free hosting to get your site online quickly. Once you're comfortable and need more features, move to paid hosting. Also, always keep a backup of your website files on your computer - you never know when you'll need them.

Next Steps

Once your website is online:

  • Test all pages and links
  • Check how it looks on mobile devices
  • Set up a custom domain (if using free hosting)
  • Consider adding SSL certificate (HTTPS) - many hosts provide this free
  • Set up regular backups

Common Questions

Do I need to know FTP to upload a website?

Not necessarily. Free hosting options like Netlify let you drag and drop files - no FTP needed. But if you have paid hosting, FTP is usually the easiest way to upload files.

What's the difference between FTP and SFTP?

SFTP is more secure (encrypted). Most modern hosting uses SFTP. The process is the same, just use port 22 instead of 21. FileZilla supports both.

Can I use my cPanel login for FTP?

Usually yes. Your main cPanel username and password often work for FTP. But you can also create separate FTP accounts for different users or purposes.

How do I update my website after uploading?

Just upload the changed files again using the same method. FTP clients like FileZilla will ask if you want to overwrite - click yes. Or use free hosting with automatic deployments from Git.

Get Your Website Online

Choose the method that works for you and get your website live. Start with free hosting if you're learning, or use FTP if you have paid hosting. Either way, you'll have your site online in minutes!

Advertisement