A failed WordPress image upload usually comes down to file restrictions, server limits, permissions, or a plugin conflict. Start by uploading a small JPEG, then work toward server settings only if that fails.
The exact error message helps you separate a file problem from a hosting problem. Use the upload methods below to rule out interface confusion, then follow the fixes in order.
Key Takeaways
- Test one small JPEG before changing settings. If it uploads, investigate the original file’s format, size, or dimensions.
- PHP upload limits control file size, while memory and execution limits affect image processing.
- Back up your site before configuration changes, and isolate plugin or theme conflicts without disrupting visitors.
How to Upload Images in WordPress

Upload through the Media Library
- In the WordPress dashboard, open the Media section and go to the Media Library.
- Click Add Media File to upload media files. Some versions label this Add New.
- Choose Select Files, select your images, and click Open or Upload in your computer’s file picker.
Hold Ctrl on Windows or Cmd on Mac to select multiple files. You can also drag and drop files onto the uploader. The official Media Add New documentation describes this upload screen. Newly uploaded files appear in the Media Library.
Insert an Image block
Open your post or page and choose the image option in the block inserter. Click Upload for a new file or Media Library to reuse an uploaded image.
After selecting it, adjust its size, image alignment, caption, and alt text. Save or update the page to publish the change.
Use the Classic Editor
Click Add Media above the Rich Text Editor. Drag and drop files onto the Media Library grid until it displays “Drop files to upload,” then release.
You can also use Upload Files > Select Files. Set the alignment, size, or caption, then click the blue Insert into page button. Some screens say Insert into post.
Upload from a URL
On WordPress.com, click Upload from URL, enter the media file’s direct address, and click Upload.
Self-hosted WordPress doesn’t provide this importer by default. The Insert from URL option displays a remotely hosted image without copying it into your library.
Start With Browser and File Checks
Retry with a clean browser session
Use a clean browser session as the first step in Troubleshooting Image Uploads. Save your draft, reload WordPress, and sign in again. An expired session or interrupted connection can stop an otherwise valid upload.
Next, try a private window with extensions disabled, or use another browser. If that works, clear your browser cache and investigate extensions that block scripts or requests.
Upload one small JPEG through Media > Add Media File. If it succeeds there but fails inside your editor, focus on the editor or its plugins.
Reduce the file and use a supported format
WordPress supports .jpg, .jpeg, .png, and .gif. Its official image and file attachment guide explains supported media, while WordPress.com’s accepted file types guide covers its hosted service.
WebP and AVIF also work on supported installations, but server image libraries can affect processing. For diagnosis, export a fresh JPEG rather than renaming the extension.
Use a simple filename such as garden-photo.jpg. Then compress the file and reduce oversized dimensions before retrying. A 6000-pixel photo can exhaust processing resources even when its compressed file size looks modest.
SVG uploads are blocked by default for security reasons. Don’t disable file validation to force an upload.
Rule Out Plugin and Theme Conflicts
Isolate plugins without breaking your live site
If every image fails, especially after an update, test plugins next. Back up your files and database first.
Use a staging site or the Health Check & Troubleshooting plugin’s troubleshooting mode. That mode lets you test a clean configuration for your session without switching off features for visitors.
Start with image optimizers, security plugins, and editor extensions. Repeat the same upload after each change. Our guide to finding WordPress plugin conflicts covers safe isolation methods.
Test a default theme
If plugins aren’t responsible, temporarily activate a default theme such as Twenty Twenty-Five in your test environment.
Retry the same image. If it uploads, investigate your theme’s image-processing hooks or editor integrations. Restore unaffected plugins afterward.
Keep a record of what changes the result. Disabling everything without retesting leaves you without a confirmed cause.
Adjust PHP Upload and Image-Processing Limits

