---
title: "Run a technical SEO audit that turns findings into tickets developers can act on"
description: "Audit crawlability, indexation, and Core Web Vitals with free tools, rank the findings by impact, and write developer tickets that need no translation."
canonical: "https://scalewithsearch.com/articles/technical-seo-audit"
date: "2026-03-20"
modified: "2026-09-25"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# Run a technical SEO audit that turns findings into tickets developers can act on.

A technical SEO audit often arrives as an 80-page PDF. It lists 400 warnings with error codes and no order. The marketing lead cannot tell which warnings cost traffic. The developer cannot tell which ones to fix first. The report goes into a shared drive, and nothing changes.

The gap is translation. An audit is useful only when each finding says what breaks, how much it matters, and what a developer must change. This article is for a marketing manager or founder. It shows how to run the audit with free tools and rank the findings. It then shows how to write tickets that a developer can build and test without a meeting.

## Know what a technical audit checks

A technical audit answers three questions in order. Can Google reach the page? Will Google keep the page in its index? Does the page give visitors an acceptable experience?

### Crawlability

If Googlebot cannot reach a page, that page does not exist for search. The usual causes are a `Disallow` rule in `robots.txt`, broken internal links, and server errors. Links that exist only as JavaScript click handlers and long redirect chains also block the crawl. An orphan page, which no other page links to, is also hard for Google to find.

### Indexation

A page can be crawlable and still stay out of the index. The main causes are a `noindex` tag, duplicate content, thin content, and canonical tags that point to another URL. Google also skips pages that it judges low in value. In Search Console, those appear as "Crawled - currently not indexed."

### Page experience

Core Web Vitals are three field measurements of real visits. Google uses them as part of its page experience signals. Relevance and content quality still carry more weight, so a fast page with weak content does not rank on speed.

| Metric | What it measures | Good |
|---|---|---|
| Largest Contentful Paint (LCP) | Load time of the main content | 2.5 seconds or less |
| Interaction to Next Paint (INP) | Delay after a click, tap, or key press | 200 milliseconds or less |
| Cumulative Layout Shift (CLS) | Unexpected movement of the layout | 0.1 or less |

INP replaced First Input Delay (FID) as a Core Web Vital in March 2024. An audit template that still lists FID is out of date.

## Run the audit in four steps

You need no developer for this part. Every tool below has a free tier.

1. Open the Page indexing report in Google Search Console.
2. Crawl the site with Screaming Frog.
3. Check Core Web Vitals in Search Console and PageSpeed Insights.
4. Inspect the most important URLs one by one.

### Step 1: read the Page indexing report

The Page indexing report is the most important view in a technical audit. It shows how many pages Google indexed and why it left out the rest. Compare the indexed count with the number of pages you want in search. A large gap is the first finding.

Then read the "Why pages aren't indexed" table. Each row is a reason with a URL count. The reasons that most often point to a real problem are these:

- "Excluded by 'noindex' tag" on pages you want indexed
- "Blocked by robots.txt" on pages you want indexed
- "Server error (5xx)"
- "Not found (404)" on URLs that other pages still link to
- "Duplicate, Google chose different canonical than user"
- "Soft 404"

Some rows are normal. "Page with redirect" and "Alternate page with proper canonical tag" usually mean the site works as designed. [Search Console by role](/articles/google-search-console-by-role) explains the other reports.

### Step 2: crawl the site

Screaming Frog crawls up to 500 URLs in its free version. That covers most small business sites. Enter the homepage URL and start the crawl. [Screaming Frog for non-developers](/articles/screaming-frog-non-developers) covers the settings.

When the crawl ends, check five views:

- **Response Codes**: filter for client errors (4xx), server errors (5xx), redirects (3xx), and URLs blocked by `robots.txt`.
- **Redirect chains**: export the redirect chain report. A chain is a redirect that points to another redirect.
- **Content**: filter for exact duplicates and near duplicates.
- **Page titles, meta descriptions, and H1**: filter for missing and duplicate values.
- **Orphan pages**: Screaming Frog finds these only when you give it a second URL list, such as the XML sitemap, and run crawl analysis.

### Step 3: check page speed and Core Web Vitals

