Case study · Websites · Rebuild + SEO migration · Melbourne

Podiatry Healthcare Group: a 2014 site rebuilt without losing its rankings.

Podiatry Healthcare Group has operated in Melbourne since 1991. Its website was hand-coded, live since about 2014, and it ranked. I rebuilt it on WordPress. I took it from 12 pages to 30. I redirected all 19 old web addresses straight to their new pages. I moved the site without interrupting the practice's email. Live 1 September 2026.

This job was a website build with an SEO migration.
Client
Podiatry Healthcare Group: four clinics, two practitioners, operating since 1991
Sector
Allied health
Scope
Full rebuild and SEO migration. Hand-coded HTML to WordPress with a hand-written classic theme.
Timeline
Five weeks, brief to live. Live 1 September 2026.
Tier
Website build and SEO migration
Published
With the owner's written permission.
19/19
Old web addresses redirecting, one hop
30/30
Page titles correct on the live site
0
Broken internal links
30
Pages Google can index, up from 12

Verified by requesting each page from the live site on 9 September 2026.
You can check every one yourself in a browser. Here is how.

The situation

A site from 2014 that still ranked.

Four clinics, two practitioners, about fourteen areas of care, and twelve pages.

Hand-coded pages on a shared host. It worked. It ranked, because the domain had been in Google's index for over a decade.

The owner's brief was "make it modern". My brief to myself was do not lose the rankings. Everything below follows from the second one.

Most of the work on this job is in decisions that do not appear on screen.

The decisions

Eight decisions that kept the rankings.

None of these are visible on the finished site. All of them are the reason it still ranks.

01
I built the redirect list from the server.

A sitemap is the file a website keeps listing its own pages. On this build the server served 19 URLs and the sitemap listed 12. With the owner's permission I requested each page from the old server directly and built the redirect list from that. All 19 redirect in one hop.

The redirect list is built from the server
02
I kept the old web addresses as they were.

One commercial page lived at orthotics-australia. It carried years of ranking history, so it kept its address. The only thing that changed sitewide was the .html on the end.

Ranking history beats tidiness
03
Treatment page titles carry the word Melbourne.

Melbourne is the word that makes a local search match. Dropping the city from a title is the change that costs a local practice its ranking. On this site every treatment title was shortened with the city kept in.

The city is the ranking term
04
I left the city off the clinic pages.

Clinic pages carry the suburb only. Somebody looking for a podiatrist near them types the suburb. A title carrying both suburb and city reads as stuffing and does not help the match. The rule is to carry the word the searcher uses. On this site that rule gives opposite answers for treatment pages and clinic pages.

Suburb pages carry the suburb
05
Old suburb addresses redirect to a clinic with premises.

Three old suburb addresses needed somewhere to go. In each case the nearest page on the map was a service-area page with no premises behind it. Each was sent to the nearest clinic with a room instead. Distance is the obvious test. Whether there is a real room at the other end is the right one.

Redirect to a clinic with premises
06
One share image for the whole site.

A share image is the picture that appears when a link is pasted into a text message or a Facebook post. The standard advice is one per page. For a clinic, that means a treatment page shares a photograph of a medical condition, in the thread where a patient sent the link to a family member. One neutral brand image, sitewide.

A share image is not a portfolio piece
07
Only hours that repeat every week went into the machine-readable data.

Several sessions run fortnightly. One clinic opens one Monday in two. The format Google reads for opening hours has no way to say fortnightly. Publishing that clinic as open on Mondays is wrong half the time and sends a patient to a locked door. The machine-readable hours carry weekly sessions only. The fortnightly ones are written in words with a prompt to call.

Wrong data is worse than no data
08
The email moved before the website did.

On the old setup, the practice's email delivery was tied to the same setting that pointed at the website. So the cutover ran in two stages. First, email was pinned to a setting that would not change. I waited four hours and confirmed it had taken. Only then did the website move.

Zero minutes of email downtime
Before and after

What changed, and why.

The middle column is the work. The right-hand column is the reason.

Before
After
Why
Hand-coded pages from about 2014
WordPress with a hand-written classic theme. No page builder.
The owner can edit a page himself and cannot break the layout. There is no site editor to break it with.
12 pages listed in the sitemap
19 old addresses mapped and redirected, each in one hop
The redirect list is built from the server, not the sitemap.
12 pages, four of them treatment pages
30 pages. Ten treatment pages, four clinic pages, an article hub and four articles.
Each treatment and each clinic now has its own page to rank for.
Email delivery tied to the website's address setting
Email untouched. Only the website moved, in two stages with a four-hour wait between them.
Email delivery was confirmed on the new setting before the website moved.
Clinic details written separately on several pages
One connected block of machine-readable data on every page, and one answer to "how many clinics"
A machine reads one answer to how many clinics there are.
No share image on any page
One neutral 1200 by 630 brand image, sitewide
A treatment page's share image would show a medical condition. One brand image for the whole site avoids that.
No conversion tracking
Current analytics, with enquiries counted as conversions. Works at every phone width, with pinch-zoom on.
Measurement was set up before launch so there is a baseline. Pinch-zoom matters for older patients.
About 348KB of files per page
103KB. Server response on a cold request 0.72s to 0.40s.
Measured by timing one page request. Not a page-speed score, and not presented as one.
Existing copy
Copy rewritten and corrected. Compliance review included, because the category requires it.
Indexed text is the version of a business that a machine reads. It has to say what the practice means it to say.
What shipped

Every line here was checked against the live site.

By requesting each page from the live site on 9 September 2026, eight days after launch.

Measure
Before
After
Pages Google can index
12
30
Treatment pages
4
10
Old addresses redirecting straight to a live page
0
19 of 19, re-tested as a complete set
Page titles correct
0 of 30
30 of 30
Meta descriptions correct
14 too long, 3 missing
30 of 30
Broken internal links
Unknown
0
Practice email interrupted during the move
At risk
Zero minutes

Every one of the thirty pages was also opened and checked by a person, on top of the automated checks.

The claims

What I claim, and what I do not.

What I claim
  • 19 of 19 legacy URLs redirect in a single hop to a 200
  • 30 of 30 page titles correct on the live site
  • 30 of 30 meta descriptions correct
  • Zero broken internal links
  • 12 indexable pages became 30
  • The practice's email ran uninterrupted through a full DNS cutover
What I do not claim
  • Any traffic result
  • Any ranking movement, in either direction
  • Any change in bookings or revenue
  • That the rankings were "protected". That is a claim about Google's index. Nobody controls that

The site went live on 1 September 2026. This page covers the eight days after that. Google had not finished recrawling it. Rankings usually move for a couple of weeks after a migration and settle over the following month or two. A traffic graph nine days after launch means nothing.

What I claim is the mechanism. Every item of it is something you can check from outside the site. How I measure

On every job

The baseline is taken before anything changes.

Before any migration I take a full snapshot of the old site, its archived copies at web.archive.org and its Search Console history. The baseline is on record before I touch anything. You cannot tell whether a migration worked without a baseline. That is what makes the migration promise on the websites page safe to offer.

Every old address is tested as one set before launch and again on the live site after it. Redirects and indexing are re-checked at 30 and 90 days.

Book a free 20-minute call.

Tell me what's going on with your site, and I'll tell you which package fits.

Melbourne, Australia Websites quoted per site All prices + GST