Most Toronto small business websites I rebuild have the same three problems. The owner spent money on something pretty in 2019, business changed, the site didn't, and now it's quietly costing them leads. The checklist below is what those rebuilds actually fix. None of it is exotic. All of it is the kind of thing a 2026 small business site needs to do, whether you sell suits in Mississauga or book consultations in Leslieville.
Print this. Open your current site in another tab. Score yourself honestly.
1. The phone number is visible without scrolling.
On mobile, click-to-call is still the highest-converting CTA on a local business website. If your number isn't in the top right of the header (or directly under the hero), you're forcing every interested prospect to scroll. Some won't.
Tap it on your own phone. Does it dial? If not, the link is broken and you've been losing calls for months. The fix is one HTML attribute: tel:.
2. Your address is in plain text on the contact page.
Not buried in an image, not in a Google Maps embed only. Plain text. Google's local pack ranks businesses partly by NAP consistency: Name, Address, Phone, matching exactly between your website, your Google Business Profile, and any directory listings.
Inconsistent address formatting (Unit vs Suite, "Toronto, ON" vs "Toronto, Ontario") is the most common reason businesses don't rank in their own neighbourhood. Pick one format. Use it everywhere.
3. There's a real human face somewhere on the homepage.
For service businesses especially: tailors, dentists, lawyers, accountants, real estate agents. Stock photos of "diverse smiling team in glass-walled office" are immediately recognised as fake. A single iPhone photo of you in your actual workspace beats a $10,000 brand photoshoot for trust.
Toronto buyers are skeptical. They've been burned. They want to know they're hiring a person.
4. Reviews are on the page, not just linked off.
"Read our reviews on Google" with a link is half a signal. Three actual quotes embedded directly on the homepage, with the reviewer's name and the platform they came from, is the full signal. People want social proof while they decide, not after they leave to check.
Two more things on reviews: don't embed a slow-loading Yelp widget (kills your page speed), and don't fake them. Both are obvious and both backfire.
5. The site loads in under two seconds on a phone.
Google's Core Web Vitals are a ranking factor. The number to care about: Largest Contentful Paint (LCP) under 2.5 seconds on mobile. Run your site through pagespeed.web.dev and check the mobile score.
Three quick wins if you're slow:
- Hero image is a 3MB JPG straight from a phone. Compress it to under 200KB.
- Five different fonts loading from Google Fonts. Cut to two.
- Custom WordPress theme with 14 plugins. The plugins are doing it.
6. There's structured data (schema) in the page.
If you've never heard of schema markup, your website is probably missing it. It's a small JSON block in the page's source code that tells Google exactly what kind of business you are, where, your hours, your services.
For local businesses, the schema type that matters most is LocalBusiness. Add it once and you're eligible for the rich result that shows your hours and rating directly in search.
You can check whether your site has it by going to Google's Rich Results Test and pasting your URL.
7. The site says where you are. Multiple times.
This sounds obvious but here's the failure mode: a Toronto contractor's website that says "we serve the GTA" once on the contact page and never mentions a specific neighbourhood. Google can't tell whether you're in Mississauga, Markham, or Etobicoke. Neither can a prospect who's trying to figure out if you're nearby.
Mention your service area in the hero, in the about section, in the footer, and in your alt text where it fits naturally. Not stuffed, just consistent. "Roofing in Vaughan and the north GTA" carries more local SEO weight than "Roofing services."
8. There's exactly one primary call-to-action per page.
A site with six "buttons" in the hero (Get a quote / Call now / Book consult / View services / Read reviews / About us) converts worse than a site with one button. People defer when they're given too many choices.
Pick the action that matters most for your business (usually "Book a call" or "Get a quote") and make that one button the loudest. Everything else is secondary.
9. The site works in dark mode and on someone's mom's iPad.
Test it. Open your site on:
- An older phone you have lying around (iPhone 11, Pixel 4 era)
- An iPad in portrait
- A laptop with the browser zoomed to 150% (older users do this)
- A Mac with Safari in dark mode (some sites become unreadable)
If anything's broken, fix it before you spend a dollar on ads. Ad traffic to a broken mobile experience is just paid bounce.
10. The contact form actually works.
This is the one almost nobody tests. Submit your own form. From a different email. Wait 24 hours. Did the message arrive in your inbox? If not, you've been losing every form submission for however long the form's been broken. I've inherited sites where this was true for three years.
Bonus: while you're at it, check what happens after submission. Does the page say "Thanks, we'll be in touch"? Does it auto-respond with an email? Both are conversion-friendly. Silence after a submit makes people wonder if it went through, then sometimes submit again (or worse, give up).
That's the checklist. If you scored 7 out of 10 or higher, your site is doing its job and the leak is somewhere else (probably your Google Business Profile or your call-handling). If you scored 4 or lower, a rebuild is the highest-leverage thing you can do this quarter.
If you want a second opinion on where your site sits, send me the URL: dylan@djdesigns.ca. I'll spend 15 minutes on it and reply with the three things that would move the needle most. No pitch attached.