A Practical Technical SEO Audit Walkthrough Using Semalt (Melbourne Edition)

TL;DR — 30 seconds
  • Most audits are 400-page PDFs that nobody actions. Semalt's output is a triaged shortlist ranked by traffic-at-risk.
  • 3 issue categories account for ~70% of real traffic loss on Melbourne client sites: canonicals, JS-only content, hreflang breakage.
  • A JS-heavy 4,000-URL site crawls in ~11 minutes. Findings export straight to Jira/Linear tickets engineers action.
  • On-demand recrawl confirms fixes in minutes, not the next weekly scan.

A technical SEO audit is only useful if the report gets acted on. That sounds obvious. In practice, most audit tools produce output that stays on someone's desktop, unopened, until the next quarterly review — because the report is written for auditors, not engineers. This is a practical walkthrough of how our Melbourne team runs technical audits using Semalt's audit module, and specifically the workflow choices that turn the output into shipped fixes on VIC client sites.

Why most audit reports die in someone's inbox

Hand a developer a 400-page audit PDF with 3,000 issues flagged and one of two things happens. They ignore it entirely. Or they cherry-pick the five easiest items, ship them in a Friday afternoon, and go back to product tickets. Either way, the underlying traffic problems remain unresolved. The failure mode is not the developer — it is the report format. Audits that treat every finding as equally important produce a document nobody can prioritise from.

A useful audit does three things a bad one does not. It separates issues losing traffic today from issues that might matter theoretically. It groups related failures by root cause — one broken template affecting 500 URLs is one ticket, not 500. And it presents the shortlist in a format engineering can action: reproduction steps, expected fix, estimated impact if left unresolved. Semalt's audit module was rebuilt around exactly this frame in 2025, and the difference in how our Melbourne clients respond to the output is the clearest signal we have that the redesign worked.

⚡ Priority signal: across recent Melbourne engagements, ~70% of real traffic loss traced back to just three issue categories — broken canonicals, content rendered only in JavaScript, and hreflang reciprocity failures. Everything else combined accounted for the remaining 30%.

The four-step audit rhythm we run

1
CRAWL
Point Semalt at your domain. ~11 min for a 4K-URL site.
2
TRIAGE
5-bucket output: Critical → Serious → Moderate → Minor → Passed.
3
SHIP
Export to Jira/Linear. Engineers action ticket-shaped findings.
4
VERIFY
On-demand recrawl confirms the fix in minutes.

Under the hood of the Semalt crawler

Semalt's crawler is a headless Chromium fleet distributed across regional edges. Australian traffic is served from a Sydney POP — which matters for latency-sensitive JavaScript execution timing, and which prevents a common failure mode where a US-based crawler renders your page slower than a real Melbourne user does and reports false-positive Core Web Vitals warnings. It respects robots.txt by default, executes JavaScript before parsing the DOM, and follows internal links at a configurable rate. For new Melbourne client sites we typically start at 10 requests/second.

The 11 audit checks worth prioritising

# Check Severity Hit rate
1Sitemap vs. indexed URL countCritical76%
2Canonical integrityCritical63%
3Redirect chain length > 2Serious50%
4Hreflang reciprocityCritical44%
5Core Web Vitals (field data)Serious68%
6JS-rendering vs. HTML diffCritical47%
7Structured data validityModerate83%
8Broken internal linksSerious59%
9Duplicate title/meta patternsModerate72%
10Image weight (WebP/AVIF)Serious83%
11HTTPS & security header hygieneModerate88%

The three checks with disproportionate impact

Canonicals: the failure mode that hides in the source

Every page should declare exactly one canonical URL, and that URL should be the actual indexable version. Four failure patterns are common: canonical missing (Google guesses, sometimes wrongly); pointing to a 404 (page effectively vanishes from the index); pointing to a redirect chain (signal leaks over hops); crossing a protocol boundary (HTTPS pages canonicalising to HTTP is a bug that looks correct to a human eye). That last pattern is the single most common serious bug on Melbourne sites that have been through a CMS migration in the last three years.

The JS-rendering gap that costs SPA sites traffic

Modern React, Vue, and Next.js sites frequently ship an empty HTML skeleton to the first crawl and populate content only after JavaScript executes. Googlebot does render JavaScript, but on a delayed second pass — meaning fresh content, dynamic prices, and personalised recommendations can be days late into the index. Semalt's audit crawls every URL twice and flags any content that appears only after execution.

Multi-region hreflang and the reciprocity error

