WP-Content Uploads Folder [Full Guide]

WP Content Uploads folder

When a WordPress image disappears, a migration loses media, or your hosting account runs out of storage, the problem often leads back to one directory: wp-content/uploads. This folder holds much of the visible media on your site, but it is also easy to misunderstand.

This guide explains what the folder does, how WordPress organizes files inside it, how to upload and register files, and how to troubleshoot, optimize, and secure your media without breaking existing content.

What Is wp-content/uploads?

wp-content/uploads is WordPress’s default filesystem directory for media uploaded through the Dashboard. Images, PDFs, audio files, videos, and other permitted attachments are normally stored there. The directory sits inside wp-content, alongside folders such as plugins and themes.

Each attachment has two related parts: a physical file on the server and a Media Library record in the WordPress database. The file provides the bytes; the database record stores its title, URL, MIME type, metadata, author, and generated image sizes. Deleting one without considering the other can create broken links or unused files.

How WordPress Organizes Uploads

By default, WordPress creates year-and-month folders. A file uploaded in October 2026 may use a path like /wp-content/uploads/2026/10/example.jpg. You can review or change this behavior under Settings > Media, although changing it does not move existing files automatically.

What files are stored there?

  • Original uploads such as JPEG, PNG, WebP, PDF, MP3, and permitted video files.
  • Generated image sizes created by WordPress and themes for thumbnails, cards, and responsive layouts.
  • Plugin-generated assets when a plugin deliberately uses the uploads directory for exports, caches, or user files.
  • Year and month folders that keep large libraries easier to navigate.

Uploads folder vs Media Library

The Media Library is not a visual version of every file in the directory. WordPress displays attachments registered in the database. If you copy a file into wp-content/uploads with SFTP, it may work at its direct URL but remain absent from the Media Library until you import or register it.

How to Access wp-content/uploads

Access with hosting File Manager

Open your hosting control panel, launch its File Manager, and enter your WordPress document root, often named public_html. Open wp-content, then uploads. From there, browse the year and month folders. Always confirm you are in the correct site root before changing anything.

[screenshot] Hosting File Manager showing the WordPress document root with wp-content and uploads folders visible.

Access with SFTP

SFTP is usually safer than plain FTP because it encrypts credentials and file transfers. Create an SFTP connection in a client such as FileZilla, Cyberduck, or your IDE using host, port, username, and an SSH key or password supplied by your host. Navigate to the same wp-content/uploads path on the remote side.

How to Upload Files to wp-content/uploads

Upload from WordPress Dashboard

For normal media, use Media > Add New or insert an Image, File, Audio, or Video block while editing content. WordPress validates the file type, sends it to the server, creates an attachment record, and generates image sizes where applicable. This is the recommended method because filesystem and database stay synchronized.

Upload with SFTP

Use SFTP for migrations, bulk transfers, backups, or files larger than your dashboard limit. Upload into the appropriate year/month directory, or into a controlled custom folder used by your application. Avoid overwriting a file unless you understand which posts reference its URL and have a backup.

Register manual uploads

Files copied by SFTP do not automatically become Media Library items. Use a trusted media import tool or a developer workflow that creates an attachment post with the correct MIME type and metadata. Do not use an unmaintained file manager plugin merely to make one file visible.

Common Upload Errors and Fixes

File is too large

The effective limit can come from PHP, the web server, WordPress, a reverse proxy, or hosting storage. Check the maximum size shown at Media > Add New. Ask your host to raise limits, or adjust server configuration when you control it. Changing only one PHP value may not help if post_max_size or a proxy limit is lower.

File type is not permitted

WordPress blocks formats that may introduce security or compatibility risks. Use a standard format where possible. If a project genuinely needs another type, allow it through a maintained security-reviewed solution and validate uploads by MIME type, extension, and file content. Never make every file type uploadable.

Permission errors

