WordPress Agency Workflow:
One Media Library, Unlimited Client Sites
Most agencies manage media the same way their clients do: one library per site, each growing independently, each eventually triggering the same storage problems. The agencies that operate at a different level have figured out that shared FTP infrastructure changes the entire economics of multi-site media management.
Updated 2026
Agency Operations Guide

Most WordPress agencies manage their client sites’ media the same way individual site owners do: each site has its own uploads directory on its own hosting server, each growing independently over time, each eventually producing the same predictable storage warnings, the same slow migrations, the same bloated backups, and the same overhead of managing an ever-growing portfolio of files spread across dozens of hosting accounts with no central visibility or control.
The agencies that have moved past this model have built something different: a shared media infrastructure where a single FTP storage server serves as the media destination for every client site in the portfolio. Each client’s files live in their own subdirectory on a centrally managed, efficiently priced storage server. Each client’s WordPress installation connects to that shared infrastructure and serves media through a CDN. The per-site storage cost approaches zero as the portfolio grows. The management overhead per new site drops to a few minutes of configuration.
This guide explains how that shared media infrastructure model works, how to architect it, what the economics look like compared to the fragmented per-site approach, and how to implement it using a WordPress FTP media plugin that supports per-site path configuration on a shared server.
Why the per-site media model becomes a problem at agency scale
When you manage two or three WordPress sites, the per-site media model is fine. Each site has its own hosting, its own uploads directory, its own backup job. The overhead is linear and manageable.
At ten, fifteen, or twenty sites, the linearity becomes a liability. Ten separate hosting accounts with ten separate storage approaching limits on different schedules. Ten separate backup configurations, each producing archives that grow monthly. Ten separate migration processes when a client changes hosting providers. Ten sets of storage warnings arriving at unpredictable intervals requiring individual responses. The work of managing media is not about any single site. It is about the aggregate of all sites, and the aggregate grows faster than the portfolio.
With ten active client sites, you can expect one or two storage warnings arriving in any given month. Each requires diagnosing the situation, deciding whether to upgrade or offload, implementing the fix, and verifying the result. If you upgrade, the problem returns on a new timeline. If you offload each site independently with no shared infrastructure, you are repeating the same configuration process ten times, each in a slightly different context, with no economies of scale.
Ten sites with an average 8GB uploads directory each means 80GB of media files being included in backup jobs. At daily backup frequency with a 14-day retention policy, your aggregate backup storage consumption is over 1TB across the portfolio. This is real money in backup storage costs, real time in backup job duration, and a real headache when you need to restore something quickly.
An agency doing four to six migrations per month across its portfolio, whether moving clients to better hosting, onboarding new clients, or deploying staging environments, encounters the media transfer bottleneck repeatedly. Each migration involving a large uploads directory is a multi-hour operation. Across twelve migrations per year for a ten-site portfolio, that is potentially dozens of hours spent on file transfers that add no value to the client relationship.
With per-site media on per-site hosting, there is no single place to see the aggregate storage usage across your portfolio, identify which clients are approaching limits, or audit what assets exist across all your client sites. Management is reactive rather than proactive, and proactive management of ten hosting accounts requires active monitoring of ten separate dashboards.
The shared FTP infrastructure model: how it works
The shared infrastructure model replaces per-site storage with a single FTP or SFTP server that functions as the media destination for every client site in the portfolio. The architecture is straightforward once you understand the directory structure and how per-client path configuration works.
/clients/
/acme-corp/
/wp-content/uploads/2024/
/wp-content/uploads/2025/
/riverside-cafe/
/wp-content/uploads/2024/
/tech-solutions-inc/
/wp-content/uploads/2025/
/shared-assets/
/brand-logos/
/stock-photos/
/templates/
Each client has a dedicated subdirectory that mirrors the WordPress uploads path structure. The shared-assets directory holds agency-managed assets that can be referenced across multiple client projects. One server, complete separation, central visibility.
Each client WordPress site’s FTP media plugin is configured with the same server hostname and credentials, but a different remote root path pointing to that client’s subdirectory. When a site uploads an image, it goes to /clients/client-name/wp-content/uploads/ rather than the server root. The CDN is configured to deliver from client-specific subdomains or paths that map to the correct subdirectory. The result is complete functional separation between clients on shared physical infrastructure.
For agencies that prefer stricter isolation, individual FTP user accounts can be created for each client directory with chroot restrictions that prevent any client’s credentials from accessing other clients’ subdirectories. This is a standard SFTP server configuration that takes a few minutes per client and provides the kind of access separation that satisfies enterprise security requirements for agencies handling sensitive client assets.