Open the Core Web Vitals report in Search Console. It groups URLs by template and marks each group good, needs improvement, or poor. The data comes from real Chrome users, so a low-traffic site may show no data.

For a single URL, run PageSpeed Insights. The top section shows field data from the Chrome UX Report (CrUX). The lower section shows a Lighthouse lab test with a list of causes. Use WebPageTest when you need a request waterfall to show a developer which file loads late.

### Step 4: inspect the top URLs

Pick the 10 URLs that earn the most revenue or leads. Run each one through the URL Inspection tool in Search Console. Check three fields: whether crawling is allowed, whether the page is indexed, and which canonical URL Google selected. If Google selected a different canonical than yours, Google treats your page as a duplicate.

## Sort the findings into three tiers

A raw crawl can list thousands of warnings. Most of them repeat one template problem. Before you rank anything, group the warnings by page template. "3,000 product pages have no meta description" is one ticket, not 3,000.

Then assign each group to a tier.

| Tier | What it does to search | Examples |
|---|---|---|
| Critical | Blocks indexation or removes pages from search | `robots.txt` blocks a key section; a sitewide `noindex`; canonical tags that point to 404 pages; server errors on key pages |
| High impact | Reduces rankings or hurts visitors | Poor Core Web Vitals; redirect chains; a missing H1 on a key template; orphan pages; duplicate content; pages that break on mobile |
| Low priority | Small or no measurable effect | Meta description length; URL format; title tags a few characters over the display width |

Two common audit warnings belong in no tier: an empty `alt` on decorative images, and several H2 headings on one page. Decorative images should keep an empty `alt` attribute, because screen readers then skip them. Several H2 headings on one page is normal document structure.

Fix critical findings this week. Schedule high-impact findings into the next sprint. Log low-priority findings and fix them when a developer already works on that template.

## Write tickets developers can act on

A developer needs four things in a ticket: the specific problem, the measurable outcome, the technical scope, and the acceptance criteria. Show the current state and the expected state side by side. [SEO user stories for engineering](/articles/seo-user-stories-engineering) gives more templates.

Here is a worked example. Suppose the crawl shows that 140 blog posts link to `/pricing-old`, which redirects to `/plans`, which redirects to `/pricing`.

```text
Title: Replace the two-hop redirect chain to /pricing

Problem: 140 blog posts link to /pricing-old.
/pricing-old returns 301 to /plans.
/plans returns 301 to /pricing.
Evidence: Screaming Frog redirect chain export, attached.

Current state: link -> 301 -> 301 -> 200
Expected state: link -> 200 (direct link to /pricing)

Scope:
1. Change the internal links in the blog post template and body content to /pricing.
2. Change the /pricing-old rule to redirect straight to /pricing.

Acceptance criteria:
- A new crawl shows no internal link to /pricing-old or /plans.
- curl -I on /pricing-old returns one 301 with Location: /pricing.
```

The ticket names files and URLs, not SEO concepts. The developer does not need to know what link equity is. The acceptance criteria let the developer test the fix without you. [Redirect chains for developers](/articles/redirect-chains-301-developers) explains why each extra hop costs crawl time.

Write one ticket per template problem. Attach the export from the tool that found it. Some fixes need a decision from you, such as which of two duplicate pages to keep. Put that decision in the ticket before a developer picks it up.

## Decide when to escalate and when to let go

Not every finding deserves a fight for developer time. Escalate a finding in three cases:

- It blocks revenue, such as product or pricing pages that are out of the index.
- The fix is small but stuck, such as a one-line `robots.txt` change that waits on an approval.
- It grows. Compare the count in two audits a month apart; a rising 404 count is a live leak.

Let a finding go in two cases. The first is marginal impact, such as meta description length on low-traffic pages. The second is structural debt that only a platform change can fix. Record that debt in [an SEO technical debt backlog](/articles/seo-technical-debt-backlog) with its cost, so that the next platform decision includes it.

## Repeat the audit on a schedule

Run the four steps once per quarter and after every site release that changes templates, URLs, or navigation. Keep each crawl export with its date. Two dated exports show whether a problem shrinks or grows. Show that trend when you ask a developer or an executive for time.

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
