Proof marketing
Contractor Portfolio Website: 9 Things Every Project Page Needs to Win Jobs
What separates a contractor portfolio that wins jobs from a photo gallery nobody reads: the nine things every project page needs, a worked example, and how to get found in local search.

Quick answer
A contractor portfolio wins jobs when every project has its own page with a clear title (service and town), a matched before-and-after pair, the problem, what you did, the result, one detail that shows quality, a customer quote, the practical facts (timeline, scope, materials), and one obvious way to ask for a quote. A gallery of photos without that context rarely convinces anyone.
Why most contractor portfolios don't work
A gallery of 60 photos shows that you've done work. A page for one job shows a homeowner that you can do theirs.
Most contractor websites have a "Gallery" or "Our Work" page: a grid of photos, no captions, no dates, no locations. It looks busy, but it doesn't answer the questions a homeowner is actually asking: have you done a job like mine, near me, recently, and what was it like?
Homeowners do their homework. In BrightLocal's 2026 survey, 97% of consumers said they read reviews before choosing a local business, and 45% said they now use AI tools like ChatGPT when researching local businesses, up from 6% the year before. Both reward the same thing: real, specific, well-described work that a search engine or an AI can understand and a person can trust.
A project page does that. It's one job, told properly, with enough detail that a stranger believes it.
Pick the right projects first
Show the work you want more of, not simply every job you've finished.
Before you build pages, decide what you want the portfolio to sell. If you'd rather do full roof replacements than small repairs, lead with replacements. If kitchens pay better than bathrooms, make sure your kitchens are the first thing people see.
A good starter portfolio is six to twelve strong projects:
- Your three most profitable service types, at least two jobs each
- A mix of towns you want more work from
- At least one job that shows a hard problem you solved
- Recent work, ideally from the last 12 months
Don't wait for the perfect set. Publish the first three, then add one every week or two. A portfolio that grows steadily looks alive; one last updated in 2023 raises questions.
The nine things every project page needs
Each project page should answer, in order: what was this, where, what was wrong, what did you do, how did it turn out, and how do I get the same?
Here are the nine elements, roughly in the order they should appear on the page.
1. A specific title: service plus town
"Project #14" and "Recent Work" don't help anyone. A title like "Roof Replacement in Lakewood, CO" or "Driveway and Patio Cleaning in Winter Park" tells the homeowner instantly whether this is relevant, and it's exactly the phrase people type into Google.
Keep the format consistent across your portfolio: [Service] in [Town]. Add a detail if it helps: "Cedar Deck Rebuild with Hidden Fasteners in Oviedo."
2. A matched before-and-after pair
The pair is the heart of the page. Same spot, same height, same zoom, similar light. If the angle changes between the two photos, the comparison loses most of its power. Put the pair right at the top, ideally with a slider so people can drag between them.
Our guide to before-and-after photos for contractors covers how to get a matched pair on a busy job site.
3. The problem, in the customer's words
Start the story with what was wrong, the way a homeowner would describe it: "Black streaks down the north side of the roof and moss along the gutters," not "organic growth remediation required." A future customer with the same problem should read the first two lines and think "that's my house."
4. What you did, in plain steps
Explain the work in three to six steps, including anything a homeowner wouldn't know to ask about. This is where you show expertise without bragging.
For example: "We soft-washed rather than pressure-washed, because high pressure strips the granules that protect shingles. We treated the moss, flushed the gutters and downspouts, and checked the flashing around the chimney while we were up there."
5. The result, with specifics
"Looks great!" says nothing. Say what changed: "The roof looks close to new again, the gutters drain freely, and the customer's HOA letter about roof stains was resolved." If you can honestly add numbers, do: a timeline, a size, a before and after measurement.
6. One detail that shows quality
Pick one close-up that proves care: clean cut lines at the window trim, neatly bent step flashing, straight paver joints, a mulch edge you could draw with a ruler. Add a sentence explaining why it matters. This is the photo that separates you from the cheapest quote.
7. A real customer quote
A line from the customer, with their first name and town (with permission), does more than a paragraph of your own praise. Grab it from their review or ask one question at handoff: "What would you tell a neighbor thinking about doing this?" The answer is often better than anything you'd write.
8. The practical facts
Homeowners want to know what they're in for. A small facts box answers it:
| Fact | Example |
|---|---|
| Service | Full roof replacement |
| Town | Lakewood, CO |
| Timeline | 2 days, including tear-off |
| Scope | 28 squares, new underlayment and ridge vent |
| Materials | Architectural shingles, synthetic underlayment |
| Crew | 4 people |
Leave out anything you're not comfortable publishing, like price, but the more concrete the facts, the more trustworthy the page.
9. One clear next step
End with one obvious action: "Get a quote for your roof" with a short form or a phone number, not six different buttons. The best quote forms are short (name, contact, a sentence about the job) and let homeowners attach photos, so you can often quote without a site visit.
A worked example: from camera roll to project page
Here's how a real job turns into a page in about 20 minutes.
Say you just finished a house wash and gutter cleaning in Winter Park. You have eleven photos on your phone and a happy customer named Linda.
- 1Choose the pair. Pick the street-view before and after from the same spot. Pick one close-up of the gutter before and after.
- 2Write the title. "House Washing and Gutter Cleaning in Winter Park, FL."
- 3Write the problem. "Green algae on the north wall, black streaks under the gutters, and gutters overflowing in every storm."
- 4Write the work. "Low-pressure soft wash with a plant-safe rinse, gutters cleaned by hand and flushed, downspouts cleared, windows rinsed."
- 5Write the result. "Siding back to its original white, gutters draining properly, done in about four hours."
- 6Add the detail. A close-up of the clean gutter line with a note on why hand-cleaning prevents damage.
- 7Add the quote. Linda's review line: "They were careful with my plants and the house looks brand new."
- 8Fill in the facts. Service, town, timeline, crew size.
- 9Add the button. "Get a quote for your house wash."
That page now works in four places: your website, a link you text with your next quote, a post on your Google Business Profile, and a social post. One job, four uses.
Where the portfolio should live
On a domain you control, fast on a phone, and easy for you to add to from the job site.
Contractors usually end up with one of three setups. Each works if you understand the trade-offs.
| Setup | Good for | Watch out for |
|---|---|---|
| Pages on your own website | Full control, every page builds your domain's authority | Adding a job is often slow, so it stops happening |
| A portfolio tool on a subdomain (work.yourbusiness.com) | Fast to update from your phone, pages built for you | Make sure it's on your domain, not only the tool's |
| Social media only | Quick and free | You don't own it, it's hard to search, and posts disappear from view in days |
Whatever you choose, three things matter more than the platform:
- Speed on a phone. Most homeowners look at your work on their phone, often on mobile data. Google's Core Web Vitals guidance treats the main content loading within 2.5 seconds as good. Big uncompressed photos are the usual culprit.
- Easy updates. If adding a job takes an evening at the laptop, it won't happen weekly. The best setup is the one your team will actually use after a long day.
- Your domain. Links people share and reviews that point to your pages should build your business, so keep the portfolio on a domain you own or can take with you.
Make it local without spamming
Real jobs in real towns are the most natural local SEO a contractor can have.
When you publish projects with the town in the title and the text, you naturally build relevance for "[service] in [town]" searches. Google's local guidance says relevance is one of the three main ranking factors, alongside distance and prominence.
What doesn't work anymore is copying one page 40 times and swapping the city name. Those pages are thin, customers can tell, and Google's spam policies specifically call out doorway pages built to rank for similar searches that funnel people to the same place. A town page is only worth having if it shows real work from that town.
A better structure:
- One project page per strong job, titled service plus town
- Service pages (roof replacement, gutter cleaning) that link to your best projects of that service
- Town pages only where you have several real projects, each linking to those jobs
Our local SEO guide for contractors goes deeper on this.
Use reviews as proof, not decoration
A review next to the matching project is worth far more than a slider of anonymous stars at the bottom of the homepage.
Put the customer's words on the page for their job. Link to your Google reviews so people can verify them. Reply to reviews publicly; BrightLocal's 2026 survey found 89% of consumers expect owners to respond.
Never write reviews yourself or post "testimonials" you can't back up. The FTC's 2024 rule bans fake reviews and testimonials, including AI-generated ones.
Publish once, use it everywhere
A project page is the most reusable marketing asset a contractor has.
Once the page exists:
- Text the link with every quote for a similar job ("here's one we did two streets over")
- Post it to your Google Business Profile with the before-and-after photo
- Share it on Facebook and Instagram
- Print a door hanger with the photo and a QR code, and leave it with the neighbors
- Send it to the customer with your review request
This is exactly the workflow DonePages automates: photos in, page built, then posted and shared. You can see the features if you'd rather not do it by hand.
Measure whether the portfolio works
Traffic is nice. Quote requests from project pages are what matter.
Track these monthly:
- 1Visits to project pages, and which ones get the most
- 2Quote requests that started on a project page
- 3How many of those turned into jobs
- 4Which services and towns produce the most requests
After three months you'll know which projects sell. Make more pages like those, and move them to the top of your portfolio.
Common mistakes to avoid
Most portfolio problems come from missing context, not bad work.
- No captions: photos without a story don't persuade
- Mismatched angles: before and after from different spots
- Only finished photos: without the before, there's no transformation
- Out-of-date work: nothing from the last year makes people wonder if you're still in business
- Buried quote button: make the next step obvious on every page
- Huge image files: slow pages lose mobile visitors; Google's Core Web Vitals guidance targets the main content loading within 2.5 seconds
Fix those and even a small portfolio of six strong projects will outperform a gallery of a hundred photos.
Common questions
Questions this guide answers
What should a contractor portfolio include?+
Individual project pages, each with a service-and-town title, a matched before-and-after pair, the problem, the work, the result, one quality detail, a customer quote, practical facts like timeline and scope, and one clear way to request a quote.
How many projects should be in a contractor portfolio?+
Six to twelve strong projects is a good start, focused on the services and towns you want more work from. Then add one new project every week or two so the portfolio stays current.
Is a photo gallery enough for a contractor website?+
Usually not. A gallery without captions shows that you've done work, but doesn't show a homeowner you can do theirs. Project pages with context convert far better and help local search.
Should I put prices on my project pages?+
It's optional. Many contractors leave prices out because every job is different. Concrete facts like timeline, scope and materials still build a lot of trust without a price.
Do project pages help with local SEO?+
Yes. Real jobs with the service and town in the title and text build relevance for local searches. Avoid thin copied city pages; one real project beats ten pages that only swap the town name.
How do I get customer quotes for my portfolio?+
Use a line from their review with permission, or ask one question at handoff: "What would you tell a neighbor thinking about doing this?" Include their first name and town if they're comfortable with it.
Sources and further reading
Put the guide into practice