A photography store is an unusual WordPress site: the product is the file, the catalogue is enormous, and the thing you sell must never be reachable by guessing a URL.
Most sites store images. Here the images are the inventory, the storefront and the delivery, all at once.
One upload becomes a thumbnail, a preview, a watermarked comp and more. Generated on upload in-request, a bulk import of two thousand photos times out on the first hundred.
A full-resolution file sitting under /wp-content/uploads is one guessed URL away from being free. Purchased assets live outside the served directory entirely.
A permanent download URL is a permanent licence. Links are signed and time-limited, so a shared link stops working rather than becoming a distribution channel.
Every derivative is a row in postmeta. A hundred thousand images with six sizes each is over half a million rows before a single search runs against them.
The single fastest way to ruin a gallery is serving a 40 MB master where a 60 KB thumbnail belongs. Size selection is enforced at delivery, not left to the theme.
The dangerous day is not a busy one, it is the day somebody bulk-uploads a shoot and every derivative is generated at once on the machine serving customers.
Forty images is forty requests, and whether the page is fast is decided entirely by which size each of them resolves to.
These differ from a standard WordPress site on the same plan, and each follows from the media being the product rather than decoration.
| Setting | What we do | Why |
|---|---|---|
| Derivative generation | Queued as background work instead of running during upload | One photograph becomes several rendered sizes, so a bulk import multiplies into thousands of resize operations and exhausts the request that triggered them. |
| Original file storage | Held outside the served directory, reachable only through signed access | A full-resolution master under the uploads directory can be fetched by anyone who guesses its path, which gives away the thing the site exists to sell. |
| Download URLs | Signed and time-limited rather than static paths | A permanent link is an unlimited licence the moment it is forwarded, and nothing on the site can tell that it has been. |
| Attachment metadata | Indexed, with unused image sizes pruned | Each rendered size adds a postmeta row per image, so a six-size preset turns a hundred thousand photographs into most of a million rows before any search touches them. |
| Image size selection | Enforced at delivery rather than trusted to the theme | A template that outputs the full-size file into a grid transfers tens of megabytes to render thumbnails, which no amount of caching in front of it can undo. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Free migration, derivatives off the request path, and originals nobody can guess their way into.