Upload your website files to the public_html directory. This is the document root for your primary domain. Files placed here are accessible at yourdomain.com. Anything placed above or outside this directory will not be visible on the web.
Where different files go
- Main website:
~/public_html/ - Addon domains:
~/public_html/addondomain/(or wherever you specified when creating it) - Subdomains:
~/public_html/subdomain/by default
01. Main Website Files
Your main website files go in public_html (also called www - they are the same directory). When visitors go to yourdomain.com, Apache serves files from this folder. Your homepage should be named index.html, index.php, or one of the other default index filenames Apache looks for.
When you connect via FTP, you land in your home directory (/home/username/). Navigate into public_html before uploading. Do not upload website files directly to the home directory - they won't be accessible via the web.
02. Addon Domains and Subdomains
Addon domains get their own subdirectory inside public_html. When you add an addon domain in cPanel, you choose the directory name. For example, adding secondsite.com might create public_html/secondsite.com/. Upload that site's files there.
Subdomains also get their own directory, usually public_html/subdomain/. For example, blog.yourdomain.com would map to public_html/blog/. You can verify or change the document root for any subdomain in cPanel under Domains.
03. WordPress File Structure
If you installed WordPress via Softaculous (the auto-installer in cPanel), your WordPress files are in whichever directory you chose during installation. The most common locations:
Root install (yourdomain.com): WordPress files are directly in public_html/. You'll see wp-config.php, wp-content/, and wp-admin/ in the root.
Subdirectory install (yourdomain.com/blog): WordPress files are in public_html/blog/. Upload themes and plugins to public_html/blog/wp-content/.
04. Common Mistakes
Uploading to the home directory - If your files are in /home/username/ instead of /home/username/public_html/, your site will show the default "Welcome" page or a 403 error.
Creating an extra folder - If you upload a folder called mysite into public_html, your files are at yourdomain.com/mysite/, not yourdomain.com/. Upload the contents of the folder, not the folder itself.
Missing index file - If there's no index.html or index.php in the directory, visitors will see either a directory listing or a 403 Forbidden error.
For a detailed breakdown of the hosting file structure, see FTP Root Directory and Account Structure. For FTP upload instructions, see our FileZilla guide. If your site uploaded but isn't showing, see Uploaded My Site But Cannot See It.
File Upload Help?
If you're not sure where your files should go for your specific setup, open a ticket and we'll point you to the right directory.
Open a Support TicketQuick Recap: Where to Upload Files
- Main site files go in public_html
- Addon domains have their own subdirectory inside public_html
- Subdomains default to public_html/subdomain/
- Upload contents, not the folder - avoid creating an extra wrapper directory
- Every directory needs an index file to avoid 403 errors
Last updated March 2026 · Browse all FTP articles
