I uploaded my images but I cannot see them in my html pages

Getting Started | Updated 2026

You have uploaded images to your hosting account, but when you load your website they show as broken icons or do not appear at all. This is almost always caused by one of three things: the file path in your HTML does not match where the image actually is, the filename case does not match, or the image is outside of public_html.

01. File Names Are Case-Sensitive

This is the number one cause of missing images, especially for users coming from Windows where Photo.JPG and photo.jpg are treated as the same file. On a Linux web server, they are completely different files.

Common mismatches include:

  • Extension case - .JPG vs .jpg vs .Jpg. Cameras often save files with uppercase extensions like .JPG or .PNG.
  • Name case - MyPhoto.jpg vs myphoto.jpg. HTML editors on Windows may auto-lowercase references.
  • Folder case - /Images/logo.png vs /images/logo.png. The folder name matters too.

The easiest fix is to rename all your image files to lowercase (including the extension) and update your HTML to match. Lowercase filenames are a web development best practice that avoids this issue entirely.

02. Using the Correct File Path

The path in your HTML src attribute must match the actual location of the image file relative to the HTML page or relative to the site root.

Relative paths (recommended)

If your HTML page is at public_html/index.html and your image is at public_html/images/logo.png, the correct reference is:

<img src="images/logo.png" alt="Logo">

If your HTML page is in a subdirectory like public_html/about/team.html, you need to go up one level:

<img src="../images/logo.png" alt="Logo">

Root-relative paths

Starting the path with a forward slash makes it relative to the website root (your domain), regardless of where the HTML file is:

<img src="/images/logo.png" alt="Logo">

This always resolves to yourdomain.com/images/logo.png no matter which page the tag appears on.

Full URLs

<img src="https://yourdomain.com/images/logo.png" alt="Logo">

This works from anywhere but is less flexible if you ever change domains.

Debugging Tip

Right-click the broken image in your browser and select "Open image in new tab" (or "Copy image address"). Look at the URL the browser is trying to load. Then compare it to where the file actually is on the server using cPanel File Manager. The mismatch will be obvious.

03. Make Sure Images Are in the Right Directory

Your website files must be inside the public_html directory (or the appropriate document root for addon domains). Files uploaded to your home directory, the tmp folder, or any location outside public_html are not accessible via the web.

Check in cPanel File Manager:

  1. Navigate to public_html
  2. Look for your images folder (usually images, img, assets, or wp-content/uploads for WordPress)
  3. Verify the image files are there

If your images are in the wrong place, move them to the correct location inside public_html. For details on the hosting file structure, see Uploaded My Site But Cannot See It and FTP Root Directory and Account Structure.

04. Check File Permissions

Image files need to be readable by the web server. The correct permissions for image files are 644 and for directories 755. If permissions are too restrictive (like 600 or 700), the web server cannot read the file and will return a 403 error instead of the image.

To check and fix permissions in cPanel File Manager, right-click the file or folder and select "Change Permissions." Set files to 644 and directories to 755.

Via SSH or Terminal:

find ~/public_html/images -type f -exec chmod 644 {} \;
find ~/public_html/images -type d -exec chmod 755 {} \;

If you enabled Hotlink Protection in cPanel (under Security > Hotlink Protection), it prevents other websites from embedding your images. However, if configured incorrectly, it can also block your own site from loading its images.

Check that your own domain is listed in the "URLs to allow access" field. Both yourdomain.com and www.yourdomain.com should be included.

06. FTP Transfer Mode: Binary vs ASCII

If you uploaded images via FTP using ASCII transfer mode instead of binary mode, the files may have been corrupted during upload. Images, PDFs, ZIP files, and any non-text files must be uploaded in binary mode.

Most modern FTP clients (including FileZilla) default to "Auto" mode, which detects the file type and chooses the correct mode automatically. If your images look corrupted or are the wrong file size after uploading, re-upload them in binary mode. In FileZilla, go to Transfer > Transfer Type > Binary.

For more on FTP best practices, see our FTP client guide.

Still Cannot See Your Images?

If you have checked all of the above and images are still not loading, open a ticket and include the URL of a page with broken images. We will check the server side for you.

Open a Support Ticket

Quick Recap

  1. Check case sensitivity - Photo.JPG and photo.jpg are different files on Linux
  2. Verify the file path - Right-click the broken image to see what URL the browser is requesting
  3. Images must be inside public_html - Files outside this directory are not web-accessible
  4. Permissions should be 644 - 600 or 700 will block the web server from reading the file
  5. Upload images in binary mode - ASCII mode corrupts non-text files

Helping users troubleshoot website image issues · Last updated March 2026 · Browse all Getting Started articles

  • 539 Users Found This Useful

Was this answer helpful?

Related Articles

How to Migrate Your Website From Another Host

Getting Started | Updated March 2026 Moving your website to Ultra Web Hosting doesn't have to...

How to Use FileZilla and Other Popular FTP Client Software

FTP | Updated March 2026 FTP (File Transfer Protocol) is the standard way to upload files to...

I want to run my own log analysis tool - Where are my logs?

Getting Started | Updated 2026 Your hosting account generates access logs and error logs that...

Removing the Under Construction Default Page

Getting Started | Updated March 2026 If your domain shows "This website is still under...

Getting Started with NodeJS

Getting Started | Updated March 2026 Node.js is a JavaScript runtime that lets you run...



Save 30% on web hosting - Use coupon code Hosting30