Technical SEO Audit: A Step by Step Process

Most websites have more SEO problems than their owners realize. A page that looks fine in Chrome can be invisible to Googlebot. A site that ranks well today can drop overnight if a misconfigured robots.txt blocks the wrong crawl path. A technical SEO audit is how you find these issues before they cost you traffic.

This guide walks through the full audit process: the tools, the exact steps, what to look for at each stage, and how to turn your findings into a prioritized fix list. You do not need to be a developer to run this audit, but you do need to be thorough.

If you want a broader view of what a complete technical and content checklist looks like, start with our complete SEO checklist. This guide goes deeper on the technical layer specifically.

What a Technical SEO Audit Actually Covers?

A technical SEO audit is a structured review of everything that affects how search engines find, crawl, render, and index your site. It is not about content quality or backlinks; those are separate conversations. This audit is about the plumbing underneath.

The four areas that matter most:
  • Crawlability: Can Googlebot and other crawlers actually reach your pages?
  • Indexability: Is Google choosing to index the pages you want indexed?
  • Rendering: Is your content visible to crawlers, not just to browsers?
  • Performance: Are your pages fast enough to meet the signals Google weighs in its ranking systems?
  • Miss any one of these and the rest of your SEO work is building on a leaky foundation.

    What a Technical SEO Audit Actually Covers?

    A technical SEO audit is a structured review of everything that affects how search engines find, crawl, render, and index your site. It is not about content quality or backlinks; those are separate conversations. This audit is about the plumbing underneath.

    The four areas that matter most:
  • Crawlability: Can Googlebot and other crawlers actually reach your pages?
  • Indexability: Is Google choosing to index the pages you want indexed?
  • Rendering: Is your content visible to crawlers, not just to browsers?
  • Performance: Are your pages fast enough to meet the signals Google weighs in its ranking systems?
  • Miss any one of these and the rest of your SEO work is building on a leaky foundation.

    The Tool Stack You Will Need

    You do not need every tool on the market. You need the right tools for each layer of the audit.
    ToolWhat It DoesBest For
    Screaming FrogFull site crawl, on-page signals, redirect chain mappingComplete technical audits on any site size
    SitebulbVisual crawl reporting, JavaScript rendering auditIdentifying structural and rendering issues
    Google Search ConsoleOfficial index coverage, Core Web Vitals field dataSource of truth for indexing and performance
    Ahrefs Site AuditPage health scoring, internal link equity, backlink dataLink-related issues and site health tracking
    Google Search Console is free and non-negotiable. Screaming Frog has a free tier covering up to 500 URLs, which is enough to audit small sites completely. Sitebulb offers a trial. Ahrefs requires a paid plan but its site audit feature is among the most thorough available.

    Most practitioners run Screaming Frog as the primary crawl tool and cross-reference findings in Search Console. Start there.

    Step 1: Crawl Your Site and Map the Baseline

    Open Screaming Frog and run a full crawl of your domain. This maps every URL the crawler can find, which is not always the same as every URL on your sitemap.

    Before you crawl, configure it correctly:
  • Include all subdomains you own. If your blog runs on a subdomain, add it to the crawl scope.
  • Enable JavaScript rendering if your site is built on React, Next.js, Vue, or any framework that loads content via JavaScript. Without this, Screaming Frog sees only the HTML shell, not the actual rendered content.
  • Set crawl depth to unlimited for sites under 10,000 pages.
  • Set the user agent to Googlebot if you want to simulate exactly how Google sees your site.
  • When the crawl finishes, look at these numbers first:
  • Total URLs discovered
  • How many return a 200 status code
  • How many are 3xx redirects
  • How many are 4xx errors
  • How many are 5xx server errors
  • These are your baseline. Every subsequent audit should be compared against this snapshot so you can track whether issues are accumulating or getting resolved.

    Step 2: Fix Status Code Errors

    4xx errors mean a page does not exist or access is blocked. Every 4xx on a URL that was once live is potentially leaking link equity and delivering a bad experience to anyone who finds that dead link.

    Common causes of 4xx errors

  • Pages deleted without a redirect in place
  • URLs that changed during a site migration without proper redirect mapping
  • Internal links pointing to a renamed or removed URL
  • Fix: Set up 301 redirects from every dead URL to the most relevant live page. Do not redirect everything to your homepage Google treats this as a soft 404 and ignores it.

    5xx server errors

    These are more urgent than 4xx errors. A page returning a 500 error is failing at the server level not just a missing page but a broken one. Search Console will flag these in the coverage report, and Googlebot will deprioritize crawling a site with persistent 5xx responses.

    Fix: Pass every 5xx URL to your hosting or development team immediately. These should not sit on a backlog.

    Redirect chains

    A redirect chain is where URL A redirects to URL B which redirects to URL C. This slows down Googlebot, dilutes link equity at each hop, and increases page load time for real users. Every redirect chain should be collapsed into a single direct 301 from the original URL to the final destination.

    Step 3: Audit Indexing and Coverage in Search Console

    Open Search Console and navigate to Indexing, then Pages. This report shows every URL Google has processed and what decision it made about each one.

    Pay close attention to these buckets:
  • Crawled but not indexed: Google visited the page but chose not to index it. Common reasons include thin content, duplicate content, or a noindex tag that should not be there.
  • Blocked by robots.txt: Your robots.txt file is preventing Google from crawling these pages. Make sure this is intentional for every URL in this bucket.
  • Discovered but not crawled: Google found the URL but has not crawled it yet. On large sites, this usually means crawl budget is being consumed elsewhere by low-value pages.
  • Indexed but not in sitemap: The page is live in Google’s index but missing from your sitemap.xml. Add it.
  • Your sitemap.xml should include every URL you want indexed, and nothing you do not want indexed. Check it for dead URLs, noindexed pages, and redirect destinations. All of these waste crawl budget and can confuse the indexing system.

    Step 4: Check Your Robots.txt

    Robots.txt sounds simple until a misconfigured rule silently kills a site’s traffic. It has happened to large brands with experienced SEO teams. A single misplaced wildcard can block your entire CSS and JavaScript directory from being crawled.

    Visit yourdomain.com/robots.txt and check:
  • No important directories are accidentally blocked. A common mistake is blocking the admin directory but accidentally extending the rule to block the content directory where CSS and JavaScript files live.
  • No wildcard rules that are broader than intended.
  • Your sitemap.xml is referenced at the bottom of the file.
  • Test specific URLs using Screaming Frog under Configuration, then Robots.txt, then Test. Enter a URL you want Google to crawl and confirm the tool shows it as allowed.

    Also check via Google Search Console under Settings, then Crawl Stats. If Googlebot is spending a disproportionate amount of crawl time on URLs that provide no SEO value admin pages, thank you pages, filtered URLs your robots.txt can reclaim that budget for pages that matter.

    Step 5: Review Internal Link Structure

    Internal links do two things: they pass authority between pages and they signal to search engines which pages matter most on your site. A page with no internal links pointing to it is nearly invisible to Googlebot, even if it appears in your sitemap.

    In Screaming Frog, go to Reports, then Crawl Tree. This visualization shows your internal link depth how many clicks it takes to reach each page from the homepage.

    What you are aiming for:
  • Important pages are within three clicks of the homepage.
  • No orphaned pages (pages with zero internal links pointing to them).
  • No internal links point to 301 redirects; always link directly to the final destination URL.
  • The architecture of your site has a direct impact on how link equity flows. Read our guide to website architecture for SEO for a more detailed breakdown of how to structure your site for maximum crawl efficiency.

    Step 6: Core Web Vitals and Page Performance

    Core Web Vitals are Google’s official user experience signals. Poor scores do not guarantee a ranking drop, but they are a factor in Google’s ranking systems and they affect how real users behave on your pages, which affects every downstream metric.

    The three metrics:
  • LCP (Largest Contentful Paint): How long it takes for the biggest visible element to load. Target: under 2.5 seconds.
  • INP (Interaction to Next Paint): How responsive the page is to user input. Target: under 200 milliseconds.
  • CLS (Cumulative Layout Shift): How much the page layout shifts unexpectedly during load. Target: under 0.1.
  • Check your scores in two places. First, Google Search Console under Core Web Vitals gives you real user data grouped into Poor, Needs Improvement, and Good. Second, PageSpeed Insights at pagespeed.web.dev gives lab data for individual URLs with specific recommendations.

    Common LCP killers: large unoptimized images, slow server response times, render-blocking JavaScript loaded in the document head.

    Common CLS killers: images without explicit width and height attributes, ads that load after the page content, late-loading web fonts that cause text reflow.

    For a detailed breakdown of how to fix performance issues at the code level, see our guide on page speed optimization.

    For a more complete look at how Core Web Vitals connect to rankings, we cover the full framework in our upcoming guide on core web vitals how to pass.

    Step 7: Duplicate Content and Canonical Tags

    Google does not want to choose between two nearly identical pages. Duplicate content fragments ranking signals and wastes crawl budget on pages that add no additional value to the index.

    Run a duplicate content check in Screaming Frog under Reports, then Duplicate Content. This flags pages with identical or nearly identical body content and title tags.

    Common sources of unintentional duplication:
  • www vs non-www: Ensure both versions of the same URL do not remain accessible over HTTP. Redirect all traffic to a single preferred version.
  • HTTP vs HTTPS: Make sure only the HTTPS version is accessible. HTTP URLs should permanently redirect to HTTPS instead of returning 200 status codes.
  • Trailing slash vs no trailing slash: Choose one URL format and redirect the other to prevent duplicate content.
  • URL parameters: Check for session tracking, filtering, or sorting parameters that create hundreds of duplicate versions of the same page.
  • Every page on your site should have a canonical tag pointing to the definitive version of that URL. In Screaming Frog, check the Canonical tab under Elements to export all canonical tags and verify they are correct.
    Red flags to investigate immediately:
  • Pages with missing canonical tags.
  • Canonical tags pointing to a different domain unintentionally.
  • Canonical tags pointing to a 404 page or a redirect URL.
  • Step 8: Mobile Usability

    Google indexes the mobile version of your site first. This is not a future change; it has been the default for years. A site that renders perfectly on desktop but breaks on a 390-pixel screen is a site that has a Google problem.

    Check mobile usability in Search Console under Experience, then Mobile Usability. Look for:
  • Text that is too small to read without zooming.
  • Clickable elements that are too close together for easy finger navigation.
  • Content that extends wider than the screen viewport.
  • Test individual pages using Google’s Mobile-Friendly Test tool. Put every important landing page through it, not just the homepage.

    Also verify that your mobile version carries the same content as your desktop version. If you run a separate mobile subdomain or serve different HTML to mobile users, ensure the mobile version is not hiding the content signals that support your rankings.

    Step 9: Structured Data and Schema Markup

    Schema markup is the vocabulary that tells search engines exactly what your content represents. It is what powers rich results, star ratings in search listings, FAQ dropdown panels, event cards, breadcrumb trails, and product availability signals.

    Audit structured data in three steps:
  • Use Google’s Rich Results Test on your most important pages. This shows which schema types the page uses and whether they qualify for rich result rendering.
  • Check Google Search Console under Enhancements. Google surfaces schema errors it has detected across your site, organized by schema type.
  • In Screaming Frog, open the Structured Data tab and export a full list of all schema types present across every crawled URL.
  • Common problems to look for:
  • Schema markup missing on pages that qualify, such as product pages, FAQ pages, how-to guides, local business pages, and recipe pages.
  • Schema containing validation errors that prevent rich result eligibility.
  • Hardcoded schema that no longer matches the actual page content, such as a product schema with an outdated price or a review schema with stale rating data.
  • Step 10: HTTPS and Security Signals

    Every site should be running entirely on HTTPS. This is table stakes at this point, not a competitive advantage. But the implementation often has gaps even on sites that nominally run on HTTPS.

    Check for:
  • HTTP pages that have not been properly redirected to HTTPS. These should return 0 results.
  • Mixed content warnings where an HTTPS page loads HTTP resources, such as images, scripts, or stylesheets.
  • An expired or misconfigured SSL certificate that could trigger browser security warnings.
  • To check for mixed content, open Chrome DevTools on any page and look at the Console tab. Mixed content warnings appear as errors. Fix them by changing all resource URLs in your code from http:// to https://, or better, to protocol-relative references that inherit the page scheme automatically.

    Step 11: International SEO and Hreflang

    This step applies only to sites that target multiple countries or languages. If you run a single-language site focused on one market, skip it.

    Hreflang attributes tell Google which version of a page to show to users in each country and language combination. The implementation is detail-sensitive and errors are extremely common.

    Common hreflang errors:
  • Missing return tags. If page A points to page B via hreflang, page B must point back to page A. Otherwise, Google may ignore both tags.
  • Incorrect language or region codes. Use the correct two-letter language and country codes. For example, English for the UK should use en-GB, while English for the US should use en-US.
  • Hreflang tags in the sitemap that conflict with the hreflang tags in the HTML of the same page.
  • Screaming Frog has a dedicated hreflang validator under Reports, then Hreflang. Run your international pages through it and export the error list.

    Building Your Audit Report and Prioritizing Fixes

    A raw crawl export from Screaming Frog is not an audit report. It is a list of data. The value comes from turning that data into a prioritized action plan with clear ownership and timelines.
    PriorityIssue TypeTimeline
    Priority 15xx errors on key pages, pages blocked by robots.txt that should be indexed, canonical tags pointing to 404 pages, Core Web Vitals in the Poor bucket on landing pagesFix immediately
    Priority 24xx errors with inbound links, redirect chains, duplicate content without canonical tags, missing or broken structured dataFix within two weeks
    Priority 3Minor mobile usability issues, images missing alt text, pages with thin content that could be expanded, missing schema on secondary pagesSchedule and monitor
    For each issue in your report, document: the URL, the specific problem, the recommended fix, and the name of the person responsible for implementing it. A fix without an owner does not get fixed.

    Use our complete SEO checklist alongside your audit report to make sure your prioritization covers every layer of technical and content optimization, not just the issues the crawl surfaced.

    How Often Should You Run a Technical SEO Audit?

    For most sites: once per quarter. For large ecommerce sites with frequent product catalog changes: monthly. After any significant site migration, redesign, CMS change, or server move: immediately, without exception.

    Set up continuous monitoring within Screaming Frog Scheduler or Sitebulb for automated weekly or monthly crawls. Search Console will also alert you to coverage drops, Core Web Vitals regressions, and manual actions as they happen. The goal is not to do one great audit and move on.

    The goal is to establish a baseline and track improvement over time.

    What Comes After the Audit?

    A technical audit is step one. Once the foundation is solid, the next priorities are content quality, topical authority, and backlink building. Technical problems limit what great content can achieve. But great content cannot compensate for a site that Google cannot properly crawl and index.

    If you want this process handled end to end by a team that runs technical audits as part of a fully managed SEO engagement, explore our organic SEO services to see how we approach site health at scale.

    Final Thoughts

    Technical SEO problems compound over time. A 4xx error that sits unfixed for six months accumulates lost crawl budget, lost link equity, and potentially lost rankings on pages that used to perform well. The earlier you find these issues, the cheaper and faster they are to fix.

    Run your first crawl this week. Even a partial pass through the status code report in Screaming Frog will surface something worth acting on. Build the habit, document your baseline, and measure progress with every subsequent crawl.
    In This Article
    Connect with Us
    Capture the featured snippets your competitors are currently holding.