Sample technical SEO audit

An example of what a technical SEO audit from Aivium Digital looks like, shown for a fictional business. Each finding is ranked by impact, explained in plain language and written as a ticket your developers can act on.

This is a sample. Example Mechanical is a fictional business. Its name, website, URLs and every figure below are illustrative, not a client's data. Your audit's findings, their number and its length will depend on your site.

Sample audit. Fictional business.

Technical SEO audit

Example Mechanical

A fictional commercial HVAC contractor serving one metro area, at example.com.

Scope
Full crawl of the live site, templates and key pages
Data reviewed
Search Console, GA4, a site crawl and a mobile lab test
Not available
Server logs
Edition
Sample, October 2026

Summary

Example Mechanical's commercial service pages should be bringing in its most valuable work, and four of the six can't appear in Google at all. Fixing that, tracking quote requests properly and repairing links lost in the last redesign come first: small changes with the largest effect.

Ten findings follow, ranked by expected impact on qualified inquiries and by the effort to fix them. Each one has an owner and a definition of done, so it can go straight into your team's backlog.

What we'd fix first

  1. Four of six service pages tell Google not to index them High priority · Small effort
  2. Quote requests aren't recorded as conversions High priority · Small effort
  3. Old URLs from the last redesign return “not found” High priority · Small effort
  4. Two pages compete for “commercial hvac maintenance” High priority · Medium effort
  5. Service pages sit four clicks from the homepage Medium priority · Small effort

How findings are ranked

High
Stops important pages ranking or hides what SEO produces. Fix first.
Medium
Holds pages back or wastes visitors. Fix once the high items are live.
Low
Worth doing; little effect on its own.

Effort is our estimate of the work involved: small is a template or settings change, medium touches several pages or templates, large means new content.

Findings

#FindingAreaPriorityEffortOwner
1 Four of six service pages tell Google not to index them Indexing High Small Developer
2 Quote requests aren't recorded as conversions Measurement High Small Aivium Digital
3 Old URLs from the last redesign return “not found” Redirects High Small Developer
4 Two pages compete for “commercial hvac maintenance” Site architecture High Medium Aivium Digital and marketing
5 Service pages sit four clicks from the homepage Site architecture Medium Small Developer
6 A background video delays the main content on phones Performance Medium Small Developer
7 The service area list appears only after JavaScript runs Rendering Medium Medium Developer
8 No page answers “repair or replace” searches Search intent Medium Large Aivium Digital and your technicians
9 Filtered blog archives create hundreds of duplicate URLs Crawl efficiency Low Small Developer
10 Business markup lists an old phone number Structured data Low Small Developer

Four of six service pages tell Google not to index them

Indexing · High priority · Small effort · Owner: Developer

What we found
The commercial service pages share a template that still carries a noindex tag from the staging site. Search Console lists all four as “Excluded by noindex tag”. Only the homepage and two residential pages can appear in results.
Why it matters
These are the pages that should win searches like “commercial hvac contractor”. While they're excluded, no amount of content or links will make them rank.
What to do
Remove the noindex tag from the service template, confirm the pages return 200 and are in the XML sitemap, then request indexing in Search Console.
Done when
  • No service page returns a noindex directive in HTML or headers
  • All six service URLs appear in the sitemap
  • Search Console shows them as indexed within the following crawl cycle

Quote requests aren't recorded as conversions

Measurement · High priority · Small effort · Owner: Aivium Digital

What we found
The quote form redirects to a thank-you page that GA4 doesn't treat as a key event, and phone taps aren't tracked at all. Organic traffic is visible; the inquiries it produces aren't.
Why it matters
Without conversions there's no way to tell which pages bring in work, or to report what SEO contributes beyond rankings.
What to do
Mark form submissions and phone taps as GA4 key events, keep the source with each inquiry when it reaches the CRM, and record a starting measurement before other changes go live.
Done when
  • Test submissions appear as key events with source and landing page
  • Phone taps are recorded on every page
  • A starting measurement is saved and dated

Old URLs from the last redesign return “not found”

Redirects · High priority · Small effort · Owner: Developer

What we found
38 URLs from the previous site return a 404 page. Six of them still have links from other websites, including a trade association's member directory.
Why it matters
Links from other sites are part of what makes a site credible to search engines. Links that point at missing pages pass on nothing, and visitors who follow them leave.
What to do
Redirect each old URL to its closest current page with a single 301, prioritizing the six with external links. Don't send them all to the homepage.
Done when
  • Each of the 38 URLs resolves in one 301 hop to a relevant page
  • No redirect chains or loops
  • The six linked URLs are checked by hand

Two pages compete for “commercial hvac maintenance”

Site architecture · High priority · Medium effort · Owner: Aivium Digital and marketing

