How to upload files to multiple WordPress sites
WordPress does not provide a built-in bulk uploader for separate sites. For two or three sites, upload through each Media Library; for larger batches, use a REST API script or a centralised MainWP uploader, then check every destination for limits and overwrites.
- 01Decide where files belong
- 02Upload files to one site
- 03Repeat the manual process
- 04Automate with the REST API
- 05Use a centralised uploader
- 06Verify every destination
What you need
- Administrator or editor access to each site
- The files to upload and a consistent destination plan
- HTTPS enabled if using the REST API
- A backup or staging copy for important sites
Decide where files belong
First decide whether the files need to become Media Library items or simply need to exist in a server directory. Images, PDFs and files that you will insert into posts should normally be uploaded through the Media Library. WordPress treats each site’s media library separately, including in a multisite network.
Use the same filename and destination only when you are certain that replacing an existing file is safe.
Upload files to one site
On the first site, go to Media and choose Add New, or open the Media Library and upload there. WordPress shows the maximum upload size on the upload screen, and the hosting account controls that limit. If a file type is rejected, check the site’s allowed media types and hosting restrictions.
Confirm that the file opens at its attachment URL before repeating the process.
Repeat the manual process
For two or three sites, the manual route is usually fine: sign in to each dashboard, open Media → Add New, upload the files, and verify the result. This needs no extra plugin.
The drawback is repetition. A missed site, different filename, failed upload or incorrect folder is easy to overlook, especially when the sites have different upload limits.
Automate with the REST API
For a developer-managed batch, send each file to every site’s WordPress media endpoint and authenticate each request with a separate Application Password. WordPress documents the media REST API and recommends Application Passwords for authenticated API access over HTTPS.
Give the integration only the permissions it needs, keep credentials out of the script repository, and record each site’s response. This route creates media items; it is not the same as copying arbitrary files into a server folder.
Use a centralised uploader
When you regularly manage many connected sites, the faster route is a centralised uploader such as MainWP File Uploader. From the MainWP dashboard, choose the files, set the destination path, select the child sites, and start the upload. The extension can create a missing directory on a child site.
Check the destination before uploading: an existing file with the same name in the same directory is overwritten, and spaces in names may be converted to hyphens. This is useful for distributing downloadable files, but confirm separately whether your workflow also requires Media Library attachment records.
Verify every destination
After the batch finishes, check each site rather than trusting the overall success message. Confirm the file exists, opens correctly, has the expected filename, and appears in the Media Library if that was required.
If a site failed, check its PHP and WordPress upload limits, permissions, security rules, available disk space and whether the destination directory was correct. Restore from backup if an overwrite replaced the wrong file.
Let MainWP File Uploader do it
Centralized multi-site uploads with drag-and-drop and activity logs, ideal for managing files across many WordPress sites.
Sources
- wordpress.org /documentation/article/media-add-new-screen/?utm_source=open…
- developer.wordpress.org /rest-api/reference/media/?utm_source=openai
- kb.mainwp.com /docs/file-uploader-extension/?utm_source=openai
Questions
- Can WordPress upload one file to several separate sites by itself?
- No. WordPress’s standard Media Library workflow operates inside one site at a time, so separate installations require separate uploads unless you add automation or a management tool. Manual uploads are reasonable for a small number of sites. For recurring batches, a REST API script or centralised uploader avoids repeated logins and makes it easier to track failures.
- Is WordPress Multisite the same as multiple WordPress sites?
- No. Multisite runs several sites from one WordPress installation, but each site still has its own media library and upload area. Separate WordPress installations need their own authentication and upload requests. Do not assume that uploading to the network’s main site makes the file available as a media item on every other site.
- Will uploading a file to a folder add it to the Media Library?
- Usually no. Copying a file into an uploads directory gives you a server file, but it does not necessarily create the attachment record that WordPress uses for titles, captions, alt text and Media Library searches. If the file must be inserted through the editor, upload it through the site’s Media Library or use the media REST API for that site.
- Why does the same upload work on one site but fail on another?
- The sites can have different maximum upload sizes, permitted file types, PHP settings, security rules, disk quotas or filesystem permissions. Check the limit shown on each site’s Media upload screen, then inspect the hosting and security logs if the file is still rejected. A centralised tool cannot bypass a destination site’s server limits.
- Does a centralised uploader overwrite existing files?
- It can, depending on the uploader and destination settings. MainWP File Uploader’s documentation says that a file with the same name in the same directory is overwritten. Use unique filenames or a new destination when existing files must be preserved, and test with a non-critical file before distributing a large batch.