How to Upload Files Using FTP: Step-by-Step Guide
Learn how to upload website files using FTP, FTPS, or SFTP. Connect an FTP client, transfer multiple files and folders, manage permissions, secure your data, automate uploads, and troubleshoot common connection and file-transfer errors.
File Uploads
File Transfer Protocol (FTP) is a standard method for transferring files between a local computer and a web server, making it useful for website management tasks such as uploading content, updating files, or performing backups. cPanel hosting accounts commonly support FTP and FTPS (FTP over SSL/TLS). SFTP (Secure File Transfer Protocol over SSH) may also be available when SSH access is enabled by the hosting provider. Both FTP clients and cPanel’s File Manager can upload multiple files, but an FTP client is often more convenient for transferring entire folders, large websites, or frequent updates.
Why Use FTP for File Uploads?
Bulk Transfers
Upload multiple files or entire folders and manage large transfer queues efficiently. cPanel’s File Manager also supports multiple-file uploads, but an FTP client is often more convenient for large or frequent transfers.
Cross-Platform
Works with FileZilla, WinSCP, Cyberduck, and other clients on Windows, macOS, or Linux.
Secure Options
Supports FTPS and SFTP for encrypted transfers, protecting website code and user information.
Automation
Enables scripted uploads for backups or scheduled updates, and dedicated FTP accounts for team collaboration.
FTP vs. FTPS vs. SFTP
| Protocol | Port | Encryption | When to use |
|---|---|---|---|
| FTP | 21 | None | Non-sensitive data on trusted networks only. What Is FTP |
| FTPS | 21 (explicit) | SSL/TLS | Created FTP accounts when the host supports FTP over TLS. |
| SFTP | 22 | SSH | When SSH access is enabled. Separate protocol from FTP. |
Prerequisites
- 1cPanel Access: Log in with the URL, username, and password from your hosting provider.
- 2FTP Account: Create one in cPanel if needed. How to Create an FTP Account
- 3FTP Client: Install FileZilla, WinSCP, Cyberduck, or another client. Choosing the Right FTP Client
- 4Server Details: Hostname, IP, username, password, and port. FTP/explicit FTPS commonly use 21. SFTP commonly uses 22 and requires SSH access.
- 5Stable Connection: Avoid networks that block FTP ports. Troubleshooting FTP Issues
Step-by-Step Guide to Uploading Files
- Log in to cPanel and navigate to Files → FTP Accounts.
- Under Add FTP Account, enter Log In (e.g.,
uploaderbecomesuploader@yourdomain.com), Domain, Password, Directory (e.g.,public_html/uploads), and Quota. - Click Create FTP Account and note the credentials.
Note: You can use your cPanel username and password for FTP access to the entire home directory without creating a new account.
Example using FileZilla:
- Download FileZilla from the official FileZilla website.
- Install it for Windows, macOS, or Linux. Set Up FileZilla
- Open File → Site Manager (Ctrl+S), click New Site, and enter Protocol (SFTP or FTP with TLS), Host, Port (22 or 21), Logon Type, User, and Password.
- In Transfer Settings, enable Passive mode.
- Click Connect. Accept host keys (SFTP) or certificates (FTPS) for trusted servers.
- Navigate Directories: Left pane is local; right pane is the server (e.g.,
/public_html). - Select Files: Hold Ctrl (Windows) or Cmd (macOS) for multiple files.
- Transfer Files: Drag and drop or use Upload / F5 Copy. Watch the transfer queue.
- Verify Uploads: Check the server directory and open the live URL.
Tip: For large files (>100MB), FTP clients like FileZilla are more reliable than web-based tools because they are not limited by typical browser upload size caps.
- Rename/Delete: Right-click files in the client.
- Set Permissions: Common values are
644for files and755for directories. - Create Directories: Use the client command (e.g., WinSCP F7).
Common FTP Upload Errors
| Error | Likely Cause | What to Check |
|---|---|---|
| 530 Login authentication failed | Wrong username or password | Use the complete FTP username from cPanel and reset the password if needed. |
| Connection timed out | Hostname, port, protocol, or firewall | FTP/explicit FTPS commonly use port 21; SFTP commonly uses 22 when SSH is enabled. |
| Failed to retrieve directory listing | Active/passive mode or blocked data ports | Enable passive mode. Confirm FTPS data-port and firewall settings with the host. |
| Permission denied | No write access to the folder | Confirm the assigned directory. Files 644, directories 755. |
| 404 after upload | Wrong document root | Upload the main site to public_html. |
| Old version still shows | Browser, CDN, or server cache | Clear caches and confirm the updated file is in the correct folder. |
| Homepage does not load | Missing or misplaced index file | Place index.php or index.html in the document root. |
| Missing images, CSS, or JS | Wrong paths or case-sensitive names | Review the failed-transfer queue. Linux filenames are case-sensitive. |
| Transfers repeatedly fail | Unstable connection, disk space, or quota | Check the queue, hosting storage, FTP quota, and connection stability. |
Security Best Practices
- Use SFTP or FTPS: Avoid unencrypted FTP. Securing FTP Transfers
- SSH Keys for SFTP: Configure keys in cPanel’s SSH Access when SSH is enabled.
- Restrict Directory Access: Limit accounts to folders such as
/public_html/uploads. - Monitor Connections: Use FTP Connections to terminate unused sessions.
- Disable Anonymous FTP: Turn it off in cPanel’s Anonymous FTP interface.
Automating FTP Uploads
Integrating with cPanel
Frequently Asked Questions
Where should I upload my website files?
Put the main site in public_html so index.html or index.php sits in that folder, not inside an extra subfolder. Addon domains and subdomains often use a different document root. After you connect, open the remote pane, confirm the path, then drag files there. A file uploaded one level too high or too low will not appear at your domain. Basics are in what FTP is used for.
Can I upload an entire folder instead of one file at a time?
Yes. Dual-pane clients such as FileZilla and WinSCP let you drag a whole directory onto the server pane. The transfer queue lists each file so you can retry failures without starting over. Keep the local folder structure the same as the remote site. For a few small files, cPanel File Manager is enough. For large sites, a dedicated client is faster. Compare tools in choosing an FTP client.
Why does the site still show the old page after I upload?
The new file may be in the wrong folder, the browser or CDN may still be serving a cached copy, or a filename does not match exactly. Linux servers treat Photo.jpg and photo.jpg as different files. Confirm the remote path, clear cache, and reload. If the homepage is blank, check that index.php or index.html is directly in the document root, not nested in an extra directory.
What does a 404 after an FTP upload usually mean?
A 404 means the browser requested a path that is not in the document root. Common causes are uploading into the home directory instead of public_html, using the wrong addon-domain folder, or a mistyped filename. Open the remote pane, match the URL to the real folder, and move the file. Then test the exact address. Connection and path errors are covered in FTP troubleshooting.
Should I use FTP or cPanel File Manager to upload files?
Use File Manager for a couple of quick replacements in the browser. Use an FTP or SFTP client when you need a transfer queue, resume support, folder uploads, or repeated deployments. File Explorer can map FTP on Windows, but it lacks strong logs and easy FTPS controls. For that built-in method, see uploading with File Explorer.
Why do some files fail in the transfer queue?
Failed items often point to a dropped connection, a full disk or FTP quota, a permission error, or a firewall blocking data ports. Enable Passive mode for FTP or FTPS, retry only the failed queue, and check the destination folder permissions. Files commonly use 644 and directories 755. Create a limited account first with an FTP account in cPanel if you are still using a shared login.
Do I need FTPS or SFTP just to upload a website?
Plain FTP will move files, but it sends the password and the files in clear text. Use explicit FTPS for a cPanel FTP account when the host supports TLS. Use SFTP only when SSH is enabled for that username, usually the primary account. Save the protocol in Site Manager so every later upload stays encrypted. More hosting and file-management articles are on the blog index.
What should I check before overwriting live files?
Download a copy of the live file first, or keep a current backup, then upload into the correct document root. Avoid replacing wp-config.php or .htaccess unless you intend to change them. After the queue finishes, load the page in a private window and confirm images and scripts still resolve. Good habits are listed in file management best practices.
Related FTP Tutorials and How To Guides
Add Comment
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you agree with these rules:
- Although the administrator will attempt to moderate comments, not all comments can be moderated at all times.
- You acknowledge that all comments express the opinions of the original author and not those of the administrator.
- You will not post material which is knowingly false, obscene, hateful, threatening, harassing or invasive of privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
What Is MySQL - Definition and Resources
Low-Code Platforms for Next-Gen Web Apps
The Best Javascript Resources and Tools
The Best Python Resources and Tools
Comments