Raise the limit that rejected the file
Look beneath the uploader for Maximum upload file size. For more detail, open Tools > Site Health > Info > Media Handling.
WordPress normally calculates its upload ceiling using the smaller of PHP’s upload_max_filesize and post_max_size. Multisite settings and filters can lower it further.
Use your hosting control panel to raise both values. In cPanel, this is usually MultiPHP INI Editor; Plesk provides PHP Settings. Keep post_max_size slightly larger to accommodate the rest of the request.
Our guide to increasing WordPress upload size covers configuration methods. On managed hosting without these controls, ask support to change the effective limits.
Separate processing failures from upload restrictions
“The server cannot process the image” often points to resizing, memory, or execution time. Try reducing the longest edge to 2560 pixels before uploading again.
A smaller file in megabytes can still require substantial memory. Pixel dimensions determine how much image data the server must unpack.
For server-side processing, inspect PHP’s memory_limit, WordPress’s admin-side WP_MAX_MEMORY_LIMIT, and execution-time limits. Increasing WP_MEMORY_LIMIT alone doesn’t increase the permitted upload size.
If GD and ImageMagick are unavailable under Media Handling, contact your host. Also ask support to investigate repeated processing failures rather than raising limits without examining the error logs.
Fix Upload-Folder Permissions and HTTP Errors
Restore write access to the uploads directory
“The uploaded file could not be moved to wp-content/uploads” means PHP received the file but couldn’t save it.
Use your hosting file manager or SFTP to inspect wp-content/uploads and its dated subfolder. 755 for directories and 644 for files are common starting permissions, but ownership must also allow PHP to write.
Don’t apply 777 as a shortcut. Ask your host to correct ownership when permissions appear normal.
Also inspect available disk space, inode usage, and account storage quotas. A full account can block uploads even when the directory is writable.
Identify what the HTTP response means
For a generic “HTTP error,” open your browser’s developer tools, select Network, and retry the upload. Look for the failed request’s status.
These responses narrow the investigation:
| Response | Likely area to investigate |
|---|---|
| 403 Forbidden | Security plugin, firewall rule, or access restriction |
| 413 Request Entity Too Large | Web server or proxy request-size limit |
| 500 or 504 | PHP failure, image-processing crash, or timeout |
A 413 can occur before PHP runs, so raising PHP limits alone won’t fix it. Your host may need to adjust Nginx’s client_max_body_size.
Contact hosting support when small JPEGs still fail after conflict testing. Include the timestamp, filename, dimensions, error text, and HTTP status so they can match the failure to server logs.
Optimize and Display Images After Upload
Choose the right block and image size
Use a Gallery block for two side-by-side images or larger collections. On WordPress.com, the Tiled Gallery block offers tiled mosaic, circular grid, square tiles, and tiled columns. A Slideshow block presents images in a sequence visitors can browse one at a time.
The Media & Text block places an image beside text and can stack on mobile. A Cover block creates a banner, with full-width alignment and fixed-background effects where supported.
Crop, resize, or rotate images through the media editor. WordPress’s Edit Media documentation describes these controls.
Compress images before uploading as part of image optimization, or use one plugin such as ShortPixel, Imagify, Smush, or EWWW Image Optimizer. Avoid running overlapping optimizers.
Distinguish display problems from upload failures
WordPress.com’s troubleshooting guidance separates failed uploads, blurry images, and images appearing twice because they require different fixes.
If an uploaded image looks blurry, select a sufficiently large image size rather than stretching a thumbnail. Our guide to WordPress featured image dimensions explains how generated sizes affect display.
If an image appears twice, your theme may display the featured image above an identical Image block.
Add descriptive alt text for meaningful images. Leave decorative images’ alt text empty. To find existing files, use search and filters; the standard WordPress.com library doesn’t organize media into folders or categories.
Frequently Asked Questions
Is PNG or JPEG better for WordPress?
Choose JPEG for photographs when you want smaller files. PNG suits screenshots, diagrams, and graphics requiring transparency or crisp edges.
WebP can provide smaller files with good quality, while AVIF offers another efficient option. Neither format removes the need to choose sensible dimensions.
Why won’t WordPress upload multiple images?
Each file must meet the site’s restrictions. Large batches can also encounter connection, processing, or request limits.
Try smaller batches and inspect Max simultaneous file uploads under Site Health > Info > Media Handling. On Multisite, network upload and storage limits may also apply.
Where can I find an image that uploaded successfully?
Open Media > Library, then search by filename or filter by date and media type. The official Media Library screen guide explains the available views.
Inside a post, choose Media Library in an Image block to insert it without uploading another copy.
Fix the Failed Layer First
Start with a small JPEG and a clean browser session. Then test conflicts before changing PHP settings or filesystem permissions.
The most useful distinction is uploading versus processing. File-size limits, write failures, and thumbnail-generation errors need different fixes.
When the problem reaches server configuration, send your host the exact error and a reproducible test. That gives them a clear failure to investigate.


