How to Upload a Website to Hosting: Just 6 Easy Steps for Beginners in 2026
3 weeks ago

In today's fast-paced digital world, having an online website is no longer complicated or reserved only for professional developers. Anyone—students, freelancers, small business owners, bloggers, or even office workers—can get their personal or business site live in just minutes. All you need is a ready-made website folder and a reliable hosting account.
According to Statista data for 2025–2026, there are more than 1.9 billion active websites worldwide, and the number continues to grow rapidly in Indonesia thanks to easy-to-use platforms like WordPress, Blogger, or custom HTML/CSS. However, the step that often confuses beginners is “uploading to hosting.” Many people are unsure whether to use File Manager, FTP, or automatic migration tools.
Why Uploading a Website to Hosting Matters in 2026
Uploading a website means transferring all your site files (HTML, CSS, JavaScript, images, database) from your local computer to a hosting server so it can be accessed anytime via your domain (e.g., www.yourdomain.com). Without hosting, your website can only be viewed on your own computer—it won’t be visible to anyone else online.
In 2026, hosting trends are more beginner-friendly than ever:
- Prices are more affordable (starting at Rp 10,000–20,000/month with fast SSD storage, unlimited bandwidth, and free SSL).
- Automatic migration and AI setup features (such as Hostinger’s hPanel or Softaculous in cPanel).
- Better security (imunify360, firewall, automatic daily backups).
- Mobile-first & SEO: Google is stricter with fast and secure sites (HTTPS is mandatory).
Preparation steps before you begin:
- Prepare your website files (complete folder or in .zip/.tar.gz format).
- If using a CMS like WordPress, Joomla, or PrestaShop: prepare a database backup (.sql) and files.
- Have an active hosting account with access to the control panel (cPanel, hPanel, DirectAdmin).
- Optional: Install an FTP client like FileZilla (for large files).

