Files

Getting files onto a shared host

How your files reach the server, where they have to live, what permissions they need, and the limit that bites before storage ever does.

Ben Johnson · last checked 2026-09-21 · 4 min read

TL;DR
  • You upload files over FTP, or through the file manager in your hosting panel.
  • Your site’s files must live in the public folder, usually called public_html.
  • Files should be 644 and folders 755. Never use 777.
  • The limit you hit first is the file count, not the megabytes.
  • Use FTP over TLS, not plain FTP, so your password is not sent in the clear.

Everything on your website is a file the server sends to visitors. Getting those files onto the server, into the right place, with the right permissions, is one of the first things you do and one of the most common places to get stuck. This page is the map of the whole job.

There are only a few moving parts: how the files get there, where they must live, what permissions they carry, and the limits you are working inside. Get those four right and uploading stops being mysterious.

How files get onto the server

There are two ways. The first is FTP, using a program on your computer that connects to the server and copies files across. The second is the file manager built into your hosting panel, which works in the browser with no software to install.

Use whichever suits the job. The file manager is quick for a single change. FTP is better for uploading a whole site at once. Either way, use the secure version of FTP, over TLS, so your username and password are encrypted on the way. Plain FTP sends them readable, and on a shared server that is a real risk. The full setup is in upload a site with FTP.

Where your files have to live

The server only shows the world one folder, and everything outside it is invisible to visitors. That folder is usually called public_html, sometimes htdocs or www. Your home page has to be inside it, named index.html or index.php, or the site shows a blank page or the host’s placeholder.

This trips people up constantly: they upload their site to the account’s top level, one folder above public_html, and nothing appears. The files are there. They are just in the one place the server will not serve. If a fresh upload shows nothing, this is the first thing to check.

There is one more place files can hide. If you upload a folder and then browse to its address, the server looks inside for a home page. No index file, and you get either a blank page or, if the host allows it, a bare list of your files for the whole world to read. Naming the home page correctly is what turns a folder of files into a working page.

What permissions files need

Every file carries permissions that say who may read, write, or run it. For a normal website the answer is fixed: files are 644, folders are 755. That is all you need, and it is the same on every shared host.

The number you must never use is 777, which lets anyone on the server write to your files. Shared hosts block scripts with 777 permissions outright, and it is a genuine security hole. The full explanation, and how to fix permissions that are wrong, is in file permissions. Permissions set too low show up as a 403 Forbidden error, because the server is not allowed to read the file it is meant to serve.

The limit that bites first

People assume they will run out of storage. They almost never do. What they run out of is the number of files, called inodes. A free plan might allow tens of thousands of them, which sounds like plenty until a single content system with its caches and backups uses most of them on its own.

This matters because the file count fills up quietly. Your disk usage looks fine, and then new uploads start failing for no obvious reason. Knowing the real limit is an inode count, not a megabyte count, saves you an afternoon of confusion.

Getting it all onto the host, in order

If you are putting a site online for the first time:

  1. Connect over FTP with TLS, or open the file manager.
  2. Upload your site into public_html, not above it.
  3. Make sure the home page is index.html or index.php.
  4. Confirm files are 644 and folders are 755.
  5. If nothing loads, check the folder and the file name before anything else.

That is the entire job. Each step is a linked how-to, and the two that catch most people are the folder in step two and the home-page name in step three.