Sentinel Maintenance Inc · Toronto and the GTA
Thirty-five years of work, on one unrankable page
The work
SMI has cleaned and maintained commercial property across Toronto since 1989. Thirty-plus services, nineteen service areas, a safety programme and a team structure, all of it crammed onto a handful of pages nobody could find.
We rebuilt the site as twenty-four pages, one subject each, and organic sessions rose 38%.
Results
What the work moved
The problem
One page cannot be about thirty things
The old site had a single Services page listing everything SMI does, from janitorial contracts to mould remediation. Google had nothing to rank, because no page was about any one thing. The rebuild split that into a page per service and a page per area, then wired them together.
/about
/services ← everything lived here
/contact
nothing to rank for "office cleaning Toronto"
/about-us
/services ← hub
/services/office-cleaning
/services/condominium-cleaning
… 30+ service pages
/areas-we-serve ← hub
Toronto, North York, Scarborough … 19
The build
Four pages doing four different jobs
Every template earns its own layout rather than reusing one content block. Hover a window to scroll it.




Technical SEO
The redirect that would not behave
Search Console kept reporting insecure internal links long after the site was fully HTTPS. Most agencies would have closed the ticket at the first sweep. Working out why it kept coming back took four passes, and the answer was not in the codebase at all.
Sweep the codebase
Every .js, .jsx, .ts, .tsx and
.json file searched for hardcoded http://smi.ca. Zero hits.
Sitemap fully https://. Live page source clean.
Check the redirect
The .htaccess already carried a 301 permanent redirect from
HTTP to HTTPS, exactly as it should. On paper the ticket was closed.
Read what the server actually returns
It was answering 307 Temporary Redirect, not 301. A temporary
redirect tells Google the HTTP address might come back, so it keeps crawling it and keeps
reporting it. The rule was right; the response was not.
Escalate with the exact fix
The override sits in the Apache VirtualHost for port 80, above the application and outside our access. Handed to the host with the precise change required rather than a vague bug report, so it could be actioned without another round of diagnosis.
Local search
Cities, nineteen pages
Somebody searching for a cleaning contractor types a city name. A single GTA page cannot answer nineteen of those searches, so each area gets its own page, its own photography and its own copy about the teams working there.
- Toronto, North York, Scarborough, Etobicoke, Vaughan
- Thornhill, Richmond Hill, Markham, Maple, Concord
- Milton, Mississauga, Brampton, Woodbridge, Oakville
- Burlington, Hamilton and more


Great job designing and building our website
“Mira Visions did a great job designing and building our business website. From the initial concept to the final product, they helped create a functional, interactive, and informative website that meets our needs. The process was smooth, and they were responsive throughout the project. We are very happy with the end result and would recommend Mira Visions to businesses looking for website design and development services!”