How to Conduct a Technical SEO Audit That Finds Real Issues
How to Conduct a Technical SEO Audit begins with one principle: do not treat every URL as an isolated problem. A useful audit shows whether search engines can access, render, understand, and index the pages that matter to your business, then turns the findings into a fixable plan.

Table of Contents
- Key Takeaways
- Plan the Audit Before You Crawl
- Audit Crawlability, Indexability, and Site Structure
- Test Rendering, Performance, Mobile, and Markup
- Turn Findings Into a Remediation Plan
- Technical SEO Audit FAQ
Key Takeaways
Focus on the pages that can create business impact
A technical SEO audit is not a contest to produce the longest list of warnings. I recommend starting with pages that support revenue, leads, local visibility, or core information needs. An error on a product template used by 5,000 URLs deserves more attention than a minor metadata issue on one archived blog post.
Compare what a crawler sees with what a browser renders
A crawler can identify links, status codes, canonical tags, and source HTML. A browser reveals what users and JavaScript rendering produce. Both views are necessary. A page may return a clean 200 status code while its primary content appears only after a delayed script fails to load.
Treat the audit as a repeatable operating process
The audit is complete only after fixes are assigned, deployed, retested, and monitored. A spreadsheet of findings is useful; a verified reduction in blocked URLs, 5xx errors, duplicate pages, or poor user experience is more useful.
Practical rule: Diagnose first, prioritize second, implement third, and verify last. Mixing all four stages too early often creates noise and missed dependencies.
Plan the Audit Before You Crawl
Define the goal, scope, and baseline
Before opening a crawler, decide what question the audit must answer. The scope should change based on the situation.
| Audit situation | Recommended scope | What to investigate first |
|---|---|---|
| New website launch | Full prelaunch crawl and staging review | Index controls, redirects, canonical tags, analytics, XML sitemap |
| Organic traffic decline | Affected directories and templates | Indexing changes, server errors, rendering, internal links |
| Large ecommerce website | Sections, templates, and representative URL samples | Faceted navigation, duplicate parameters, pagination, product templates |
| Site migration | Old and new URL inventories | Redirect mapping, canonicals, robots.txt, sitemap, status codes |
| Ongoing maintenance | Priority sections and recent releases | New crawl errors, Core Web Vitals, broken internal links |
Record a baseline before changing anything. Useful indicators include indexed page counts, excluded pages in Google Search Console, crawl statistics, organic traffic by directory, rankings for priority pages, server errors, and Core Web Vitals. Without a baseline, it becomes difficult to distinguish an improvement from ordinary fluctuation.
Define explicit crawl rules as well. Exclude staging environments, internal search pages, URL parameters used only for campaign tracking, downloadable files, logout paths, and other URLs that do not belong in the audit. Include parameterized URLs if they might be crawlable or indexable, especially on ecommerce sites where filters can produce thousands of near duplicate pages.
Select evidence sources instead of relying on one tool
No single tool provides a complete technical picture. A desktop crawler gives a controlled view of the site. Google Search Console offers first party evidence about Google’s indexing and crawl reporting. Web analytics shows how users and organic landing pages are performing. Server logs can reveal what bots actually request.
Use these sources for different questions:
• Crawl software: Which URLs link to an error page, have missing canonicals, contain duplicate titles, or create redirect chains?
• Google Search Console: Which URLs are indexed, excluded, blocked, discovered but not indexed, or affected by enhancement errors?
• Browser developer tools: Which network requests fail, which scripts block content, and whether mobile layouts shift or break?
• Server log files: Which URLs Googlebot requests, how often it returns, which response codes it receives, and where crawl activity may be wasted.
Log files are especially valuable for large sites. A crawler can report that 50,000 filter URLs can be accessed. Logs can show whether search bots actually spend substantial time on them. That distinction matters when crawl budget is limited by a vast URL inventory or unstable server responses.
Group URLs by template, not only by page
Page by page review works for a small brochure site. It becomes inefficient when thousands of URLs share the same CMS template. Group pages into categories such as product pages, category pages, articles, local landing pages, help center pages, and filtered result pages.
For each template, sample URLs across different conditions. Review an in stock and out of stock product, a category with and without filters, a recent and older article, and pages in multiple locations or languages where applicable. This exposes repeated defects, such as every product page self canonicalizing incorrectly or every filtered page generating a crawlable URL.
A template issue is usually a development task. An individual broken link is usually a content or merchandising task. Separating them makes ownership clearer.
Audit Crawlability, Indexability, and Site Structure
Check crawl controls and URL discovery
Start with robots.txt, but do not mistake it for an index removal method. Google explains that robots.txt controls crawling instructions rather than guaranteeing index exclusion. A blocked URL can still appear in search results if Google discovers it through links or other signals.
Review the file for accidental blocks affecting important directories, CSS, JavaScript, images required for rendering, or location and language folders. Also check whether testing tools, staging rules, or CMS plugins have introduced broad directives such as Disallow: /.
Then compare the XML sitemap against your intended indexable URL set. A clean sitemap should generally contain canonical, live, indexable URLs that return 200 status codes. It should not routinely contain redirects, 404s, noindex pages, canonicalized duplicates, or URLs blocked from crawling. Sitemap review is most useful as a quality control exercise: it shows the URLs the business is explicitly asking search engines to discover.
Separate crawlability from indexability
Crawlability asks whether a bot can request a URL and its required resources. Indexability asks whether that URL is eligible and appropriate for inclusion in a search index. A page can be crawlable but intentionally nonindexable, such as a customer account page. It can also be indexable in theory but unreachable because internal links, robots rules, or server errors prevent access.
Use Search Console’s Page indexing report to compare indexed and excluded URLs with your expectations. Investigate patterns, not just totals. For example, a sharp rise in “Excluded by noindex tag” could be intended after a content cleanup. It could also mean a template deployment added noindex to all category pages.
Key checks include:
- Confirm important pages return a stable 200 status code.
- Identify internal links pointing to 3xx, 4xx, or 5xx URLs.
- Find redirect chains, then update internal links to the final destination.
- Review noindex directives, X Robots Tag headers, canonical tags, and robots rules together.
- Compare sitemap URLs, crawled URLs, indexed URLs, and organic landing pages for mismatches.
A 404 status is not automatically a defect. If a discontinued product has no replacement and no backlinks, a true 404 or 410 may be appropriate. The audit problem is a broken internal link, a sitemap entry, or a high value external link pointing to that removed page without a useful recovery path.
Resolve duplication and canonical conflicts
Duplicate content is usually a URL management problem, not copied text alone. Common causes include uppercase and lowercase paths, trailing slash variants, HTTP versions, parameter URLs, printer pages, sort orders, session IDs, and category paths that expose the same product.
Canonical tags help consolidate signals for substantially similar pages, but a canonical is a hint rather than a force command. Check whether canonicals are self referencing where they should be, point to a relevant preferred URL, and match the page’s internal linking and sitemap signals.
Consider a category page available at /shoes, /shoes?sort=price, and /shoes?color=black. If the filtered view has no independent search value, it may need controls that prevent index bloat. If the black shoe page serves a genuine user need and contains meaningful differentiated content, it may deserve an indexable URL with consistent internal links. The decision depends on intent, inventory, and whether the filtered result is stable enough to be useful.
Review internal linking and architecture
Internal links tell crawlers which pages matter and help users reach them. Audit click depth, orphan pages, weakly linked priority URLs, inconsistent breadcrumbs, pagination paths, and navigation links that point to redirected URLs.
A practical architecture review asks four questions:
• Can a user reach important pages through logical category paths?
• Can a crawler find those pages through ordinary HTML links without relying entirely on site search or JavaScript events?
• Are low value parameter pages receiving more internal links than key commercial or informational pages?
• Do breadcrumbs, menus, contextual links, canonicals, and sitemaps agree on the preferred URL?
If a valuable service page is only accessible through a footer link, it may technically be discoverable but structurally underemphasized. Add contextual links from relevant pages rather than simply adding more sitewide navigation.
Test Rendering, Performance, Mobile, and Markup
Audit raw HTML and rendered output separately
JavaScript is not inherently harmful to SEO. The risk appears when important content, links, metadata, or structured data are absent from source HTML and depend on rendering that is slow, blocked, or inconsistent.
Google notes that JavaScript content may require rendering before search systems can see it. Compare the page source, crawler output, rendered DOM, and live browser result. Look for differences in headings, product descriptions, canonical tags, internal links, review markup, and pagination controls.
Pay special attention to hydration timing. A server rendered page may initially contain usable content, then client side JavaScript can replace it with an empty or altered state. Conversely, a client rendered page may show a loading shell until an API response arrives. If that API fails, the page can appear blank despite a successful 200 response.

