A technical SEO audit is a structured check of whether search engines can find, crawl, index and correctly interpret your pages. Most audits fail in the same way: they produce a four-hundred-line export from a crawler, hand it to someone, and nobody can tell which line matters. The fix is not a better tool. It is an order of operations and a way to rank what you find.
This guide is an umbrella checklist. For each stage it states the question to ask, the evidence that answers it and the decision it leads to, then points to a deeper article where diagnosis needs more space. By the end you will have a sequence to follow and a matrix for turning findings into a work plan.
Technical SEO Audit Scope and Data Sources
Before opening a crawler, write down what the audit covers. Without a scope, you report whatever the tool happens to flag, and the result drifts away from what the business needs. Settle three points: which hostnames and languages are in scope, which page types matter most (home page, categories, products, articles), and what outcome the audit supports, such as recovering lost visibility, launching a new section or preparing a migration.
Three sources of evidence feed the audit, and each has blind spots.
- Search engine data. Search Console shows index coverage, crawl statistics and performance. It is the only first-party view of how Google treats your site.
- Crawler output. A site crawler walks your pages the way you tell it to and records status codes, titles, canonicals, links and redirects. It models a search engine but is not one.
- Server logs. They show which URLs real bots requested, how often and with which responses. Logs replace guesses with records.
Expect the sources to disagree sometimes. A crawler may call a page healthy while Search Console reports it as not indexed, and the reverse can happen too. When they conflict, trust Google's own report about Google, and use the crawler to hunt for the cause.
Scope also means deciding what you will skip. A ten-page brochure site does not need log analysis. A multilingual marketplace cannot skip redirect and language-tag checks. Writing this down first keeps the final report tied to the site you actually have.
Crawling and robots.txt Checks
The first question is whether bots can reach your important pages at all. Crawling comes before indexing, and a page that cannot be fetched cannot be evaluated.
Start with the robots.txt file. Is it at the root, and does the server return a normal response for it? Do any rules block CSS, scripts or whole folders you need? Does it point to the correct sitemap? Google's documentation describes robots.txt as a file telling crawlers which URLs they may access, used mainly to avoid overloading a site with requests. The same page is clear about what it is not: it does not keep a page out of Google, a blocked URL can still be indexed if other pages link to it, and keeping a page out of results requires noindex or password protection. That distinction produces one of the most common audit findings. A team blocks a page in robots.txt to hide it, and in doing so stops Google from ever seeing the noindex tag they also added.
If you need a method for finding blocks, our robots.txt audit guide on finding crawl blocks walks through testing rules against real URLs. In an umbrella audit, keep this to a single line on your checklist and follow the detail only when something looks wrong.
Crawl efficiency is the second dimension. On very large sites, bots can spend limited attention on filter combinations, endless calendars and parameter variants. On a small site this is rarely a problem. If you are unsure which category you fall into, the crawl budget optimization guide explains who needs to care and how to measure it.
A quick checklist for this stage:
- Is robots.txt reachable and returning the expected response?
- Are key pages, stylesheets or scripts accidentally blocked?
- Are pages that must stay out of results handled with noindex rather than robots.txt?
- Do crawl statistics show server errors or rising response times?
- Are parameter and filter URLs multiplying without control?
Indexing, noindex and Canonical
Being crawled does not mean being indexed. This stage checks which pages should be in the index, which should not, and whether reality matches.
Open the page indexing report in Search Console and split what you see into two lists: pages that should be indexed but are not, and pages that are indexed but should not be. The first list is lost visibility. The second is a quality and duplication risk. A page can be absent from the index because of its own content, its redirects, its quality or the signals around it. For a systematic way to read each status and decide what to do next, see how to diagnose pages not indexed by Google.
Compare three signals against each other:
- noindex. The page asks to be removed from the index. Finding it by accident on an important page, often a leftover from a template or a staging environment, is among the most valuable results an audit can produce.
- Canonical. Does the page point to itself or elsewhere? A canonical is a suggestion, and Google can choose a different address. If many pages point to one canonical, is their content genuinely the same or is the setup wrong?
- Sitemap and internal links. These also signal which address you prefer. If the canonical says one thing and the sitemap lists another, you are sending contradictory hints.
Types of canonical mistakes and how to test them are covered in our canonical tag issues, audit and fixes guide. During an audit your aim is not to fix every error but to verify the correct rule for each page type: do product pages reference themselves, do filtered listings reference their category?
Record whether each noindex decision is deliberate. Deliberate choices stay out of the report. Accidental ones become high-priority findings.
Sitemap Health
A sitemap gives search engines a list of the URLs you consider important. It is optional, but on large or frequently changing sites it helps discovery, and for an auditor it is a useful reference because it exposes pages that are listed yet problematic.
A healthy sitemap contains only URLs you want indexed, each returning a normal response and each declaring itself as canonical. If it lists redirected, noindex, missing or non-canonical addresses, it contradicts the rest of the site. Size and URL limits apply, large sites should use a sitemap index, and the file should be declared in robots.txt and submitted in Search Console.
The working method is simple. Feed every sitemap URL to a crawler in list mode and compare each status code, noindex state and canonical. Rows that deviate are your repair list. For typical errors and their fixes, the XML sitemap audit and error fixes guide treats them one at a time.
On a very small site with strong internal linking, the sitemap matters less. Google's starter guide itself describes a sitemap as not required. Set the priority of this item according to site size and update frequency, and do not let it crowd out more serious findings.
Redirects and Status Codes
Every URL answers with a status code, and that code tells bots what happened to the page. The audit's job is to make sure the code matches reality.
| Status | Meaning | What to look for |
|---|---|---|
| 200 | Page exists | Is the content real, or an empty template? |
| 301 | Permanent redirect | Is the target correct, and is there a chain? |
| 302 | Temporary redirect | Is it used where a permanent move is meant? |
| 404 / 410 | Page missing | Do internal links still point here? |
| 5xx | Server error | Is it persistent, and on which page types? |
Redirect chains and loops are the usual culprits. If an old address needs three or four hops to reach its destination, both bots and users waste effort, and a loop makes the page unreachable. The fix is normally to collapse the chain into one step and update internal links to point straight at the final URL. A detailed procedure is in how to fix redirect chains and loops.
Also hunt for soft errors, meaning pages that return 200 while telling the visitor nothing was found. They mislead people and search engines alike. Look for templates that produce nearly empty pages with a normal response.
One rule is worth adopting: every internal link to an important page should point directly at an address that answers 200. Redirects are a safety net for old links and external references, not the normal path through your own site.
Site Structure and Internal Links
Internal links tell both visitors and bots which pages matter and how they relate. A structure review answers three questions.
- Depth. How many clicks from the home page does it take to reach each important page? Pages buried deep are found late and treated as minor.
- Orphans. Are there pages that receive no internal links yet appear in the sitemap or the index?
- Anchor quality. Do link texts describe the destination, or do they rely on empty phrases such as "click here"?
For a practical check, export the number of internal links each page receives and look up your most valuable commercial pages. A strategic page with few links is often a quick win, because adding a contextual link is one of the cheapest fixes in technical SEO.
Treat navigation, footer and in-content links separately. Menu and footer links repeat across the whole site, so they carry little context. The strongest signal usually comes from links placed naturally inside relevant content. Check whether your category hierarchy is logical and whether breadcrumbs support it.
Finally, crawl for broken internal links. Each one sends a visitor and a bot to a dead end, and fixing them is typically a batch job with a favourable effort-to-impact ratio.
JavaScript and Rendering
Many modern sites build their content in the browser. That adds an audit question that static sites never face: does Google see the same page that a visitor sees?
Start by comparing raw HTML with rendered HTML. If key text, headings or links appear only after scripts run, their indexing depends on the rendering process. The URL Inspection tool in Search Console shows how Google rendered a page and is the primary source of truth. Also check that navigation consists of real links with href attributes rather than click handlers, since bots follow the former reliably and the latter much less so.
Situations that deserve attention:
- Product or article text arrives through a request fired after the page loads.
- Titles, meta descriptions or canonicals are rewritten by scripts.
- Infinite scroll replaces pagination and no real address exists for later pages.
- Important resources are blocked in robots.txt, preventing a full render.
For deeper diagnosis and the different rendering approaches, read JavaScript SEO, rendering and indexing. For an umbrella audit the question to answer is whether critical content exists in the raw HTML and, if not, whether it reliably appears in the rendered version.
A Summary of Speed and Page Experience
Page speed is a subject of its own, so this section stays at audit level. On the measurement side, web.dev defines three Core Web Vitals and the thresholds that count as good. Largest Contentful Paint should occur within 2.5 seconds of the page starting to load, Interaction to Next Paint should be 200 milliseconds or less, and Cumulative Layout Shift should be 0.1 or less. Pages are assessed at the 75th percentile of page loads, segmented by mobile and desktop, and a page passes when all three targets are met.
In practice, open the Core Web Vitals report in Search Console, find the URL groups that are poor or need improvement, and work out which page templates they share. Fixing a template improves thousands of pages in one change, while fixing single pages rarely scales.
When you prioritise speed findings, keep proportion. Page experience is one of many considerations, and relevance to the query usually decides more. Unless a slowdown is severe, it can reasonably sit behind crawling, indexing and redirect issues in your sequence. A page that is not in the index gains nothing from a faster load.
The minimum to record for each speed finding is the problem template, the metric involved, the probable cause and the effort needed to change it.
Structured Data and Multilingual Setup
The last technical layer covers markup that describes what a page is and, for multilingual sites, the links between language versions.
With structured data, check three things: does the markup match what is visible on the page, is the syntax valid, and are the types you use actually relevant? Schema.org is the source of type and property definitions, while Google documents which types are supported for rich results. Adding every available type is not the goal. The markup should be an honest reflection of the content, and describing something the page does not contain is a policy problem as well as a waste of effort.
On multilingual sites, hreflang ties equivalent pages together. Verify that annotations are reciprocal, that language and region codes are valid, that each version references itself and that the addresses in hreflang match the canonical URLs. The most frequent fault is one language pointing to another with no return reference. The full routine is in our hreflang audit guide for language and region tags.
Sites with English and Turkish editions need one more check. Is every version served in its own language, does the language switcher lead to the equivalent page, and are titles and descriptions translated too? A technically perfect but half-translated edition confuses users and search engines.
Prioritization Matrix: Impact Versus Effort
When the audit ends you will have dozens of findings and no way to do them all at once. The simplest useful method is to score each on two axes: impact, meaning how much visibility and indexing improves if it is fixed, and effort, meaning how much work the fix takes.
| Quadrant | Impact | Effort | Decision |
|---|---|---|---|
| Quick win | High | Low | Do it now |
| Major project | High | High | Plan and assign an owner |
| Filler | Low | Low | Do when time allows |
| Avoid | Low | High | Defer or drop |
When assigning impact, apply an ordering of causes. First come blockers of crawling and indexing, such as a robots.txt block, an accidental noindex or server errors. Next come signal conflicts, such as canonical contradictions, redirect chains and sitemap errors. Optimisations like speed tuning and extra markup come last. If a page is not indexed, polishing its performance is premature.
Weigh the importance of the page too. A canonical error on a revenue-driving category matters far more than the same error on a tag archive nobody visits. Next to each finding, record the page type and how many pages it affects.
On the effort side, ask who must do the work. A title fix that an editor can make and a rendering change that needs a developer sprint are different effort classes, so write the owner in the matrix as well.
Sample Template: Technical SEO Audit Prioritization Table
The table below is a hypothetical example showing the format. Every finding, owner and ranking in it is invented for illustration, so replace them with your own results. The imagined case is a mid-sized product catalogue with English and Turkish editions.
| Area | Finding (example) | Affected page type | Impact | Effort | Priority | Owner |
|---|---|---|---|---|---|---|
| Indexing | Accidental noindex in category template | Category | High | Low | 1 | Development |
| Crawling | robots.txt blocks the image folder | Product | Medium | Low | 2 | SEO |
| Canonical | Filtered pages reference themselves | Filters | High | Medium | 3 | Development |
| Sitemap | Redirected URLs listed | All | Medium | Low | 4 | SEO |
| Redirects | Three-step chains | Legacy product | Medium | Medium | 5 | Development |
| Hreflang | Missing return reference in English edition | Articles | Medium | Medium | 6 | SEO and development |
| Speed | Large product images delay LCP | Product | Medium | High | 7 | Development |
| Structured data | Missing property warnings | Product | Low | Low | 8 | SEO |
When you adapt it, assign the priority column deliberately using impact, effort and the ordering described above, rather than filling it top to bottom. Add a final column for how each fix will be verified, for example which report or tool will show the issue closed after deployment.
Frequently Asked Questions
How often should a technical SEO audit be done?
There is no fixed interval. Run a full audit after a major launch, migration or platform change, and then at regular intervals such as once a quarter. Between audits, keep an eye on Search Console index coverage and crawl reports. The right frequency depends on how large the site is and how quickly it changes.
Which section should the audit start with?
Begin with whatever blocks crawling and indexing: robots.txt access, accidental noindex, server errors and status codes. If a page is not in the index, tuning its speed or markup achieves nothing. After that, resolve canonical, sitemap and redirect conflicts, and leave optimisations such as speed and extra markup for last.
Which tools are needed for an audit?
Search Console is the essential first-party source. Add a site crawler for page-level data, and server logs if you need proof of what bots actually requested. The number of tools matters less than knowing which to trust when they disagree. For a small site, Search Console plus one crawler is often enough.
How are the findings prioritized?
Score each finding for impact and effort. High impact and low effort are done immediately, while high impact and high effort are planned with an owner. When rating impact, put crawl and index blockers first, then conflicting signals, then optimisations, and factor in how important the affected pages are.
How do you narrow the audit for a small site?
Match the scope to the site's real goals. Crawlability, index coverage, canonicals, status codes, internal links and a basic speed check usually cover a small site. Crawl budget analysis, log review and complex language-tag checks are only added when the size and structure of the site call for them.
How do you report audit results to a client?
Open with a short summary of the three most critical findings, their impact and the recommended order. Follow with the prioritization table, an owner for each row and a way to verify each fix. Keep technical detail in an appendix, and set realistic expectations because the effects of fixes appear over time.
Conclusion and Next Step
A good audit is a decision document rather than a warning dump. Fix the scope first, move from crawling to indexing, expose signal conflicts, leave tuning for the end and rank every finding by impact and effort. Once each row has an owner and a way to confirm it is closed, the report becomes something a team can execute.
Audits often reveal pages that need rewriting or entirely new articles. If you would rather brief that work than draft it yourself, see the content writing service, and see how an Akua Adforce order is handled: you choose, add to the basket and pay, the seller approves, a delivery notice follows, and you can open a dispute if the work falls short.
Post a comment
Please log in to leave a comment. Login