Now, follow these 6 easy steps.
Step 1: Choose a Reliable and Trustworthy Web Hosting
Hosting is your website’s “home” on the internet. Choosing the wrong one can make your site slow, frequently down, or vulnerable to attacks. Key criteria in 2026:
- Uptime & Speed — Minimum 99.9% uptime, powered by SSD/NVMe storage.
- 24/7 Live Support — Instant chat or fast tickets (Indonesian language support preferred).
- Full Control — Access to File Manager, FTP, phpMyAdmin, free SSL.
- Scalability — Easy upgrade to VPS or Cloud if traffic grows.
- Money-back Guarantee — At least 30 days to test risk-free.
- Extra Bonuses — Free domain for 1 year, unlimited SSL, daily backups.
Popular hosting recommendations for 2026:
- Hostinger (affordable, fast, intuitive hPanel, automatic migration).
- Niagahoster, Rumahweb, Exabytes (local providers with Indonesian support).
- SiteGround, A2 Hosting (international, high performance).
Illustration of a modern hosting dashboard (example: Hostinger hPanel): (Above image shows a clean and user-friendly control panel interface with main menus including File Manager and Domains.)
Step 2: Choose the Right Method to Upload Your Website
There are 4 main ways to upload a website in 2026. Choose based on file size and your comfort level:
- File Manager (browser-based) — Easiest for beginners, suitable for files <256 MB, no software installation needed.
- FTP (File Transfer Protocol) — Use FileZilla or WinSCP, no size limit, ideal for large or custom websites.
- Automatic Importer/Migrator — Built-in hosting feature (e.g., Website Importer in Hostinger or Auto Installer in cPanel).
- Migration Plugin (for CMS like WordPress) — All-in-One WP Migration, Duplicator, UpdraftPlus.
Quick recommendation:
- Small files (<256 MB) → File Manager.
- Large files or custom sites → FTP.
- WordPress → Migration plugin or hosting importer.
Illustration of upload method options in control panel: (Above image shows the File Manager menu compared to FTP Accounts in hPanel, with Upload button and FTP connection details clearly visible.)
Step 3: Upload and Extract Your Website Archive
Method 1: Using File Manager (easiest)
- Log in to your hosting control panel → open File Manager.
- Navigate to the public_html folder (or root domain folder for multi-domain setups).
- Click Upload → select your website .zip/.tar.gz file from your computer.
- Once upload is complete, right-click the file → choose Extract → extract directly to public_html.
- Wait for the process to finish (a few seconds to minutes depending on file size).
Method 2: Using FTP (for large files)
- Download & install FileZilla (free from the official site).
- Get your FTP details from hosting: Hostname (e.g., ftp.yourdomain.com), Username, Password, Port 21.
- Open FileZilla → enter details → click Quickconnect.
- On the right side (remote server), navigate to public_html.
- Extract your website files locally first → drag & drop folders/files into public_html.
- Wait for the transfer to complete (stable even for large files, though it may take time).
Illustration of the upload and extraction process in File Manager: (Above image shows the File Manager screen with the Upload button active and the .zip file extraction process in progress.)
Step 4: Ensure All Files Are Placed in the public_html Folder
This step is critical so your website goes live directly on the main domain (not in a subfolder like domain.com/old-site).
- Open File Manager or FTP.
- Check the contents of public_html: it should contain main files like index.php/index.html, wp-config.php (for WordPress), etc.
- If files are still in a subfolder (e.g., public_html/old-site/):
- Select all files in the subfolder → right-click → Move → move to public_html (without the subfolder).
- Delete the empty subfolder afterward.
- Make sure there are no extra folders like “wordpress”, “backup”, or “temp” in the root.
Illustration of the correct public_html folder structure: (Above image shows the File Manager view with index.php, style.css, and images folder directly inside public_html, with no extra subfolders.)
Step 5: Import MySQL Database (If Your Website Uses a Database)
This step is only needed if your site uses a CMS (WordPress, Joomla, PrestaShop) or custom app that requires a database.
- Create a new database: Control panel → MySQL Databases → Create New Database + User + Assign privileges.
- Open phpMyAdmin → select the newly created database.
- Click the Import tab → Choose File → select your database backup file (.sql) from your computer → click Go.
- Wait for the process to complete (a few seconds to minutes depending on size).
- Update your site configuration file:
- WordPress: edit wp-config.php → replace DB_NAME, DB_USER, DB_PASSWORD, DB_HOST with the new database details.
- Other CMS: adjust the config file (e.g., configuration.php in Joomla).
Illustration of the database import process in phpMyAdmin: (Above image shows the phpMyAdmin interface with the Import tab open, .sql file selected, and the Go button ready to be clicked.)
Step 6: Check If Your Website Is Successfully Live
Once everything is done:
- Open your browser → type your domain (e.g., www.yourdomain.com).
- If the domain was recently pointed to the hosting: Wait for DNS propagation (usually 1–24 hours, often faster in 2026).
- Quick check methods without waiting for propagation:
- Use online tools like whatsmyip.org or ping.eu → enter your domain + hosting IP.
- Edit your computer’s hosts file (Windows: C:\Windows\System32\drivers\etc\hosts; Mac/Linux: /etc/hosts) → add line: hosting-IP yourdomain.com.
- Use browser extensions like “Host Switch Plus” or “Virtual Hosts”.
If you encounter errors:
- Error 500 (Internal Server Error) → Check file permissions (755 for folders, 644 for files) or .htaccess file.
- Database connection error → Double-check wp-config.php or database config file.
- White screen / blank page → Enable debug mode (in WordPress: add define('WP_DEBUG', true); to wp-config.php).
Illustration of a successfully live website in the browser: (Above image shows a live WordPress site or simple HTML page successfully accessed via the domain after upload is complete.)
Conclusion & Extra Tips for 2026
Congratulations! You’ve just successfully uploaded your website to hosting in only 6 easy steps. Key success factors:
- Use File Manager for beginners and small files.
- Use FTP for large or custom websites.
- Always back up files & database before uploading.
- Enable free SSL (Let's Encrypt) on your hosting for HTTPS.
- After going live: Optimize speed (use cache plugins like WP Rocket, Cloudflare CDN), on-page SEO, and monitor uptime.
If you still face issues or errors, contact your hosting support 24/7—most offer fast live chat and responsive help. In 2026, hosting has become extremely user-friendly, so don’t hesitate to get started!
I hope this guide helps you launch your first site or smoothly migrate an existing one. If you need more specific tutorials (e.g., full WordPress migration, Cloudflare setup, or free hosting options), just let me know. Happy launching and may your website get lots of visitors soon!
FAQ: Frequently Asked Questions about Uploading a Website to Hosting in 2026
1. What is the difference between public_html and the root folder?
- public_html is the standard root directory for your main domain on most shared hosting (cPanel, hPanel, DirectAdmin). All files placed here are publicly accessible via your domain (e.g., www.yourdomain.com loads index.html from public_html).
- Some hosts use different names like www, htdocs, or simply / (root). Always check your hosting control panel documentation or ask support.
Tip: If your site loads as yourdomain.com/subfolder, move files from the subfolder to public_html root.
Illustration of correct public_html structure: (Above image shows File Manager with index.php, style.css, and folders directly in public_html—no extra subfolders.)
2. Why does my website show “403 Forbidden” or “Directory Listing Denied” after upload?
Common causes:
- Missing index file (index.php or index.html) in public_html.
- Incorrect file permissions (folders should be 755, files 644).
- .htaccess file blocking access.
Solutions:
- Upload a basic index.html with “Hello World” to test.
- In File Manager → right-click folder/file → Change Permissions → set 755 (folders) / 644 (files).
- Check .htaccess for lines like Options -Indexes and remove if needed.
Illustration of correct file permissions in File Manager: (Above image shows the permissions dialog with 755 selected for folders.)
3. How long does DNS propagation take, and why is my domain not working yet?
DNS propagation (when your domain points to the new hosting) usually takes 1–24 hours, sometimes up to 48 hours. In 2026, many providers (especially Hostinger, Cloudflare) make it faster (often <4 hours).
Quick checks without waiting:
- Use online tools like whatsmyip.org, dnschecker.org, or ping.eu → enter domain + hosting IP.
- Flush DNS on your computer: Windows (ipconfig /flushdns), Mac (sudo dscacheutil -flushcache).
- Edit local hosts file to bypass propagation (add line: hosting-IP yourdomain.com).
Tip: Always clear browser cache (Ctrl + Shift + R) when testing.
4. My WordPress site shows “Error Establishing a Database Connection” after upload. What should I do?
This is almost always a configuration mismatch.
Fix steps:
- Open wp-config.php in File Manager (edit via browser or FTP).
- Verify these lines match your new hosting database:
- define('DB_NAME', 'your_new_db_name');
- define('DB_USER', 'your_new_db_user');
- define('DB_PASSWORD', 'your_new_db_password');
- define('DB_HOST', 'localhost' or your host's server name, e.g., 'mysql.hostinger.com').
- Save and refresh site.
- If still error, double-check database name/user/password in control panel → MySQL Databases.
Illustration of wp-config.php database settings: (Above image shows the correct DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST lines in wp-config.php file.)
5. Can I upload a website larger than 256 MB using File Manager?
Most shared hosting limits File Manager uploads to 256 MB (sometimes 128 MB). Solutions:
- Use FTP (FileZilla) — no size limit, stable for large transfers.
- Split .zip into smaller parts (use 7-Zip), upload/extract one by one.
- Use hosting’s automatic importer if available (Hostinger supports up to 256 MB, but FTP is unlimited).
Tip: Compress files well before upload (use .zip with high compression).
6. How do I enable free SSL (HTTPS) after upload?
Almost all modern hosting (2026) offers free SSL via Let's Encrypt.
Steps:
- Control panel → Security → SSL/TLS or Let's Encrypt.
- Select your domain → Install/Enable SSL (usually one-click).
- Wait 5–15 minutes, then check with https://yourdomain.com.
- Force HTTPS: Add to .htaccess:
text
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
Illustration of SSL installation in hosting panel: (Above image shows the Let's Encrypt or SSL/TLS section with domain selected and Install button.)
7. What should I do if the site loads but images/CSS/JS are missing or broken?
Common cause: Incorrect file paths after moving from subfolder to root.
Fixes:
- Check paths in HTML/CSS (should be relative: /images/photo.jpg, not /subfolder/images/photo.jpg).
- For WordPress: Login to wp-admin → Settings → General → update WordPress Address & Site Address to https://yourdomain.com.
- Use plugin like Better Search Replace to fix URLs in database.
Tip: Clear browser cache and hosting cache (LiteSpeed Cache, Cloudflare) after changes.
8. Is it safe to upload via FTP? What about security?
FTP is safe if using SFTP (port 22) instead of plain FTP (port 21). Most hosting in 2026 defaults to SFTP.
Best practices:
- Use FileZilla with SFTP (select “Require explicit FTP over TLS”).
- Change FTP password regularly.
- After upload, disable FTP account if not needed.
- Enable 2FA on hosting account.
9. How long does the whole upload process usually take for beginners?
- Small static site (<50 MB): 10–30 minutes.
- WordPress with media (200–500 MB): 30–90 minutes (longer with FTP).
- Including database import and DNS wait: 1–24 hours total (mostly waiting for propagation).
10. What if I still get stuck or see an error I don’t understand?
- Contact hosting support first (live chat is fastest).
- Take screenshot of error + control panel.
- Search error message + “hosting name” on Google (e.g., “Error 500 Hostinger”).
- Join communities: Reddit r/webhosting, Facebook groups “Belajar Hosting Indonesia”, or WordPress Indonesia forums.

Leave a Reply