What we found
A service page and a 2022 blog post both target maintenance contracts. Search Console shows Google alternating between them for the same searches, and neither holds a steady position.
Why it matters
When two pages split the signals, both rank lower than one clear page would, and the blog post can't take a quote request.
What to do
Make the service page the one page for maintenance contracts: merge the post's useful content into it, redirect the post, and point internal links at the service page.
Done when
  • One URL targets maintenance contract searches
  • The old post redirects to it
  • Internal links use descriptive anchor text and point at the service page

Service pages sit four clicks from the homepage

Site architecture · Medium priority · Small effort · Owner: Developer

What we found
The main navigation links to blog categories, not services. The service pages are reachable only through an “Our work” page and a dropdown, while every blog post is one click from the homepage.
Why it matters
Pages that are hard to reach get crawled less and are treated as less important. Visitors have the same problem.
What to do
Add the six service pages to the main navigation and link to them from the homepage and from related blog posts.
Done when
  • Every service page is reachable within two clicks of the homepage
  • Each service page has at least three relevant internal links

A background video delays the main content on phones

Performance · Medium priority · Small effort · Owner: Developer

What we found
The homepage loads a 9 MB autoplay video before its headline. In a mobile lab test the largest visible element took 4.8 seconds to appear, outside Google's “good” range for Largest Contentful Paint.
Why it matters
Slow pages lose visitors before they read anything, and Core Web Vitals are part of how Google assesses page experience.
What to do
Replace the video with a compressed poster image on phones, load the video only on larger screens and after the page is interactive.
Done when
  • Mobile Largest Contentful Paint under 2.5 seconds in the lab
  • No layout shift when the media loads

The service area list appears only after JavaScript runs

Rendering · Medium priority · Medium effort · Owner: Developer

What we found
Each location page loads its list of towns from a script. The HTML the server sends contains an empty container, so crawlers that don't run the script see pages that look nearly identical.
Why it matters
Search engines can render JavaScript, but later and less reliably. Many AI crawlers don't render it at all.
What to do
Render the list of towns in the server HTML and keep the script only for the interactive map.
Done when
  • The towns appear in the page source with JavaScript disabled
  • Location pages pass a rendered-versus-source comparison

No page answers “repair or replace” searches

Search intent · Medium priority · Large effort · Owner: Aivium Digital and your technicians

What we found
Buyers weighing a rooftop unit replacement search questions such as “repair or replace rooftop unit”. The site has no page for that decision; the replacement page opens with a quote form and no explanation.
Why it matters
Buyers at this stage are close to spending money. The business that explains the decision clearly is the one they call.
What to do
Publish a cost and comparison guide written with your technicians, then link it to the replacement service page.
Done when
  • A brief is agreed with your team
  • The guide is published, reviewed by a technician and linked from the service page

Filtered blog archives create hundreds of duplicate URLs

Crawl efficiency · Low priority · Small effort · Owner: Developer

What we found
Tag and date filters combine into about 1,400 crawlable archive URLs with near-identical content. They make up most of what a full crawl finds.
Why it matters
On a site this size the crawl cost is modest, but the duplicates dilute internal links and clutter reporting.
What to do
Noindex filtered archive pages, remove links to filter combinations, and keep only main categories in the sitemap.
Done when
  • Filtered archives return noindex
  • A re-crawl finds under 300 URLs

Business markup lists an old phone number

Structured data · Low priority · Small effort · Owner: Developer

What we found
The LocalBusiness structured data still carries the previous phone number and no service area, so it disagrees with the website and the Google Business Profile.
Why it matters
Consistent business details help search engines and AI assistants trust which number, address and service area are correct.
What to do
Update the markup to match the site and profile, add the service area, and validate it.
Done when
  • Markup validates with no errors
  • Phone and service area match the website and Google Business Profile

Recommended order of work

  1. First

    Indexing, conversion tracking and the 38 broken redirects (findings 1 to 3). Small changes, the largest effect, and the measurement every later report depends on.

  2. Next

    One page for maintenance contracts, service pages in the navigation, and the homepage video (findings 4 to 6).

  3. Then

    Server-rendered location pages, the repair-or-replace guide, archive cleanup and structured data (findings 7 to 10).

Timing is agreed with your team once the scope is confirmed. Fixes are checked on a staging site where one exists, then again after they go live.

What this audit didn't cover

  • Server logs. None were available, so crawl behavior was judged from the crawl and Search Console's crawl stats. On larger sites, log analysis shows exactly what search engines request.
  • Authority and links from other sites. Reviewed only where they touched technical issues, such as the six broken linked URLs.
  • Writing new content. The audit recommends pages and briefs; producing them is separate work.

Sample prepared by Aivium Digital for a fictional business. Names, URLs and figures are illustrative. A real audit is scoped to your site, your data and the deliverables we agree before it starts, so its findings and length will differ.