What's actually killing your rankings right now.
My first check on your site was from the outside, the way anyone can, using your sitemap and Google's own tools. That already showed the big problems. Since then Russell has given me access to the actual site code, so I have now confirmed every issue below against the real source and the live site. This isn't a guess, it's verified.
Your sitemap has 532 pages. 523 of them are the same page with a suburb name swapped in (/handymanservicesabbotsford.php, frankston.php, etc). With the code in front of me I measured it: five live suburb pages overlap 98% word for word. Google calls this a "doorway page" and "scaled content" pattern and suppresses sites that use it. When a site crosses the threshold, rankings drop across the whole domain not just those pages. This lines up with exactly what you're seeing.
There's no structured data telling Google you're a rated local business. Your reviews, your star rating, your services Google can't read any of it. No rich results in search. No star ratings under your listing. No presence in AI tools like ChatGPT and Perplexity.
It reads: "JT Handyman Solutionz | Precision Industrialism Handyman Services Melbourne" truncated midword in every search result. "Industrialism" is an economic philosophy, not a service. It signals to Google and every searcher that the copy wasn't written with care.
The landingpage subdomain is already throwing indexing errors. Redirects, canonicals and crawl paths are unresolved. Google is wasting its crawl budget on the wrong pages and missing the ones that matter.
Your site's code currently sits in Russell's repository (techlantis). That's completely normal and not a problem, it just means every change to the site, including all the fixes above, is made through the access Russell grants. It's worth being aware of, because the asset and the work on it depend on that access staying in place. When I build and run a site, the code is held for you and released to you on request, so you're never dependent on any one person being around. Mentioning it only so you have the full picture.
I ran three real AI searches for handyman Melbourne. Here's what came back.
These are live Perplexity results run this week. This is what potential customers see when they ask AI who to call.
Hire A Hubby and Jim's are national franchises with big ad budgets. JT has the reviews and the track record to compete head to head. The missing piece is structured data so AI can actually find JT.
AI is sending people to platforms like HiPages and Airtasker rather than naming JT directly. Schema and structured signals change this.
Property maintenance is one of JT's main services. A smaller operator with a basic website is beating JT in AI results. This is the most painful miss of the three.
AI search is where customers are going now. Without the right signals, JT won't show up when they ask.
What I'd fix and how.
Every issue above is fixable, on your existing site, in your existing accounts, nothing rebuilt and nothing moved. Here's the order I'd work through it. With me, any code I write is delivered to you as source files and held for you, so ownership only ever moves toward you, never away.
The same foundation on sites I already rank.
Here's your site vs. three I built Eden, Pasha, and QCS. The technical layer is the difference. Every row is checkable view the source yourself.
| Technical SEO layer | JT (now) | Eden | Pasha | QCS |
|---|---|---|---|---|
LocalBusiness schema type | Missing | Yes | Yes | Yes |
Review / rating (AggregateRating) schema | Missing | Yes | Yes | Yes |
| Clean, nonduplicate page structure | 523 neardupes | Clean | Clean | Clean |
Sitemap freshness dates (lastmod) | None | Yes | Yes | Yes |
AIsearch file (llms.txt) | Missing | Yes | Yes | Yes |
| Perfect Lighthouse SEO score (100) | 92 | 100 | 100 | 100 |
A note on fairness: JT's site does have some structured data (Service and address markup) it's the LocalBusiness and review pieces that are missing.
4.8★ · 2,500+ jobs
Full schema stack and clean structure. Ranks locally in Melbourne's northeast and is cited by AI search for outdoorliving queries.
25+ years · 9 practice areas
A boutique firm competing against much bigger ones wins on a clean, wellstructured, schemarich site.
Civil & infrastructure
Technical B2B niche, indexed cleanly and surfacing in both Google and AI search.
Strong brand, weak foundation
You already have the reviews, the brand and the history. The foundation is the only thing missing and it's fixable.
Real audit scores, run today.
These are from Google PageSpeed Insights the same tool Google uses to rank sites. Green = 90 100, orange = 50 89, red = under 50.
Scores shift a little each run that's normal. But run JT's site a few times and you'll see it consistently falling behind. The pattern doesn't change. Try it yourself →
JT's SEO score isn't bad but that singlepage number can't see the 523 duplicate suburb pages dragging the whole domain down. The site is also slow and heavy. My three sites all run green on Performance and hit 100 on SEO and Best Practices. Same tool, same day. That gap is the work. Run them yourself below.
Run the tests yourself.
I used the free Google tool PageSpeed Insights for every score above. Click any button below to run a live test right now and see the same numbers. I've also linked the live sites so you can view the source and check the schema yourself.
Eden, Pasha and QCS were first deployed between 1724 June 2026. Every one was built from scratch with the technical foundation in from day one. That's the difference a clean build makes and it's the same foundation I'd put under JT's site.
AI search is wide open. A smaller competitor is getting the recommendation that should be JT's.
ChatGPT, Perplexity and Gemini read site structure and schema. No schema = invisible. Right now the top AI answer for Melbourne handyman is wide open.
I ran the same live test for my own clients Eden, Pasha and QCS in their categories:
"Boutique family criminal law firm in Melbourne" → named competitors, not Pasha.
"Civil construction contractors in Melbourne" → named competitors, not QCS.
That's the honest picture and it's exactly why this is the opportunity. Right now nobody in these Melbourne trades has locked up AI search. Not JT, not my clients, not their competitors. The technical foundation my sites already have (clean schema, llms.txt, structured signals) is what AI search reads from but being named is the next frontier, and it's wide open. Whoever builds for it first takes the spot.
This is called GEO Generative Engine Optimisation. Most agencies haven't started. I'm building the foundation on every Scalus site, and I want JT to be the first Melbourne handyman to actively go after that top AI answer while the spot is still empty.
"AI gets the job type wrong." Here's how I make sure it doesn't.
Accuracy isn't left to the machine. Every post goes through a human signoff before it goes live. Nothing publishes unchecked.
- Nothing autopublishesContent is prepared as a draft. You approve it. Only then does it go live.
- The photo and the words are matched and checkedThe system won't call a doorbell job "new lighting" job type, photo and copy are crosschecked before it ever reaches you.
- You have the final say, every timeYour team already checks photos and notes internally this fits straight into that. Nothing about your site's accuracy sits outside your control.
If accuracy matters and it does then that's how I build it. Human signoff, not blind trust in a machine.
What gets fixed and in what order.
- Fix the duplicate page problemResolve the 523 nearidentical suburb pages. Strengthen the ones worth keeping, clean up the rest. This is the biggest single lever on your rankings.
- Add the full schema layerLocalBusiness, Service, Review Rating and Breadcrumb structured data across the site so Google and AI can finally read who you are, your 5star reviews and your services.
- Clean up Search Console and indexingFix the crawl and indexing errors (including the landing page subdomain already flagging), sort redirects and canonicals, and get the right pages indexed.
- Meta, structure and internal linkingProper titles, proper descriptions, a sensible site structure and internal links between the pages that matter.
- GEO AI search setupllms.txt, AI crawler access and the structured signals that get JT named in ChatGPT, Perplexity and Gemini answers.
- Humanreviewed content from your real jobsDrafts built from your genuine job photos and notes you approve every one before it publishes. This is the local content engine, done safely.
- Tracking & reportingClear monthly reporting so you can see rankings, traffic and where enquiries come from building on the tracking links I already set up.
Pulled directly from jthandymansolutionz.com.au this week. These are real, live, unfixed right now.
"JT Handyman Solutionz | Trusted Melbourne Handyman" 51 characters, clear, no filler, fits in full on every device and every search result.
A partnership you can walk away from. One that survives anything.
A fair deal only works if you're never trapped in it. I've built the exits and the safety nets in from the start. This is the part most agencies won't put in writing. I'm putting it on the page.
Every site I build is a fully custom codebase yours from day one. The code, the content, the domain configuration: all of it belongs to JT. I'm not licensing you a platform or locking your site inside a subscription system. I write the code, hand it to you, and keep building on it for as long as I work together.
What you pay month to month is for my ongoing work SEO, development, new features, integrations, content not rent on something I own. The moment you want the keys, they're already cut. No extraction process, no export fee, no locked database. You get a clean handover: the full codebase in a private repository, documented and ready for any developer to continue.
If you ever want to step back whether it's a slow month or you just want to take stock you don't lose the site. Drop to the $225/mo hosting tier and everything stays live, secure and yours. No penalty, no pressure. When you're ready to pick back up, I pick back up.
See what's included at scalus.app/225 →If you ever want to move on, I export the full codebase and hand it over so you or any other developer can carry it forward. Written step by step: domain, hosting, Search Console, analytics, the code. Nothing held hostage. Nothing to chase.
Oneperson accountability is a strength until you ask "what if he's not there?" So I've answered it. Every client's codebase is held in a private repository with documented handover instructions. If I'm suddenly unable to work, everything is automatically released to you. No lawyers, no waiting. Your site is never locked to me being around.
The point of all three: this is a partnership because you choose to stay in it not because leaving would cost you your website.
What JT looks like on the other side of this.
Rankings recovering. Reviews showing as rich results. JT named in AI search. A content engine running from your real jobs. The technical foundation that should have been there from day one finally in place, compounding every month.
You've invested in SEO before that didn't move the needle. This is different it's the structural fix, not more of the same surfacelevel work.
Month to month · cancel anytime · you own the domain, code & all content
- New landing page built for JT conversionfocused, fast, SEOready from day one
- Fix the duplicate doorway page problem and recover the ranking authority Google suppressed
- Full schema layer (LocalBusiness, Service, Review, Breadcrumb) so Google can actually read your site
- Search Console, indexing and crawl error cleanup ongoing, not a oneoff
- Weekly blog posts targeting the exact searches JT needs to rank #1 for
- GEO AI search optimisation so JT gets named in ChatGPT and Perplexity answers
- Humanreviewed content from your real jobs you approve before it publishes
- API integrations & new system builds ServiceM8 job feeds, CRM connections, lead tracking, automations and ongoing development
- Ongoing development: new pages, new features, improvements not just maintenance
- Monthly reporting on rankings, traffic & enquiry sources
- Direct line to me I do the work, not a call centre
Oneperson accountability is a strength until you ask "what if he's not there?" So I've answered it. Every client's codebase is held in a private repository with documented handover instructions. If I'm suddenly unable to work, the codebase and all credentials are automatically released to you. No lawyers, no waiting. Your site is never locked to me being around. This is in writing, and it's a promise.
This is the same infrastructure I run for my existing clients the build pipeline, the reporting, the content systems, all battletested. JT gets the full system from day one.
I'm already inside JT's business. The SEO is the natural next step.
I'm not coming in cold. I already know how JT runs the jobs, the leads, the brand, the content. Adding SEO and a new site isn't starting from scratch. It's connecting the systems already in motion.
I already have full context on JT the brand, the jobs, the leads, the content calendar. A new agency can't buy that with time. When I take on the SEO and the new site, I'm not starting from zero I'm connecting the systems that are already running. That's why this makes sense to do together, and why I wanted to bring it to you directly.
Scalus 2026 and beyond.
I launched Scalus at the start of this year and I am here for the long run. JT has the reputation, the jobs and the reviews. What it doesn't have yet is the digital presence to match. I want to change that. Properly built, properly ranked, properly found.
The goal is to take JT Australia wide. Starting with owning Melbourne. Then every city. The foundation I build now is what makes that possible.