Incorrect ownership or permissions can prevent WordPress from creating folders and files. A common baseline is directories at 755 and files at 644, but your host’s user and group model matters more than memorized numbers. Ask hosting support to correct ownership instead of applying 777.

Tip: Before deleting or replacing anything inside uploads, make a backup and search your content for its URL. A filename can be referenced by posts, CSS, widgets, email templates, or external sites.

How to Optimize WordPress Uploads

  • Resize before upload: Do not upload a 6,000-pixel photo when content displays it at 1,200 pixels.
  • Choose efficient formats: WebP or AVIF can reduce image weight while preserving quality. Keep originals when your workflow needs them.
  • Generate only useful sizes: Review theme and plugin image-size settings so every upload does not create unnecessary derivatives.
  • Use lazy loading carefully: WordPress handles many images automatically, but above-the-fold images should not be delayed blindly.
  • Offload large libraries: A CDN or object storage can reduce hosting disk usage and speed delivery for geographically distributed visitors.
  • Keep videos elsewhere: YouTube, Vimeo, or dedicated video hosting usually handles transcoding and streaming better than shared hosting.
  • Clean unused media: Remove files only after confirming they are not referenced by content, templates, backups, or integrations.

For broader site speed work, see this practical guide to WooCommerce speed optimization. Many upload improvements, especially image sizing and delivery, apply to any WordPress site.

How to Secure wp-content/uploads

Uploads are public by design when they contain images or downloadable files, so security means controlling what can be uploaded and executed. Keep WordPress, themes, and plugins updated; limit upload capabilities; scan files; use strong administrator authentication; and maintain tested backups.

  • Disable script execution: Configure the web server so PHP and other executable scripts cannot run from uploads. Ask your host for Apache or Nginx-specific rules.
  • Disable directory listing: Prevent visitors from browsing folder indexes when your server exposes them.
  • Validate uploads: Restrict extensions and MIME types, sanitize filenames, and reject unexpected content.
  • Protect private files: Do not store confidential documents in a public uploads path. Use authenticated downloads or private object storage.
  • Monitor changes: Security tools and file integrity monitoring can reveal unexpected uploads or modified files.

Do not rename wp-content as a substitute for security. Obscurity may alter URLs and break plugin assumptions, while proper permissions and upload validation address the actual risk.

FAQs About wp-content/uploads

Can I delete old upload files?

Yes, but check references first. Deleting a file from the server can leave broken images or downloads. Use Media Library tools that identify unattached files, review results manually, and keep a backup before bulk deletion.

Why are uploads not showing in WordPress?

Common causes include a missing attachment record, wrong file permissions, an incorrect upload path, stale cache, a plugin conflict, or a broken URL. Confirm the file exists, check its attachment record, clear relevant caches, and inspect browser and server logs.

Can I change the upload folder?

Yes, but it affects URL generation, existing references, backups, and plugins. Change it only with a migration plan, redirects where needed, and a complete backup. Do not edit database paths casually.

Should I upload videos to wp-content/uploads?

Short, lightweight clips may be fine. Large or high-traffic videos usually belong on a video host or object storage with a CDN. WordPress hosting often lacks efficient transcoding, adaptive streaming, and bandwidth capacity.

Conclusion

wp-content/uploads is core WordPress infrastructure: it stores media, supports generated image sizes, and supplies files referenced across your site. Understanding its folder structure and database relationship makes migrations, troubleshooting, and cleanup much safer.

Resize and optimize media, use SFTP for controlled transfers, block script execution, and back up before changes. For help with WordPress maintenance, performance, or custom development, hire a WordPress developer or reach out directly.

About The Author

Picture of Andriy Haydash

Andriy Haydash

Andriy Haydash is a WordPress Expert who helps people build and launch successful WordPress membership and e-learning websites.

Note: Not all of the articles are written directly by me.
Affiliate Disclaimer: Some links in the post may be my affiliate links

The Ultimate Managed Hosting Platform

Before YOU Leave...
Join My Newsletter

Get practical tips & tricks on how to start, grow and market your course/membership site.