How to Create Folders in the WordPress Media Library

by Zadhid Powell | Dec 11, 2024 | Tutorials

It starts small. You upload a few images, then a few hundred, and one day you need the logo from last spring. You scroll. And scroll. Forty seconds later you give up and upload it again, which is exactly how a library ends up with six copies of the same file.

WordPress doesn't have media folders. Core sorts your uploads into year and month paths on the server and shows everything in one flat grid. The WordPress 7.1 field guide covers a new default browsing experience for the Media Library, including infinite scrolling, but it doesn't mention folders. So you add them with a plugin.

How to Create Folders in the WordPress Media Library (the Short Answer)

Install a media folder plugin. These plugins make virtual folders. The folder tree lives in your database, and your files stay exactly where they were uploaded, so no URL changes and no links break. Infinite Uploads includes media folders on every plan, and that's what I use. Here's the whole process:

  1. Install and connect a folder plugin. With Infinite Uploads, go to Plugins > Add New, search for Infinite Uploads, then click Install Now and Activate. Connect your site from the plugin screen (the connect guide walks through it). Folders switch on once you have an active plan.
  2. Open Media > Library. A folder sidebar appears next to your files.
  3. Click Add New Folder, type a name like "Blog Images" and press Enter. Right-click a folder and choose Add Subfolder to nest one inside it.
  4. Select the files you want to move and drag them onto the folder.
  5. Click a folder before you upload, and new files land in it from the start.

The longer version is below, along with how the free options compare and what folders can't fix.

Why WordPress Doesn't Have Media Folders

WordPress keeps uploads in wp-content/uploads, sorted by year and month. A picture you upload in August 2025 ends up at a path like this:

Browser address bar showing an uploaded image URL with the wp-content/uploads/2025/08 path and the file name

Those year and month folders exist on the server only. The Media Library screen never shows them, and you can't move a file between them from the dashboard. For a small site that's fine. Once you have thousands of images, videos and PDFs, it turns into a headache fast.

  • You can't group files by project or topic, like "Landing Page Assets".
  • Team members upload duplicates because they can't find the original.
  • Publishing slows down while you hunt through endless thumbnails.
  • Cleanups and migrations get messy when nobody knows what's used.

Virtual Folders vs. Physical Upload Paths

Virtual folders organize your attachment records in the WordPress interface. The file stays in its wp-content/uploads/YYYY/MM/ location, so attachment IDs and public URLs don't change. Think of it like sticky notes on filing cabinets. You can rearrange the notes all day and the cabinets never move.

Physical folder tools move files or create real directories. That can fit a storage workflow, but it can also change URLs, responsive image data, offload rules and backups. If you go that route, test on staging first. For an established site, I stick with virtual folders.

Media Folder Plugins Compared

Every plugin in this table creates virtual folders, according to its own listing. The differences are in what's free and what you pay for.

PluginWhat you getCost
Infinite UploadsUnlimited nested folders, drag and drop bulk moves, color coding, 8 sort options and 6 search filters, plus cloud offload and CDN deliveryIncluded on every plan, from $8.25/mo billed yearly
FileBirdUnlimited folders and subfolders for media in the free version. Pro adds sorting by file size, folder colors and moreFree, with a paid Pro version
Folders by PremioUnlimited folders in the free version. Unlimited subfolders need ProFree, with a paid Pro version
Real Media LibraryCore folder features in the Lite version. Pro adds subfolders and moreFree Lite, with a paid Pro version

If all you want is folders, the free versions above work. I use Infinite Uploads because the folders come with the rest of the media setup I need, which I get to below. Whichever you pick, know that your folder structure lives in that plugin. Switch plugins later and you'll likely rebuild it by hand.

Create and Use Folders with Infinite Uploads

Step 1: Create Your First Folder

With the plugin connected, go to Media > Library. You'll see a new sidebar for creating and managing folders.

  1. Click the Add New Folder button.
  2. Give it a descriptive name, such as "Blog Images" or "Product Photos".
  3. Press Enter and the folder appears in the sidebar.
Animated screenshot of the WordPress Media Library with the folder sidebar, creating a new folder next to the image thumbnails

Need subfolders? Right-click a folder and choose Add Subfolder. A "Blog Images" folder with one subfolder per blog category is a good example. Infinite Uploads has no nesting limit, but I'd stop at two levels. Deeper trees get harder to browse than the flat library you started with.

