SYSTEMS OPERATIONAL
Hosting

cPanel Disk Quota Exceeded: Find What's Filling It & Fix It

Getwebup 6 min read

Your site suddenly can't save uploads, emails start bouncing, and cPanel greets you with a red banner: "You have exceeded your disk usage quota." Nothing crashed - you just ran out of room. Here's how to find what's actually eating the space and clear it without breaking anything.

What "disk quota exceeded" actually means

Every shared hosting account on cPanel has a fixed storage limit set at the plan level - separate from a VPS's root disk. That limit covers everything under your account: website files, databases, email (including Sent and Trash), backups, and logs. Once you hit it, the account doesn't crash, but several things quietly start failing:

  • New emails bounce with a "mailbox full" or "over quota" error, even if the specific mailbox has room
  • File uploads and plugin/theme installs fail in WordPress with vague "unable to write" errors
  • Automatic and manual cPanel backups fail partway through
  • Database writes can start failing once MySQL's data directory is included in the quota

The tricky part: the warning email says you're over quota, but it doesn't say what is using the space. That's the actual troubleshooting job.

Step 1: Check your real usage in cPanel

Log in to cPanel and look at two places:

  • Home page sidebar / Stats: shows "Disk Usage" as a percentage or MB used out of your total allowance.
  • Files → Disk Usage: this gives a breakdown by top-level folder (public_html, mail, logs, tmp, backups) with sizes, so you can see the biggest folder at a glance instead of guessing.

If you have SSH access, the same thing from the command line is faster and more precise:

du -sh ~/* --exclude=public_html 2>/dev/null | sort -rh
du -sh ~/public_html/* 2>/dev/null | sort -rh

Run both - the first shows what's eating space outside your website (mail, logs, backups), the second drills into public_html itself (uploads, cache, old plugin folders).

Step 2: The usual suspects

In our support queue, quota tickets almost always trace back to one of these five things:

Where it hidesWhy it growsFix
Email accountsLarge attachments piling up in Inbox, Sent, and especially Trash/Spam that never gets emptiedWebmail → empty Trash and Spam per mailbox, or set an auto-purge rule for old mail
public_html/wp-content/uploadsFull-size images never resized, old media library exports, duplicate uploads from migrationsCompress/resize images, remove unused media, delete duplicate migration folders
cPanel backups in your home directoryFull-account backups (cpmove-*.tar.gz or backup-*.tar.gz) generated by a plugin or manual backup, saved locally instead of offloadedDownload a copy off-server, then delete the local copy from File Manager
Log fileserror_log, access-logs, or a WordPress debug.log left running for monthsClear old logs; make sure WP_DEBUG_LOG isn't left permanently on
DatabaseBloated wp_options table (autoloaded data), leftover tables from an old plugin, revision spamClean via phpMyAdmin or a plugin like WP-Optimize; delete unused tables from removed plugins

Email is the most common one we see, because Trash and Spam count toward quota just like Inbox does, and most people never look at them.

Step 3: Clear space safely

  1. Start with backups sitting in your home directory. They're usually the single biggest file and the safest to remove once you've downloaded a copy to your computer or an external storage service.
  2. Empty Trash and Spam on every mailbox under Email → Email Accounts → check usage per account, then log in to each one via Webmail and empty those folders.
  3. Delete orphaned uploads and old export files from public_html using File Manager, sorted by size (click the Size column to sort).
  4. Truncate or download-then-delete log files instead of leaving them to grow indefinitely.
  5. Re-check Disk Usage after each step - clearing email trash alone often recovers more space than people expect.

Avoid deleting anything inside wp-content/plugins, wp-content/themes, or database tables unless you're sure they're unused - that's how sites break instead of just running out of space.

Step 4: If you're still over quota after cleanup

Some accounts are simply undersized for what they're hosting - a growing email archive, a media-heavy WooCommerce store, or several add-on domains sharing one plan. If cleanup only buys you a few weeks before you're back to the same warning, it's a sizing problem, not a housekeeping problem. At that point, upgrading to a plan with more storage (or moving mail-heavy accounts to a separate mail plan) is the actual fix - not a monthly ritual of emptying Trash folders.

If you're on a reseller or VPS plan managing multiple cPanel accounts through WHM, check whether the quota is capped at the package level rather than the individual account - sometimes an account shows as over quota simply because WHM assigned it a smaller package than it actually needs. A quick look at WHM → List Accounts shows the assigned quota next to actual usage for every account, which is the fastest way to spot a mismatch across several sites at once.

A note on add-on domains and subdomains

If your account hosts multiple add-on domains, remember they all share the same disk quota - there's no separate allowance per domain. A single bloated add-on site can push the whole account over the limit while your main domain looks perfectly healthy. When you're hunting for space, run the Disk Usage check per add-on domain folder inside public_html, not just at the account level, so you know which site is actually responsible.

Prevention: keep quota warnings from coming back

  • Set a mailbox-level quota per email account (Email Accounts → Manage) so one inbox can't consume the whole account's allowance
  • Offload backups to external storage (S3, Google Drive, or your local machine) instead of storing them in public_html or your home directory
  • Turn off WP_DEBUG_LOG once you've finished debugging
  • Check Disk Usage in cPanel monthly, not just when the warning email arrives
  • Compress images before upload rather than letting WordPress store multiple full-size copies

A quota warning isn't an emergency by itself, but the failures it triggers - bounced mail, failed backups, broken uploads - are the kind of thing that snowballs if you leave it. Ten minutes in Disk Usage usually finds the culprit.

Frequently asked questions

Why does my mailbox say it's full when I have space left in my overall cPanel quota?

Each mailbox can have its own quota separate from the account-wide disk quota. Check Email Accounts in cPanel - if an individual mailbox limit is set lower than the account total, that mailbox can fill up on its own even while the account has room elsewhere.

Do Trash and Spam folders really count toward my disk quota?

Yes. Every message in every folder, including Trash and Spam, is stored on disk and counted. Emptying those two folders is often the fastest way to recover space, since most users never manually clear them.

Will deleting a cPanel backup file break my site?

No, as long as it's a completed backup archive (a .tar.gz file sitting in your home directory) and not an active file your site is reading from. Download a copy somewhere safe first, then delete the local copy - the site itself doesn't reference these files while running.

How much disk space does a typical WordPress site need?

It varies widely, but a lean WordPress site with light media usage often runs under 1-2 GB. Sites with large image libraries, WooCommerce product catalogs, or years of email history can easily need 10 GB or more - which is why checking Disk Usage periodically matters more than guessing.

Can I increase my disk quota without changing hosting plans?

That depends on your host. Some plans have hard caps tied to the plan tier and require an upgrade; others allow a quota bump as an add-on. Check with your hosting provider's support before assuming a full plan upgrade is the only option.

#cpanel #disk-quota #quota-exceeded #shared-hosting #email-accounts

Keep reading

Chat with Support