Use field data and lab data for different decisions
Performance audits need two perspectives. Lab tools simulate a controlled visit and are effective for debugging a known page. Field data reflects real users across devices, networks, locations, and browser conditions. Google’s Core Web Vitals guidance frames these metrics as part of page experience evaluation, so field data should guide prioritization where available.
| Data type | Best use | Limitation |
|---|---|---|
| Field data | Prioritizing templates affecting real visitors | May be unavailable for low traffic URLs |
| Lab data | Diagnosing scripts, images, fonts, and render blocking resources | Does not reproduce every user condition |
| Server monitoring | Identifying slow responses and 5xx patterns | Does not explain front end interaction issues alone |
Review Largest Contentful Paint for loading, Interaction to Next Paint for responsiveness, and Cumulative Layout Shift for visual stability. Do not use First Input Delay as the current responsiveness metric; INP replaced it in 2024.
For a slow product template, trace the actual cause. Large hero images, delayed API calls, unused JavaScript, render blocking fonts, slow server responses, and third party tags require different owners and fixes. Compressing an image will not resolve an INP issue caused by heavy client side filtering logic.
Check mobile behavior, HTTPS, and structured data
Test critical templates on real mobile viewports, not only a desktop browser narrowed to a smaller width. Verify tap targets, sticky elements, expandable content, form behavior, viewport configuration, and horizontal scrolling. Confirm that mobile users receive the same primary content, links, and structured data as desktop users.
Review HTTPS consistency as well. Every HTTP version should resolve cleanly to the intended HTTPS URL. Identify mixed content warnings, insecure asset requests, expired certificates, and canonical tags that still reference HTTP URLs.
Validate structured data at both syntax and page meaning levels. Google states that canonicalization guidance supports consolidating similar URLs, but canonical cleanup alone does not fix misleading markup. Structured data should match visible content and the page’s real purpose. A product page can describe an actual purchasable product; a category page should not claim product specific ratings merely because a script injects aggregate values.
For multilingual or multinational sites, also test language and regional URL mapping. Each hreflang annotation should reference a valid canonical page, use consistent return links, and match the content language. A missing return annotation or a canonical pointing to a different locale can undermine the intended targeting.
Turn Findings Into a Remediation Plan
Score issues with impact, confidence, effort, and risk
A simple high, medium, low label hides too much. I recommend scoring each issue across four factors from 1 to 5.
| Factor | Question to ask | High score example |
|---|---|---|
| Impact | How many valuable URLs, users, or conversions are affected? | Category template blocks thousands of revenue pages |
| Confidence | How certain is the diagnosis and expected outcome? | Confirmed noindex tag on affected templates |
| Effort | How much work is needed to implement and test the fix? | One CMS setting or redirect rule |
| Risk | Could the change damage valid pages, tracking, or user journeys? | Broad robots or canonical changes affecting whole sections |
Prioritize issues with high impact and confidence, low to moderate effort, and manageable risk. High risk changes may still be urgent, but they need staging tests, rollback plans, and closer verification.
For example, removing a robots block from an entire /blog/ directory might restore crawl access quickly. It may also expose thin tag pages or private drafts if the directory was used as a blunt control. Confirm the affected URL patterns before changing the rule.
Assign owners and write implementation ready tickets
Each finding should state the affected template or URL set, evidence, likely cause, recommendation, owner, priority, risk, and verification method. Avoid tickets that say only “fix SEO.”
A useful ticket might read: “Update the product template canonical component. URLs with ?variant= currently canonicalize to themselves, creating duplicate indexable variants. Canonicalize variant URLs to the base product URL unless the variant has distinct indexable content. Validate with a post deployment crawl of 200 sampled products, Search Console URL Inspection samples, and sitemap comparison.”
Ownership commonly falls across teams:
• Developers: rendering, status codes, redirects, templates, server performance, robots rules.
• Content or merchandising teams: internal links, discontinued product replacements, on page duplication, sitemap inclusion decisions.
• Marketing or SEO teams: requirements, prioritization, testing criteria, indexation monitoring, reporting.
Verify fixes and watch for regressions
Retest the exact failure after deployment. Then test adjacent conditions. If a redirect chain was simplified, crawl the old URL, intermediate URL, final URL, sitemap entry, canonical target, and internal links. If a noindex issue was fixed, inspect several affected pages and monitor Search Console as Google recrawls them.
Create a recurring schedule based on site volatility:
- Run lightweight automated monitoring weekly for critical errors, uptime, unexpected noindex directives, and key template changes.
- Review Search Console, performance signals, and newly excluded pages monthly.
- Conduct a deeper technical SEO audit quarterly, after major releases, before migrations, or when organic performance changes materially.
The best cadence depends on release frequency. A site updated daily needs tighter monitoring than a small site that changes a few times each quarter.
Technical SEO Audit FAQ
What is a technical SEO audit?
A technical SEO audit evaluates whether search engines can crawl, render, understand, and index the right pages. It also reviews technical factors that affect user experience, including performance, mobile usability, HTTPS, structured data, redirects, and site architecture.
How do I find crawlability problems on a website?
Review robots.txt directives, server response codes, internal links, XML sitemap URLs, crawl errors, and log files where available. Compare a crawler’s findings with Search Console data. A URL that appears in a crawl but receives no bot requests in logs may not be a priority; a frequently requested URL returning 5xx errors is.
How do I check indexation in Google Search Console?
Use the Page indexing report to review indexed and excluded URL patterns, then inspect representative URLs. Compare the report with your sitemap, crawl data, and organic landing pages. Investigate unexpected exclusions, especially noindex pages, duplicates, blocked URLs, soft 404s, and server errors affecting important sections.
What is the best tool for a technical SEO audit?
There is no single best tool because each source answers different questions. Use Google Search Console for Google specific indexing evidence, a crawler for sitewide URL analysis, browser tools for rendering diagnostics, performance tools for user experience investigation, and server logs for actual bot behavior.
How should I audit a large website?
Define scope before crawling. Segment by directory, template, product category, language, or URL type. Crawl samples and high value sections first, then validate with Search Console and log files. Full crawls can still be useful, but a single massive crawl may consume resources while hiding template level patterns.
How do I audit JavaScript SEO issues?
Compare source HTML, rendered HTML, browser output, and crawler results. Confirm that key content, internal links, metadata, canonicals, and structured data are present after rendering. Test failed API calls, delayed hydration, blocked scripts, and mobile behavior because these can create a gap between what users see and what search systems can process.
Which technical SEO issues can hurt rankings the most?
The highest impact issues usually prevent important pages from being crawled or indexed, such as sitewide noindex directives, robots blocks, widespread 5xx errors, broken redirects after a migration, incorrect canonicals, and JavaScript failures that hide primary content. The exact priority depends on affected URL volume, business value, and evidence.
Sources/References
• Google Search Central — Core Web Vitals and page experience: https://developers.google.com/search/docs/appearance/page-experience
• Google Search Central — robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
• Google Search Central — XML sitemaps: https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview
• Google Search Central — Canonicalization: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
• Google Search Central — JavaScript SEO basics: https://developers.google.com/search/docs/crawling-indexing/javascript