Animated screenshot of the Media Library folder sidebar showing a folder with a subfolder inside it

Step 2: Move Your Existing Files

Now the cleanup. Select the files you want, one or a few thousand, and drag them onto a folder in a single move. Bulk selection works in both the grid and list views of the Media Library.

Animated screenshot of dragging an image from the Media Library grid onto a folder in the sidebar

Remember, these are virtual folders. The file itself never moves on your server, and your file URLs never change, so links in your posts and pages keep working. According to the release post, the folder structure is stored separately from your files.

Step 3: Upload Straight into a Folder

  1. Click the folder you want in the sidebar.
  2. Click Upload, or drag your files into the library.
Animated screenshot of uploading files into a selected folder in the WordPress Media Library

That keeps the library tidy from day one, so you skip the move-it-later chore. You can also color code folders, and sort by name, title, author, date added, date modified, size or file type. The media library folders page lists every sort option and search filter. Folders also show up in the media picker of page builders like Elementor, Divi and Bricks.

Pros and Cons of Media Library Folders

Folders are worth it. I'd still rather you know the tradeoffs up front.

  • Pro: Files take seconds to find, so people stop uploading duplicates.
  • Pro: Teams stay consistent when they share one folder layout.
  • Pro: Virtual folders leave your URLs alone, so migrating a site doesn't break them.
  • Con: You need a plugin, because WordPress has no folders built in.
  • Con: Folders are virtual. They organize the dashboard, not the files on your server.
  • Con: Folder data stays with the plugin that made it, so changing plugins usually means rebuilding.

Best Practices for Media Organization

  1. Start early. It's far easier to sort 200 files than 20,000.
  2. Name folders so they explain themselves. "Homepage Images" beats "Misc" and "Folder1" every time.
  3. Keep it to one or two levels. Deep trees slow people down.
  4. Train your team. A folder system only works if everyone uses it.
  5. Clean up unused files carefully. A tool like Media Cleaner can flag them, but it can also flag files used in page builder data or theme settings. On an Infinite Uploads business plan, Media Cleanup checks post content, page builders, settings, and public pages, and adds a Usage column to the Media Library so you can see where a file is used before you touch it. Back up and test on staging before you delete anything.

Name your files before you upload them, too. sydney-skyline-at-sunset.jpg tells search engines something. IMG0001.jpg doesn't. Fill in the alt text for every image. And compress before you upload, because big files slow your pages down. Our guide on compressing and optimizing images for WordPress covers it.

Folders Fix Finding Files, Not Where They Live

I've set up folders for plenty of clients, and the pattern repeats. The library is finally tidy, and then the host emails about disk space, or the site is slow because every image and PDF still comes off the same server. Folders organize the library. They don't move one byte off your hosting plan.

That's why Infinite Uploads covers three jobs in one plugin: Offload, Optimize and Organize. Offloading is like moving boxes out of your office and into a warehouse that ships straight to your customers. Your server handles WordPress, and the CDN handles your media.

  • Offload. Simple Sync copies your Media Library to the cloud and serves it through a CDN with 119+ points of presence, so your hosting storage and server load stop growing with every upload.
  • Optimize. Image Optimization serves smaller AVIF and WebP versions from the CDN and leaves your originals untouched. It's included on Business plans only.
  • Organize. The folders, sorting and search in this guide come with every plan, and there's no separate folder plugin to buy.

If you already pay for a folder plugin and a separate offload plugin, that's two plugins doing what one subscription does. The same plan covers unlimited WordPress sites, with no per-site licensing.

Plans start at $8.25/mo billed yearly ($99/yr) for 25 GB of storage and 50 GB of CDN bandwidth, or $11/mo month-to-month. Image Optimization starts on the Business plan at $24/mo billed yearly ($29/mo month-to-month) for 100 GB of storage and 200 GB of bandwidth. You can try any plan free for 7 days, so you can see your own library in folders before you decide.

Recent Post

Infinite Uploads Black Friday: coming November 15th, 50% off your first year

Newsletters

Written By: Zadhid Powell

B2B SaaS & Tech Content Specialist | Writing content for CEOs, CTOs, Engineers, and Tech Leaders.

Create Your Account And Start Exploring

Try the Infinite Uploads plugin and discover all its benefits. By registering, you'll gain access to technical support, receive updates, and enjoy exclusive content. Don't wait any longer and join us today!