Here's a release that looks perfect on every dashboard. The pipeline goes green on a Friday afternoon, the homepage loads in under two seconds, and the team logs off. What nobody checked is the consultation form. Its mail credentials lived in an environment file that never made it to the new server, so every enquiry since 4 p.m. has gone nowhere.
On most sites that's an annoying bug. On a law firm website it's a person who was arrested last night, filled in a form at 2 a.m., heard nothing, and called the next firm on the list by breakfast.
So here's my short answer. A law firm website deployment is finished when a real visitor can still find the right practice-area page, reach the firm by phone or form, and have that enquiry arrive. Test backups, secrets, SSL, redirects and the contact path before you push, then monitor the enquiry flow after you ship.
Start with the path a client actually takes
Consider what a visitor actually needs from a local law-firm website. Someone looking for a Grand Strand DUI lawyer may arrive on a practice-area page, read about the firm's Horry County focus, and then use the published phone number or consultation form to make contact.
Johnny Gardner Law's current website uses precisely those elements: DUI-focused information, Conway and Horry County service positioning, direct telephone contact, and a consultation form.
From a deployment perspective, that means the critical path is not merely:
homepage loads
It is:
search or landing page → relevant information → working contact method → successful enquiry
If that chain breaks, the release has failed from the user's perspective. On that site the form also sends the visitor to a downloadable guide on the next page, so the thank-you step is part of the chain too. I build the whole checklist around that chain.
A green pipeline tells you the code built. It doesn't tell you anyone can still reach the firm.
Before you push: data, secrets and the front door
01Take a backup, then prove it restores
A backup you've never restored is a hope, not a plan. Snapshot the database and uploads, restore them somewhere disposable and open a page. Law firm sites often store form submissions, so check those came back too.
02Keep secrets out of the repo, and confirm they reached production
SMTP passwords, CRM API keys and reCAPTCHA secrets belong in environment variables or your host's secret store, never in Git. The failure I worry about most isn't a leaked key. It's a missing one, because the site still loads without it.
03Check SSL and the redirect chain
Load the http, https and www versions. All three should land on one HTTPS URL in a single hop. Check the certificate's expiry date while you're there. A browser warning is the last thing a nervous visitor needs.
04Treat staging as a rehearsal, not a guarantee
Staging catches most problems. It won't catch the production mail relay, the real DNS records or the caching layer your host adds. Write down which parts of production staging doesn't copy, and test those after launch. Our application deployment section goes deeper on that gap.
Test the contact path the way a client would
05Submit the consultation form for real
Fill it in on production with a clearly labelled test entry, then follow it all the way: the confirmation screen, the thank-you or download page, the firm's inbox and the CRM. Tell the office first so nobody calls your test lead back.
06Tap the phone number on an actual phone
Every published number should be a tel: link in international format. Tap it on iOS and Android. A number that renders as plain text on mobile costs calls, and it'll never show up in an error log.
07Check the consent text and legal links
Many firms now collect SMS consent on their forms. The privacy policy and terms links beside those checkboxes need to resolve, because a 404 there is a trust problem and possibly a compliance one. The firm's own lawyer can tell you which.
08Keep old practice-area URLs alive
If URLs changed, map every old practice-area page to its new home with a 301. Google's guidance on redirects explains why permanent redirects keep search signals attached. Then spot-check the pages people land on from search, not just the homepage.
After shipping: prove it, watch it, know how to undo it
09Test speed on a phone, on mobile data
People look for a lawyer from a parking lot, not a desk. Check the main landing pages against Core Web Vitals and load them on a mid-range phone off Wi-Fi. If the form sits below a heavy hero video, that's a release problem.
10Monitor the enquiry, not just the homepage
An uptime ping tells you the server answers. Add a synthetic check that loads the contact page and confirms the form is there, and send alerts to someone who reads them at night. Legal sites get used outside office hours.
11Read the logs and the mail headers
Watch the server error log for the first hour, then open the headers on your test enquiry. If the new server isn't covered by the domain's SPF and DKIM records, the message can pass every test and still land in spam.
12Write the rollback plan before you need it
Know which release you'd go back to, how long it takes, and what happens to enquiries submitted in between. Keep the previous build and a database snapshot ready. If rolling back means rebuilding from memory at 11 p.m., you don't have a plan.
Verify after shipping
- [ ] Test enquiry received in inbox and CRM
- [ ] tel: link tapped on iOS and Android
- [ ] Old URLs return 301, not 404
- [ ] Monitoring alert fired once, on purpose
My rule for legal sites
I'd rather ship a law firm redesign a day late than ship it on a Friday without a real form test. Design review catches the typography. Only you, with a test enquiry and a phone in your hand, catch the release that quietly stops people reaching a lawyer. I'm collecting more of these checks in production readiness, and the CI/CD section covers automating the dull parts.