WordPress image upload errors can appear as an HTTP error, a failed upload, a blank thumbnail, a permissions message or an endless processing spinner. The cause may be the file itself, PHP limits, incorrect permissions, exhausted disk space, image-processing failures or a security rule.
Test a smaller, simple image
Rename the file using lowercase letters, numbers and hyphens. Convert it to JPG, PNG or WebP and remove unusual metadata. Try a smaller image to determine whether the problem is related to dimensions, file size or format.
Check the maximum upload size
Go to Media > Add Media File and review the displayed limit. If the image exceeds it, increase the relevant PHP settings or reduce the file size. My guide explains how to increase the WordPress maximum upload file size.
Confirm available disk space
Check disk and inode usage in cPanel or your hosting dashboard. WordPress cannot create the original file and thumbnail sizes when the account is full. Old backups, cache files, logs and staging copies often consume space unexpectedly.
Check the uploads directory permissions
WordPress normally stores media in wp-content/uploads. Directories commonly use permission 755 and files 644, although the correct values depend on the server. Ownership is just as important as the numeric permissions.
Do not use 777 permissions. Ask the host to correct ownership when files were created under the wrong server user.
Verify the upload path
In most installations, WordPress manages the uploads path automatically. An outdated custom path left after a migration can send files to a directory that no longer exists. Check Settings > Media and the database only when a custom upload path was previously configured.
Disable image optimization and security plugins
Temporarily deactivate the plugin most likely to intercept the upload. Image compression, WebP conversion, security, offloading and media-library plugins can all affect processing. Clear caches and retest with one image.
Check PHP memory and image processing
Large pixel dimensions can exhaust memory even when the compressed file is small. Resize camera images before uploading and check whether the server uses Imagick or GD. Review PHP logs for memory errors or image-processing failures.
If the log reports exhausted memory, follow my WordPress memory error guide.
Review ModSecurity and firewall logs
A host firewall may block a filename, request pattern or file type. If only certain images fail, ask the host to review ModSecurity events at the exact upload time. Do not disable the firewall permanently to solve one false positive.
Regenerate missing thumbnails
If the original image uploads but thumbnails are missing, confirm WordPress can write to the uploads directory and that image processing works. Then regenerate thumbnails with a trusted tool. Create a backup first on a large media library.
Use SFTP only as a diagnostic step
Uploading an image directly by SFTP does not automatically register it in the WordPress Media Library. Use SFTP to test directory access or transfer large administrative files, not as the default replacement for the media uploader.
Prevent image upload problems
- Resize and compress images before uploading.
- Monitor storage and inode usage.
- Keep media and optimization plugins updated.
- Avoid changing permissions without understanding ownership.
- Test uploads after migrations and PHP upgrades.
Persistent media errors usually leave evidence in PHP or firewall logs. Use that evidence instead of repeatedly changing random settings.