The economics: what shared infrastructure costs per client
The financial case for shared infrastructure becomes compelling as the portfolio grows. The cost of a dedicated FTP storage server is essentially fixed regardless of how many client sites it serves, which means the per-client cost decreases with every site added.
At ten client sites, the shared FTP model costs $0.80 per client per month for media storage infrastructure. The comparable per-site approach using S3 with a plugin license costs $8 to $12 per client per month once you factor in storage charges, egress fees, and a proportional share of the plugin license. The per-client saving at ten sites is roughly $80 to $110 per month, or $960 to $1,320 per year.
At twenty sites the saving grows further, not because the FTP server costs more, but because the per-site alternative continues to scale linearly while the shared infrastructure cost stays essentially flat. This is the compounding advantage of shared infrastructure: the cost curve for additional sites approaches zero while the alternative continues multiplying.
The shared brand asset library: a workflow benefit most agencies miss
Beyond per-client media storage, a shared FTP server enables something that genuinely improves agency workflow: a centralized brand asset library that all client sites can draw from without duplicating files.
Consider a typical agency scenario: you manage ten client sites for businesses in the same industry vertical. Several of them use stock photography from the same licensed sources. Several use the same agency-produced illustrations or icons for their marketing materials. Several have brand guidelines that reference common template elements. In the per-site model, each of these shared assets is uploaded separately to each site’s media library, creating redundant copies with no central version control.
With a shared FTP server, a /shared-assets/ directory can store agency-managed assets that any client site can reference through direct CDN URLs. When you license a new stock photo collection for a campaign, you upload it once to the shared directory, configure the CDN path, and all relevant client sites can reference those images without each site needing its own copy. When a brand asset is updated, you update it once and every site using it reflects the change.
An agency launches a seasonal marketing campaign for eight restaurant clients simultaneously. Each site needs the same three hero images with different color treatments. In the per-site model, this means uploading 24 images (three per site) across eight different WordPress admin dashboards. With shared FTP infrastructure, the base images are uploaded once to /shared-assets/seasonal-campaign/ and the three variants for each client go to /clients/client-name/campaign/. The shared base images are referenced directly by CDN URL. Total upload operations: three base images plus variants, not 24 separate uploads.

How to onboard a new client site in under 10 minutes
One of the most tangible workflow benefits of shared infrastructure is the onboarding speed for new client sites. Once the shared FTP server is running and the base configuration is established, adding a new client to the infrastructure is a repeatable 10-minute process that any team member can execute without deep technical knowledge.
SSH or SFTP into the server and create /clients/new-client-name/. Set appropriate permissions. If using isolated credentials, create a new SFTP user chrooted to this directory. This is a 30-second operation once you have done it once. Document the path and credentials in your client management system.
In your CDN dashboard, create a new pull zone or subdirectory mapping pointed at the new client directory on your FTP server as the origin. Most CDNs let you create a client-specific subdomain like client-name.cdn.youragency.com that pulls from /clients/new-client-name/. This is your CDN base URL for this client.
Install WP FTP Media on the client’s WordPress site. Enter the FTP server hostname, credentials (or client-specific credentials if using isolation), set the remote root path to /clients/new-client-name/, and enter the client’s CDN base URL. Test the connection. Enable automatic uploads. This configuration is identical in structure to every other client, just with different path and CDN URL values.
If the client site has an existing media library, initiate the background sync to transfer files to the client’s FTP subdirectory. This runs unattended. Your 10-minute hands-on time is complete. The sync continues in the background while you move to the next task. When complete, enable local file deletion to free the client’s hosting disk space.
How client offboarding works with shared infrastructure
Client offboarding is often the moment where shared infrastructure advantages become most visible, because the process of cleanly handing over a client’s assets and making their site independent of your infrastructure is either painless or painful depending on how the media was set up.
With the shared FTP model, the client’s media files are all in one directory that is clearly scoped to them: /clients/their-name/. Handing over these assets means giving the client a copy of this directory, or transferring it to a storage server they control. The files are organized, complete, and entirely self-contained. There are no mixed assets to untangle.
The client’s WordPress database remains untouched throughout this process because the plugin used output-based URL rewriting. Their database still contains the original WordPress upload paths. The new agency or in-house team can reconfigure the plugin to point at their own storage, and images resume loading without any database changes required.

What this model looks like at 20 sites: a concrete picture
To make the operational benefits concrete, here is what the media management reality looks like for an agency managing 20 WordPress sites under the shared infrastructure model versus the per-site model.
The aggregate time savings across a 20-site portfolio on the shared infrastructure model are substantial. Assuming four migrations per year per site, the difference between 3-hour and 20-minute migrations represents roughly 170 hours of saved migration time annually. Add the storage warning response time, the reduced backup job monitoring, and the faster client onboarding, and the time recovered from the shared infrastructure model can realistically amount to 250 or more person-hours per year for a 20-site agency portfolio.
According to WP Tavern’s agency operations research, infrastructure management overhead is consistently ranked among the top operational challenges for WordPress agencies. The shared FTP media infrastructure model is one of the highest-leverage architectural decisions an agency can make to reduce that overhead, and WP FTP Media’s agency-grade multi-site media management plugin is the operational layer that makes the model work in practice.
Build the media infrastructure that scales with your agency instead of against it
WP FTP Media gives WordPress agencies the per-client path configuration, output-based URL rewriting, and parallel sync capabilities needed to run a shared FTP media infrastructure that costs less per client with every site added.

Hey, just tried this shared media setup for our client sites. Big difference not having to juggle separate uploads folders everywhere. The CDN integration actually works like it should no weird lag on image loads.
Love this for busy agencies!
This solved a problem I didn't even realize was driving me crazy until it disappeared. we used to burn hours every month moving media when clients switched hosts ten different steps, ten different ways something could go wrong. Now? One central FTP server, one move, and every client's files stay neatly in their own folder.