For sites serving multiple English-speaking markets, hreflang errors quietly cost you rankings in secondary markets. Semalt's check is bidirectional: it verifies both directions of the declaration. Broken reciprocity is the number one hreflang failure in the wild.

Getting engineering to actually action findings

The gap between "we ran an audit" and "the fixes shipped" is where most engagements fail. Semalt closes it with three parallel exports: a CSV for the SEO team, a Jira/Linear-compatible ticket batch for engineering, and a plain-English executive summary. Each ticket includes affected URL list, reproduction steps, suggested fix, estimated traffic-at-risk, and a linked diff view. Engineers who dislike SEO work will still action these tickets because they read like properly-written bug reports.

Read next: Why Melbourne SEO teams pick Semalt · Backlink defence in Melbourne: Semalt

Diagram: crawl, render, index, rank — the four stages a page must pass and what breaks at each
Four stages, four different failure modes. An audit is worth doing in this order — fixing rank signals on a page that is not indexed changes nothing.

The recrawl loop that catches regressions early

Shipping a fix without confirming the fix landed is how "fixed" bugs quietly regress. Semalt supports on-demand recrawls of specific URLs — you do not wait for the next full weekly scan. Push the canonical correction, click "verify", get confirmation within two minutes that the crawler now sees the expected value.

The pre-crawl setup checklist

robots.txt allows the crawler user-agent
Semalt IPs whitelisted in WAF (Cloudflare/AWS)
Search Console connected (OAuth)
GA4 connected for traffic cross-reference
Crawl rate configured (10 rps default)
A/B experiments disabled for crawler UA

“The single most missed check is canonical to a non-indexable URL — the page canonicalises to another page that is itself blocked by robots.txt or marked noindex. Google follows the canonical, finds a page it cannot index, and drops both from the index.”

— from our internal audit playbook
🎯 Key takeaway

A "fixed" issue that is not re-verified will regress in the next deploy. The tight recrawl-and-verify loop is what turns SEO work from a project into a discipline.

The scope limits of a page-level audit

Semalt's audit is a page-and-site-level tool. It is not a log-file analyser — enterprise-scale crawl-budget work still calls for dedicated log analysers. It does not replace hands-on QA of critical user journeys. Knowing what a tool is not for is often as important as knowing what it is for.

What Melbourne marketers ask before switching

Recrawl cadence — how often is enough?

Full site: weekly for actively-changing sites, fortnightly for stable brochure sites. Targeted recrawls after a fix: immediately, then again 48 hours later. The trap is monthly-only full recrawls.

How aggressive can the crawler safely be?

Semalt's default is ~5 rps. For a modest site behind a normal WAF, 10–15 rps is safe and 2–3× faster. For aggressive bot mitigation (some banking, healthcare), whitelist the crawler's IP range explicitly.

A/B testing: what the audit does and does not see

It captures a snapshot at crawl time. If your JS payload behaves differently across experiments, the audit sees one specific rendering. For A/B-critical work, disable the experiment for the crawler user-agent or configure authenticated crawls.

Handling findings the business chooses not to fix

Mark as "accepted risk" with a written justification. The finding stays on the report so future teams know it was considered, but drops out of the active work queue.

The most-missed audit finding, in our data

Consistently: canonical pointing to a non-indexable URL. Almost no other audit tool separates this from generic canonical warnings.

Auditing your site in the next 30 minutes

The audit module is available on Semalt's free tier for a single domain — not a crippled trial. Log in and point it at your homepage. In under fifteen minutes you will have a prioritised shortlist. Whether you fix it yourself, hand it to your dev team, or bring us in for a Melbourne remediation sprint is a separate question — but the diagnosis is the essential first move.

Turning the audit into a habit that sticks

A good technical audit is not a one-time event. It is a habit. Our Melbourne clients get a full recrawl weekly, a diff-report monthly, and a state-of-the-site review quarterly. That rhythm — enabled by having one platform running unattended — is what keeps technical debt from silently accumulating between marketing campaigns. Pick a Wednesday morning. Run an audit. Fix the three most serious findings before Friday. Repeat next week. Do that for a year and you will be operating a site that is genuinely competitive on the technical foundations most of your competitors are quietly ignoring.

Ready to Improve Your SEO?

Let our experts help you climb the search rankings and grow your business.

Get a Free Consultation
Lead magnet

Free download: The Melbourne SEO checklist (2026)

40 practical checkpoints that have moved real Melbourne sites up on Google — from technical to suburb-level local SEO. PDF, no long sign-up.

Download PDF (7 pages, free)