Scenario · Website + client area · Photography studio
Photos at the centre,
delivery without the hassle.
A photographer with great work and a website that does not show it off, while client galleries travel through transfer links that expire. A fast portfolio and a private area where every client finds their own photos.
Website scenario — professional photographer
Hundreds of shots
delivered via WeTransfer.
The scenario: a professional photographer with several years of experience — weddings in Tuscany, editorial portraits, corporate shoots. The work is recognised: a good Instagram following, returning clients, weekends booked in spring and autumn. The problem lies entirely in delivery and in the website.
Each wedding produces 400–600 final shots delivered via WeTransfer. The links expire after seven days. Clients download everything once, then lose the photos when they change phones; months later emails arrive asking to "send everything again". And the website — a photography template from a few years ago — has a gallery of compressed photos and no way to book a session except through Instagram messages.
What's needed is a professional system, not a better social profile.
"I lost an important client because the link to her photos had expired and she thought I'd deleted them. I don't want that to happen again."
— The story I hear most often from photographersPhotographer website requirements
What was
really needed.
Five areas that come out of the brief, a map of the real workflow and a review of the existing site — including the point where visitors leave the page.
Protected client area with private galleries
Every client must have personal access with a PIN or protected link to view and download their shots in high resolution. Galleries must stay accessible forever — not seven days like WeTransfer.
Photo session booking
A system to book a session directly from the website: type (wedding, portrait, corporate), preferred date, a short description of the project. No Instagram DMs, no emails lost in spam.
High-quality visual portfolio
A portfolio that shows the photographs as they deserve: full screen, with smooth transitions, fast loading despite the resolution. Three filterable categories (Weddings, Portraits, Corporate) with intuitive navigation.
Testimonials and social proof
Collecting and showing reviews from happy clients automatically. There are often dozens of lovely messages on Instagram and WhatsApp that nobody knows how to show on the site credibly.
SEO for a wedding photographer
Most clients come from Instagram or word of mouth — but every month many couples search for "wedding photographer Florence", "Chianti photographer", "Tuscany wedding photos". An old site usually ranks for none of these searches.
Technical challenges of an online photography portfolio
Where the real
problems hide.
A photography site with a private client area and high-resolution galleries brings together challenges ranging from file security to mobile UX, from image optimisation to storage. These are the five most critical.
Photographer portfolio development process
How I
organise the work.
Five to six weeks in four phases. One clear priority: the client area ships before the public portfolio, because there are already archived sessions waiting for a permanent home. The public site comes after.
Review of the existing site, a map of the current delivery flow (WeTransfer, emails, messages), heatmaps and available Analytics data. Architecture: public site and private client area as one system with separate routes.
Complete design system: a dark, warm palette, editorial typography (serif for headings, a clean sans for the interface), rules for the photo grid. An interactive client-area prototype in Figma, tested with two real clients before writing code.
Full build: PHP backend for authentication and signed URLs, HTML/CSS/JS front end for portfolio and client area, bulk upload to archive existing sessions, automatic WebP previews, booking form with email notifications, Google reviews for testimonials.
Full testing (sign-in, download, booking) on real iOS and Android phones, on-page SEO (meta, ImageGallery and LocalBusiness schema, image sitemap), Google Search Console, DNS switch and go-live. Training on the gallery management panel.
Optimized web photo gallery solution
How I solve
each problem.
Signed URLs with temporary tokens: private galleries without a CDN
Every client receives a unique link by email. The link contains an encrypted token that is validated server-side by a small PHP script. The high-resolution originals live in a directory outside the server's document root — not directly accessible via URL, even if you know the path.
Once the token is valid, PHP generates signed URLs that expire after a few hours for each file. Downloads go through readfile() with the right headers, never exposing the real path. Galleries stay available forever, and access can be revoked at any time from the panel.
The system uses no external services. Extra cost for the client area: €0/month. Storage comes from the existing hosting, enough for hundreds of GB without changing infrastructure.
LQIP + srcset: visual quality and speed, together
For every photo uploaded to the portfolio, a PHP script automatically generates three WebP versions (400px, 900px, 1800px) and an LQIP placeholder (a blurred 20×20px version in base64, ~300 bytes). The img srcset tag serves the right format to the right device.
The blurred placeholder shows up straight away: you see the photo's composition while the real one loads. On a phone over 4G, perceived load time drops from about 3 seconds to under half a second. The grid uses CSS Grid with a fixed aspect-ratio to avoid layout shifts while loading.
Text content + Schema.org: visibility without sacrificing aesthetics
The classic problem with photography sites is that Google doesn't see the photos — it sees alt text, headings, structure. The answer is to separate the two experiences: the portfolio stays visual and immersive, while each category gets its own page with structured text, local keywords and structured data.
The "Wedding photographer Florence" page has text optimised for local searches, testimonials with Review markup, LocalBusiness schema with the area served, and an image sitemap so the portfolio gets indexed. A realistic goal: page one for "wedding photographer + city" within the first months.
Photographer website tech stack
Technologies chosen, not imposed.
No CMS, no framework, no paid external services. The whole system — portfolio, client area, bookings, image handling — runs on PHP and JavaScript on ordinary hosting costing a few euros a month.
No subscription to Pixieset, ShootProof or similar platforms (usually €30–80/month). The custom system adds no monthly cost. Within a couple of years the savings cover the cost of building the client area.
Example goals — photographer website
What to expect
in the first months.
Example figures, not a client's results: realistic goals for a scenario like this, to be measured with Google Analytics 4, Google Search Console and booking data.
"A bride writes six months after the wedding to see the photos again from her new home. She finds everything and downloads what she needs." That's the result that matters: no client ever loses their photos again.
— The concrete goal of the client areaLessons for a photography portfolio
What I bring
to every project like this.
These are the points I always keep in mind in projects for creatives and photographers.
The real problem often isn't the website, it's the workflow. Here you don't need a prettier site: you need to stop links from expiring. Understanding the real pain point before proposing technical solutions is the difference between a project that changes something and a simple redesign.
Testing the UX with real people before building always saves time. Letting a couple of wedding couples try the client-area prototype brings out the snags straight away (typically: a "download all" button that's hard to see). Fixing it in Figma takes minutes; after development, hours.
Subscription platforms for photographers cost more than they seem. Pixieset, ShootProof, Pic-Time: €30–80 a month, so €1,000–3,000 over three years. A custom system costs more upfront but pays for itself — and the photographer keeps full control of data and galleries.
Photo file security isn't obvious. Many photographers' websites put original photos in a public server folder, accessible to anyone who knows the path pattern. Protecting files outside the document root with PHP is a good practice that takes an hour of work and is worth a lot for client trust.
SEO and visual design aren't incompatible: they just need separate architecture. You don't have to choose between a beautiful portfolio and an indexed website. The solution is having SEO-optimized content pages that lead to the visual portfolio — not putting the text inside the portfolio itself.
Have a similar project in mind?
Tell me about it: we start from goals and priorities, and the first call is free.