# SEO Checklist (2026)

A website SEO audit is an inventory, not an opinion. You go through the site one layer at a time, record what you find with evidence attached, and end up with a list you can sequence. The value is in the record. A vague sense that "the site could be faster" is not a finding; a measured LCP of 4.8 seconds on the main service page is.

**In short:** A full website SEO audit covers technical health, on-page elements, keyword performance, backlinks, competitors, local presence, conversion signals, and AI search visibility. All 52 checks below can be run with Google Search Console, PageSpeed Insights, Chrome DevTools, a free crawler, and a handful of free validators.

* * *

## What do you need before you start?

Everything here can be done on free tools. Two of them are not optional: without verified Google Search Console access you cannot complete roughly a quarter of the checks, and without Google Analytics you cannot complete the engagement checks at all.

| Tool | Used for | Cost |
| --- | --- | --- |
| [Google Search Console](https://search.google.com/search-console) | Index coverage, queries, positions, links, Core Web Vitals field data | Free, requires domain verification |
| [PageSpeed Insights](https://pagespeed.web.dev/) | Performance scores, Core Web Vitals, image and script diagnostics | Free |
| [Chrome DevTools](https://developer.chrome.com/docs/devtools/) | Network tab, console, device emulation, rendered DOM | Free, built into Chrome |
| [Screaming Frog SEO Spider](https://www.screamingfrog.co.uk/seo-spider/) | Crawl, status codes, titles, headings, redirect chains, orphan detection | Free up to 500 URLs |
| [Google Rich Results Test](https://search.google.com/test/rich-results) | Structured data validation and rendered HTML | Free |
| [Schema Markup Validator](https://validator.schema.org/) | Schema validation beyond Google's rich result types | Free |
| [SSL Labs Server Test](https://www.ssllabs.com/ssltest/) | Certificate validity, expiry, configuration grade | Free |
| [Google Analytics 4](https://analytics.google.com/) | Engagement rate, average engagement time per page | Free, requires property access |
| [Google Business Profile](https://www.google.com/business/) | Local listing completeness, reviews, categories | Free, local businesses only |
| [Whitespark Local Citation Finder](https://whitespark.ca/local-citation-finder/) | Directory listings and NAP consistency | Free tier |
| [SEOptimer](https://www.seoptimer.com/) | Quick crawl summary and domain strength reference | Free tier |

Open a spreadsheet before you open a tool. Four columns: check number, finding, evidence (a URL, a number, or a screenshot), and severity. Fill it as you go rather than at the end, because by check 40 you will not remember what check 6 turned up.

One more decision to make now. Pick your sample pages and use the same ones throughout: the homepage, your two most commercially important pages, one blog or informational page, and the contact page. Auditing the homepage alone tells you almost nothing, because the homepage is usually the one page that got attention.

* * *

## Section 1: How do you check technical SEO?

Technical checks come first because everything downstream depends on them. There is no point rewriting a title tag on a page Google has decided not to index.

### 1\. Page speed, mobile and desktop

Run each of your five sample pages through PageSpeed Insights twice, once with the mobile strategy and once with desktop. Record both Performance scores. Judge the site on the mobile figure; it is almost always the lower of the two and it is the one that matches how Google crawls.

**Record:** mobile and desktop score per page, plus the top three opportunities listed for each.

### 2\. Core Web Vitals

From the same reports, record LCP, INP, and CLS. Use the field data at the top of the report, which comes from real Chrome users over the previous 28 days, in preference to the lab data below it. If the field section is missing, the site does not have enough traffic to appear in the Chrome UX Report; note that, and treat the lab numbers as indicative only. Then open Search Console, Experience, Core Web Vitals for the site-wide view.

Thresholds: LCP at or under 2.5 seconds, INP at or under 200 milliseconds, CLS at or under 0.1.

**Record:** the three values per page, whether they are field or lab, and the URL counts in each Search Console status band.

### 3\. Mobile friendliness

Open DevTools, switch on device emulation, and set the viewport to a common phone size such as 390 by 844. Load all five sample pages. Look for horizontal scrolling, content wider than the viewport, text too small to read without zooming, and navigation or forms that break. Check tap targets on the primary navigation and main buttons; Google's guidance is 48 by 48 CSS pixels with 8 pixels of spacing.

**Record:** per page, whether the layout holds, plus screenshots of anything broken and a list of undersized tap targets.

### 4\. HTTPS and SSL certificate

Confirm the site loads over HTTPS. Request the HTTP version and watch the DevTools Network tab to see whether it redirects to HTTPS in a single hop. Click the padlock for certificate issuer, coverage, and expiry date. Run the domain through [SSL Labs](https://www.ssllabs.com/ssltest/) for a configuration grade; the scan takes a couple of minutes.

**Record:** redirect behavior and hop count, certificate expiry, issuer, SSL Labs grade.

### 5\. XML sitemap

Open `yourdomain.com/sitemap.xml`. Confirm it is well-formed XML and returns 200. Sample 15 to 20 of the URLs listed and check each one returns 200, is the canonical version, and is not set to `noindex`. Confirm the sitemap excludes admin pages, cart or checkout pages, thank-you pages, and parameter URLs. Then compare the URL count against Search Console, Indexing, Sitemaps.

**Record:** URL count, number of sampled URLs failing and why, Search Console discovered count, last read date.

### 6\. Robots.txt

Open `yourdomain.com/robots.txt` in a browser and read the whole file. Confirm it returns 200 rather than a 404. Look for `Disallow: /`, which blocks the entire site, and for any rule that catches service pages, the blog, or the CSS and JavaScript needed to render pages. Confirm a `Sitemap:` directive is present and points at a live URL.

**Record:** status code, full file contents, any Disallow rule affecting content, whether the sitemap is declared.

### 7\. Canonical tags

On each sample page, view the source and find `<link rel="canonical">`. Confirm it exists, uses an absolute HTTPS URL, and points at the page itself. Then test the duplicate access paths: with and without a trailing slash, with a tracking parameter appended, and the print version if one exists. Each should either return the same canonical or redirect.

**Record:** per page, whether the canonical is present, self-referencing, and absolute; plus any duplicate path that returns 200 with no canonical.

### 8\. Structured data

Run the homepage and one URL of each page type through the [Rich Results Test](https://search.google.com/test/rich-results). Record the schema types detected, the error count, and the warning count. Then run the same URLs through the [Schema Markup Validator](https://validator.schema.org/), which checks against schema.org rather than only Google's supported rich result types. At minimum you are looking for `Organization` on the homepage and a page-type schema elsewhere.

**Record:** types detected per page type, errors, warnings, and any page type with no structured data at all.

### 9\. Crawl errors and index coverage

In Search Console, go to Indexing, then Pages. Record the Indexed and Not indexed totals. Open the "Why pages aren't indexed" breakdown and record the count against each reason, paying attention to `Crawled - currently not indexed`, `Discovered - currently not indexed`, `Soft 404`, `Excluded by noindex tag`, and the duplicate reasons. Then confirm your commercially important pages appear in the indexed set.

**Record:** indexed count, not-indexed count, the full reason breakdown, and any key page found in the not-indexed set.

### 10\. Redirect chains and 4xx errors

Crawl the site with Screaming Frog. Sort by status code and flag every 4xx and 5xx that is linked from somewhere on the site or listed in the sitemap. Then open Reports, Redirects, Redirect Chains; anything passing through more than one hop is a chain. Check whether permanent moves use 301 rather than 302, and flag any URL redirecting into a loop.

**Record:** 4xx URLs with the pages that link to them, 5xx URLs, each chain with its hop count, and any 302 used for a permanent move.

### 11\. Duplicate and thin pages

In the crawl, use the duplicate detection on titles, meta descriptions, and H1s to find pages sharing identical elements. Then look at the word count column and open anything unusually short. The question is not whether a page hits a number; it is whether the page does its job. A 200-word contact page is fine. A 200-word service page competing against 1,500-word competitor pages is not.

**Record:** pages sharing duplicate titles or descriptions, and a list of pages that are thin relative to what the query requires.

### 12\. Hreflang

If the site is monolingual, mark this N/A and move on. Otherwise view the source on a page that exists in several languages and record the `<link rel="alternate" hreflang="...">` set. Check the language and region codes are valid, that each page references itself, that pairs are reciprocal, and that an `x-default` exists.

**Record:** hreflang set per sampled URL, missing reciprocals, invalid codes, broken target URLs.

* * *

## Section 2: How do you check on-page SEO?

On-page work is the cheapest part of SEO to fix and the easiest part to get wrong at scale, because most of it is generated by a template that nobody has looked at since launch.

### 13\. Title tags

Export the title column from your crawl. Check three things: every page has one, no two pages share one, and each describes the specific page rather than the brand. Length matters mainly because Google truncates and rewrites long titles, so aim for roughly 50 to 60 characters. Front-load the term the page is actually competing for.

**Record:** missing titles, duplicate titles, titles over 60 characters, and titles that name only the brand.

### 14\. Meta descriptions

Export the meta description column. Check for missing, duplicated, and auto-generated descriptions on your commercially important pages. Be realistic about what this is worth: Google rewrites the majority of meta descriptions it is given, and the tag is not a ranking factor. It is a click-through asset. Write them properly for the top pages and do not spend a week rewriting them site-wide.

**Record:** missing and duplicate descriptions on key pages only, and whether each key page's description says something specific.

### 15\. Heading structure

For each sample page, use the crawl's H1 and H2 columns or read the source directly. Check there is exactly one H1, that it describes the page, and that headings descend in order without skipping levels. Then read the H2s on their own; they should form a readable outline of the page. Generic H2s such as "Our approach" and "Why choose us" tell a reader and a search engine nothing.

**Record:** pages with no H1 or multiple H1s, hierarchy breaks, and the H2 outline for each key page.

### 16\. Image alt text

In the crawl, open the Images tab and filter to "Missing Alt Text". Then open a sample page and read the alt attributes that do exist. You are checking for three failure modes: missing entirely, filename dumped in as alt text ("IMG\_4471.jpg"), and keyword stuffing. Decorative images should carry an empty `alt=""` rather than a description.

**Record:** count of images missing alt text, count with filename or stuffed alt text, and whether decorative images are correctly marked empty.

### 17\. Content quality and depth

Read your key pages properly, as a prospective customer would. Ask whether the page answers the questions someone arriving from search would have, whether it contains anything specific (numbers, process detail, examples, constraints), and whether the reader would have to go elsewhere to actually understand the topic. Word count is a symptom, not a target; a thin page is usually short, but making it longer does not make it good.

**Record:** per key page, a one-line judgement on completeness and a list of the questions it fails to answer.

### 18\. Internal linking

In the crawl, look at the Inlinks column for each page. Check that key commercial pages receive multiple internal links from relevant content rather than only from the header and footer. Sample the anchor text used and note how much of it is "read more", "click here", or the bare URL. Then use Reports, Orphan Pages (this requires connecting the Search Console API before crawling) to find pages nothing links to.

**Record:** inlink count for the top ten commercial pages, anchor text patterns, and the orphan list.

### 19\. URL structure

Export the URL list and review 30 or so across page types. You are looking for lowercase characters, hyphens rather than underscores, absence of avoidable parameters, readable slugs, and sensible length. The real finding is usually inconsistency: some URLs hyphenated and some not, some with trailing slashes and some without, blog posts with dates in the path and service pages without.

**Record:** the conventions in use per page type, and every place they conflict.

### 20\. Open Graph and social tags

View the source on each page type and record whether `og:title`, `og:description`, `og:image`, `og:url`, `og:type`, and the Twitter Card tags are present. Confirm the `og:image` URL actually resolves and is at least 1200 by 630 pixels. The [Facebook Sharing Debugger](https://developers.facebook.com/tools/debug/) will render the preview and list missing tags.

**Record:** tag presence per template, image dimensions, and any templates sharing one generic og:image.

### 21\. Content freshness

In Search Console, use URL Inspection on your key pages to see when Google last crawled each one. Separately, look at the site itself: when was the last blog post published, do case studies reference work from three years ago, do service pages describe an offer you no longer sell? Freshness is not a virtue in itself. Stale and wrong is the problem.

**Record:** last crawl date per key page, last publish date on the blog, and a list of pages containing outdated claims.

### 22\. Keyword placement

For each key page, work out what it is actually trying to rank for, then check whether that phrase appears in the title, the H1, the first paragraph, and at least one H2. This is a coverage check, not a density calculation; keyword density targets are folklore and have not been a meaningful signal for years. What you are looking for is a page that never states plainly what it is about.

**Record:** per key page, the intended query and which of the four positions it appears in.

If working through this is more time than you want to spend on your own site, an [SEO audit](https://illucrum.com/seo-audit/) covers the same ground and arrives prioritized.

* * *

## Section 3: How do you check keyword performance?

Everything so far has been about the site. This section is about what the site has actually earned. All of it comes out of Search Console.

### 23\. Ranking keywords overview

Go to Performance, Search results, and set the date range to the last three months. Switch on all four metric columns: clicks, impressions, CTR, and average position. Sort by impressions and read the top 20 queries. The question to answer is whether these are queries from people who could buy something, or whether they are accidental.

**Record:** total clicks and impressions, the top 20 queries with position and CTR, and how many of them are commercially relevant.

### 24\. Striking distance keywords

In the same report, add a position filter for greater than 3 and less than 21, then sort by impressions. These are queries where the site already ranks but sits below the click-through cliff. Cross-reference each with the page that ranks for it, using the Pages tab.

**Record:** the striking distance list with query, position, impressions, and the ranking URL for each.

### 25\. Local keyword visibility

Skip this if the business does not serve a geographic market. Otherwise, filter queries containing your city or region name and note the positions. Then run three or four service-plus-location searches manually in an incognito window and note whether the site appears in the local pack, in the organic results, or nowhere.

**Record:** local query list with positions, plus local pack placement for each manual search.

### 26\. Search intent alignment

Take your top 10 non-branded queries and search each one in an incognito window. Look at what is ranking: are the top results service pages, blog posts, comparison articles, or directory listings? Then compare that with the page type you have pointed at the query. A service page competing in a results set made entirely of guides is misaligned, and no amount of on-page work will fix it.

**Record:** per query, the dominant result format, your page type, and whether they match.

### 27\. Keyword gap against competitors

Take the competitors you identify in check 34. Search 10 to 15 of your core service terms manually and record who ranks where. Where a competitor ranks and you do not appear at all, open their ranking page and note what it is: a dedicated service page, a location page, a guide, a comparison. That is the gap, and it is usually a page type rather than a keyword.

**Record:** query-by-query rankings for you and each competitor, and the page types they have that you do not.

### 28\. Branded versus non-branded split

In the Performance report, filter queries containing your brand name and record the clicks. Then invert the filter to exclude the brand and record the clicks. Calculate the split. A site where 90% of organic clicks are branded is not being found by anybody new; search is working as a switchboard for people who already know you.

**Record:** branded clicks, non-branded clicks, and the percentage split.

* * *

## Section 4: How do you check the backlink profile?

Search Console's Links report is limited compared with a paid backlink tool, but it is accurate about your own site, which is what matters here.

### 29\. Referring domains

Go to Links, then Top linking sites. Record the total number of linking sites and scan the list. What you want to know is whether links come from a spread of real, relevant sites, or whether the count is inflated by one directory network that has syndicated the same listing 40 times.

**Record:** total linking sites, total external links, and the top 20 linking domains with a note on what each one is.

### 30\. Toxic and spammy links

Work through the linking domains list and open anything you do not recognize. You are looking for link farms, scraped content sites, foreign-language pages unrelated to the business, and adult or gambling sites. Most sites have some of this and it is usually harmless; Google ignores the majority of low-quality links. Record it rather than panicking about it.

**Record:** the list of suspicious domains with a note on what each one appears to be.

### 31\. Anchor text distribution

Open Links, then Top linking text. Record the breakdown across four buckets: branded (your company name), exact-match commercial phrases, generic ("here", "website", "read more"), and bare URLs. A natural profile is branded-heavy. A profile dominated by exact-match commercial anchors usually means somebody bought links.

**Record:** the anchor list with an approximate percentage per bucket.

### 32\. Link gains and losses

Search Console shows a snapshot, not a trend, so this check depends on having a previous record. If you have one, compare the referring domain count and the top linking sites list against it and identify anything that has disappeared. If you do not, this audit becomes the baseline. Write the numbers down and date them.

**Record:** current referring domain count with today's date, and any domains lost since the last recorded count.

### 33\. Competitor link gap

Run your domain and each competitor domain through [SEOptimer](https://www.seoptimer.com/) and record the domain strength figure for each. This is a relative indicator, not an absolute measure, and it only means anything when the same tool is used consistently across all the domains. Calculate roughly how far behind or ahead you sit.

**Record:** domain strength per domain, and the approximate gap to the strongest competitor.

* * *

## Section 5: How do you check competitors?

Four checks, all manual, all done in an incognito window so your own search history does not distort the results.

### 34\. Identify the top three organic competitors

Search three to five of your primary non-branded service terms. Note which domains appear in the top five consistently. These are your organic competitors, and they are frequently not your business competitors; directories, marketplaces, and national publishers often occupy the results a local firm is trying to rank in.

**Record:** the domains that recur, with the queries each one ranks for.

### 35\. Compare authority

Using the domain strength figures from check 33, place your site alongside the three competitors. The point of this number is not accuracy. It is calibration: it tells you whether you are trying to overtake sites in roughly your own weight class or sites with ten years and a thousand referring domains on you.

**Record:** the four figures side by side, and which competitors are realistically catchable.

### 36\. Top pages comparison

Open each competitor site and map their page inventory: how many service pages, whether they have location pages, whether they have comparison or pricing pages, how much of the site is blog. Compare against your own inventory. Page types you lack entirely are the clearest opportunity in the whole audit.

**Record:** a page-type inventory for each competitor and for your own site, with the differences highlighted.

### 37\. Content depth against competitors

Take the single query that matters most to you, open the top three ranking pages, and read them. Note what they cover that your equivalent page does not: pricing, process, timelines, objections, FAQs, proof. This is a reading exercise, not a word-count exercise, and it usually produces the most actionable list in the audit.

**Record:** per competitor page, the sections and specifics they include that yours omits.

* * *

## Section 6: How do you check local SEO?

Skip this section entirely if the business does not serve customers in a defined geographic area. For everyone else, the local layer often produces more revenue per hour of work than anything in section 1.

### 38\. Google Business Profile

Open the profile and go through every field: name, primary category, secondary categories, address, service area, hours including holiday hours, phone, website URL, description, services or products, and attributes. Count the photos and note the date of the most recent one. Check whether the primary category matches what you actually want to rank for; this is the single most influential field on the profile.

**Record:** completeness field by field, primary and secondary categories, photo count, date of the last post or photo.

### 39\. NAP consistency

Find the name, address, and phone number everywhere they appear on your own site: footer, contact page, about page, location pages, and inside any schema markup. Compare them character by character against the Google Business Profile. Variations such as "Street" against "St", a different suite number format, or an old phone number are the finding.

**Record:** every on-site instance of NAP with its exact formatting, and each place it differs from the profile.

### 40\. Local citations

Run the business name and location through [Whitespark's free citation finder](https://whitespark.ca/local-citation-finder/) and note which directories list you. Then search `"business name" "city"` in Google to catch listings the tool missed. For each listing found, check the NAP matches. For each major directory missing, add it to the action list.

**Record:** directories listing you with NAP accuracy noted, and the top five relevant directories where you are absent.

### 41\. Reviews

On the Google Business Profile, record the star rating, the total review count, and the date of the most recent review. Then check how many reviews have an owner response. Compare all four figures against the three businesses currently in the local pack for your main service-plus-location query, which is the only comparison that matters.

**Record:** rating, count, most recent review date, response rate, and the same four figures for each local pack competitor.

### 42\. Local schema

Run the homepage and contact page through the Rich Results Test and look for `LocalBusiness` markup or one of its subtypes. Check which fields are populated: `name`, `address`, `telephone`, `openingHoursSpecification`, `geo`, `url`, and `sameAs`. Confirm the values match the NAP recorded in check 39.

**Record:** schema type used, fields present, fields missing, and any value that contradicts the site or the profile.

* * *

## Section 7: How do you check UX and conversion?

Rankings that do not convert are an expensive hobby. These four checks are quick and they change how you prioritize everything above.

### 43\. Calls to action on key pages

Load each key page at a mobile viewport with a clean session. Ask what the single next action is, whether it is visible without scrolling, and whether the button text says what happens next. "Learn more" is not an action. Then count the competing calls to action on the page; three different offers means no offer.

**Record:** per key page, the primary action, whether it is above the fold, its exact button text, and the number of competing actions.

### 44\. Navigation and site structure

Count the items in the main navigation. Then, from the homepage, count the clicks required to reach each key service page and the contact page. The target is two or fewer. Check the navigation on mobile separately; menus that work on desktop frequently collapse into something unusable on a phone.

**Record:** navigation item count, click depth to each key page, and any mobile-specific breakage.

### 45\. Engagement metrics

In GA4, go to Reports, Engagement, Pages and screens. For each key page, record the engagement rate and the average engagement time. Note that GA4's engagement rate is the inverse of the old bounce rate; a 40% engagement rate means 60% of sessions were not engaged. Filter to organic traffic only, otherwise direct and branded traffic will flatter the numbers.

**Record:** engagement rate and average engagement time per key page, organic sessions only.

### 46\. Intrusive interstitials

Load your key landing pages in a mobile viewport in an incognito window, so cookies do not suppress pop-ups. Note anything that appears on load or within the first few seconds and covers the content. A small consent banner is fine. A full-screen overlay served to somebody arriving from search is a problem Google names explicitly in its guidance.

**Record:** which pages trigger overlays, what triggers them, the timing, and how much of the viewport they cover.

* * *

## Section 8: How do you check AI search visibility?

Search increasingly gets answered before anybody clicks. These six checks establish whether the site is present in generated answers, or whether competitors are supplying them. All of it is manual, and none of it takes long.

### 47\. Google AI Overview presence

Take four to six of your most important non-branded queries from check 23 and search each in an incognito window. Note whether an AI Overview block appears at the top of the results. Where it does, expand the citation list and record which domains are being used as sources. The queries where an overview appears and cites only competitors are the priority list.

**Record:** per query, whether an overview appears, the cited domains, and whether yours is among them.

### 48\. Answer engine visibility

Ask ChatGPT, Perplexity, and Gemini the same three or four buying-intent questions a customer would ask: "who are the best {service} providers in {region}", "recommend a company for {service}". Note whether your brand appears and whether it is linked. Then ask each engine directly, "what is {brand} and what do they do", and check whether the answer is accurate, wrong, or empty. Record which sources each engine cites, because that list is where the visibility is actually being decided.

**Record:** per engine, whether the brand surfaces unprompted, whether the direct description is accurate, and the sources cited.

### 49\. Answer-ready content structure

Open four or five key pages and check whether each one answers its core question directly in the first paragraph, rather than after three paragraphs of context. Look for the structure engines extract from: descriptive question-shaped H2s, short definitional sentences, tables, and a real FAQ block rather than three questions nobody asked.

**Record:** per page, how far down the page the direct answer sits, and whether question headings and an FAQ block exist.

### 50\. Citation-worthy signals

Assess whether your pages contain the things generative engines preferentially quote: concrete numbers, prices, timeframes, original data, and clearly sourced claims. Then check for visible authorship: a named author, a credential or bio, and a published or updated date. Content that is anonymous, undated, and free of specifics is not going to be cited by anything.

**Record:** per key page, whether an author and date are visible, and how many concrete specifics the page contains.

### 51\. Answer-supporting structured data

Run the homepage and two or three key pages through the Rich Results Test and the Schema Markup Validator. Look specifically for `Organization` with a populated `sameAs` array, `FAQPage` on pages with genuine question and answer content, `Article` with `author` and `datePublished` on blog posts, and `BreadcrumbList`. The `sameAs` array is the one most often left empty, and it is the link between your site and your profiles elsewhere.

**Record:** markup types found per page, missing fields, and the full `sameAs` list if present.

### 52\. AI crawler access

Reopen `yourdomain.com/robots.txt` and search for these user-agents specifically: `GPTBot`, `OAI-SearchBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`, `CCBot`, and `Bytespider`. Record whether each is allowed, blocked, or unmentioned, then establish whether any block was a deliberate decision or an inherited default from a plugin or a hosting template. Also request `yourdomain.com/llms.txt` and note the response; absence is a data point, not a fault.

**Record:** the directive for each user-agent, whether it was intended, and the llms.txt status code.

* * *

## FAQ

### How long does a full website SEO audit take?

For a small site, four to eight hours for the first pass if you already know the tools, spread across a couple of days because crawls, SSL scans, and PageSpeed runs all involve waiting. The technical and on-page sections take the longest. The AI search section takes under an hour and is usually the most surprising.

### Do I need paid tools to run an SEO audit?

No. Every check above can be completed with Search Console, PageSpeed Insights, Chrome DevTools, the free Screaming Frog tier, GA4, and free validators. Paid tools save time on sites over 500 URLs and give far better backlink and keyword gap data. They do not reveal a category of problem that free tools miss completely.

### How often should a website be audited?

A full audit once a year, and after any significant change: a redesign, a platform migration, a CMS upgrade, or a hosting move. Between audits, the Search Console Pages report and Core Web Vitals report are worth a monthly glance, because they surface regressions without you having to go looking for them.

### What is the difference between this and a technical SEO audit?

A [technical SEO audit](/technical-seo-audit-checklist/) covers crawling, rendering, indexation, speed, and security in far more depth, and stops there. This checklist covers the technical layer more briefly, then adds on-page, keywords, backlinks, competitors, local presence, conversion, and AI visibility. Technical is the foundation; this is the whole building.

### Should I fix everything I find?

No. Most audits produce more findings than any business will act on, which is why severity belongs in the spreadsheet from the start. Fix anything blocking indexation first, then anything on a page that already earns impressions, then everything else. A finding with no traffic behind it can wait.

* * *

## Closing

Fifty-two checks produce a document, and the document is the point. Findings with evidence attached can be sequenced, costed, and handed to whoever does the work; impressions cannot. If you would rather have the data gathered and prioritized for you, an [SEO audit](https://illucrum.com/audits/seo-audit/) covers all of this, and the implementation can be handled from there.
