SiteAuditLint checklist library
What this checklist covers
An SEO audit checklist gives you a repeatable process to crawl a website, review technical SEO, on-page SEO, content quality, internal linking, structured data, and AI search accessibility, then prioritize fixes by impact and verify them with a re-crawl.
It is organized into 21 sections: Website Overview, Crawl the Website, Indexability, URL Structure, Titles, Meta Descriptions, Headings, Content, Internal Links, Images, Canonicals, Redirects, XML Sitemap, Robots.txt, Structured Data, Open Graph, Hreflang, AI Search Accessibility, Prioritize Issues, Re-crawl After Fixes and Audit Sign-off. Each check lists exactly what to verify and a priority, so you can work through the highest impact items first.
For background on the concepts behind these checks, see Site audits course, Technical SEO audit: what to check, SEO audit reports.
Who it is for:
Download the seo audit checklist
Use the interactive version below, or download it to share with your team, attach to tickets, or work through offline.
SEO Audit Checklist
Work through each check
0 of 26 checks complete
Website Overview
Crawl the Website
Indexability
URL Structure
Titles
Meta Descriptions
Headings
Content
Internal Links
Images
Canonicals
Redirects
XML Sitemap
Robots.txt
Structured Data
Open Graph
Hreflang
AI Search Accessibility
Prioritize Issues
Re-crawl After Fixes
Audit Sign-off
Progress is saved in this browser only.
Detailed explanations
Each section below explains what to check, why it matters, the problems you will usually find, how to fix them, and how to confirm the fix.
Website Overview
What to check:
- Define audit scope. Domains, subdomains, templates and priority sections are listed.
- Record baseline metrics. Traffic, indexed pages and rankings are captured before changes.
Why it matters: A checklist is only useful if findings are prioritized, assigned, and verified. Process steps turn a list of issues into fixed issues.
Common problems:
- Findings without owners or deadlines
- Low impact issues fixed before critical ones
- Fixes never verified with a re-crawl
- No record of what changed and why
How to fix it: Score each issue by impact and affected URL count, assign an owner, and require a verification crawl before closing.
How to verify: Re-crawl after fixes and confirm the issue count for each item has dropped to zero or an accepted level.
Learn more: Audit process lesson, Prioritization lesson, SEO audit prioritization, How to report technical SEO issues.
How SiteAuditLint helps: it checks website overview across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Crawl the Website
What to check:
- Run a full crawl. Crawl completes with JS rendering where required.
- Compare crawl to sitemap. Sitemap URLs and crawled URLs reconcile.
Why it matters: Search engines can only rank what they can discover. If crawlers cannot follow links to a URL, that page will rarely be indexed, no matter how good its content is. Crawl depth also signals importance: pages buried many clicks deep get crawled less often.
Common problems:
- Navigation built with JavaScript click handlers instead of anchor links
- Important pages only reachable through internal search or forms
- Pagination or filters creating near infinite URL spaces that waste crawl budget
- Key pages sitting five or more clicks from the homepage
How to fix it: Use standard <a href> links for all navigation, add contextual links from high authority pages to deep content, and constrain parameter and filter URLs so crawlers spend time on pages that matter.
How to verify: Run a full crawl, compare discovered URLs with your sitemap and analytics landing pages, and review the crawl depth report for any important URL deeper than three clicks.
Learn more: Crawling explained, What is a website crawler, Crawlability vs indexability, Deep page issue.
How SiteAuditLint helps: it checks crawl the website across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Indexability
What to check:
- Audit index directives. noindex, X-Robots-Tag and canonical signals are consistent.
- Check Search Console coverage. Excluded and errored URLs are reviewed.
Why it matters: A page can be crawled but still excluded from search results. Indexability depends on several signals working together: status code, meta robots, the X-Robots-Tag header, canonical tags, and robots.txt. A single conflicting signal is enough to remove a page from Google.
Common problems:
- A noindex left in place after a staging build goes live
- X-Robots-Tag noindex sent by a server or CDN rule nobody remembers
- Canonical tags pointing to a different URL than intended
- Pages blocked in robots.txt, so Google never sees the noindex or canonical
How to fix it: Remove noindex directives from pages that should rank, align canonical tags with the URL you want indexed, and make sure robots.txt does not block indexable content.
How to verify: Check the page source and response headers for every key template, then use Search Console URL Inspection to confirm Google sees the page as indexable.
Learn more: Indexing explained, Indexing tests, Noindex issues and fixes, Noindex issue.
How SiteAuditLint helps: it checks indexability across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
URL Structure
What to check:
- Review URL format. URLs are lowercase, readable, hyphenated and stable.
Why it matters: Headings outline the page for users, search engines, and AI systems extracting passages. A clear H1 states the topic, and logical H2s make sections easy to cite.
Common problems:
- Missing H1 on templates
- Multiple H1s from shared components
- Headings used for styling rather than structure
- Skipped levels that break the outline
How to fix it: Use one H1 that states the topic, then H2 and H3 in a logical order. Fix shared components that output extra H1s.
How to verify: Crawl and filter for missing, duplicate, and multiple H1s, then review the heading outline on key templates.
Learn more: Headings lesson, H1s lesson, Multiple H1 tags, Why articles need H2 to H6.
How SiteAuditLint helps: it checks url structure across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Titles
What to check:
- Audit title tags. Every page has a unique, descriptive title of sensible length.
Why it matters: Title tags and meta descriptions shape how your page appears in search results and influence click through rate. Titles remain a strong relevance signal.
Common problems:
- Missing or duplicate titles across templates
- Titles truncated because they are too long
- Boilerplate meta descriptions repeated site wide
- Titles that do not match the search intent of the page
How to fix it: Write unique, descriptive titles with the primary topic near the start and meta descriptions that summarize the page and give a reason to click.
How to verify: Crawl and filter for missing, duplicate, and over length titles and descriptions, then spot check how they render in search results.
Learn more: Titles lesson, Meta descriptions lesson, Duplicate title tags, Missing meta descriptions.
How SiteAuditLint helps: it checks titles across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Meta Descriptions
What to check:
- Audit meta descriptions. Unique descriptions exist for key pages.
Why it matters: Title tags and meta descriptions shape how your page appears in search results and influence click through rate. See the earlier section on this topic for common problems.
How to verify: Crawl and filter for missing, duplicate, and over length titles and descriptions, then spot check how they render in search results.
How SiteAuditLint helps: it checks meta descriptions across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Headings
What to check:
- Audit H1s. One clear H1 per page that matches intent.
- Audit heading hierarchy. H2 to H6 follow a logical outline.
Why it matters: Headings outline the page for users, search engines, and AI systems extracting passages. See the earlier section on this topic for common problems.
How to verify: Crawl and filter for missing, duplicate, and multiple H1s, then review the heading outline on key templates.
How SiteAuditLint helps: it checks headings across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Content
What to check:
- Find thin content. Pages with very low word count or value are flagged.
- Find duplicate content. Duplicate or near duplicate pages are identified.
Why it matters: Search engines reward content that fully satisfies intent and adds information not already available. Thin, duplicated, or generic content is filtered out or outranked.
Common problems:
- Thin pages with little unique value
- Manufacturer or templated copy repeated across pages
- Missing coverage of related subtopics and questions
- No original data, examples, or experience
How to fix it: Consolidate thin pages, rewrite duplicated copy, cover the entities and questions users expect, and add original information.
How to verify: Review word count and duplicate content reports, then compare coverage against top ranking pages for the target query.
Learn more: Thin content, Optimize content for answer engines, Keyword vs entity optimization, Thin content issue.
How SiteAuditLint helps: it checks content across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Internal Links
What to check:
- Audit internal links. Broken links, orphan pages and weak link equity are flagged.
Why it matters: Internal links distribute authority, define site architecture, and help crawlers discover content. Broken links waste crawl budget and frustrate users, while orphan pages are almost invisible to search engines.
Common problems:
- Links to deleted pages returning 404
- Links pointing to redirected URLs instead of final destinations
- Orphan pages with no internal links
- Generic anchor text like click here on important links
How to fix it: Fix or remove broken links, update links to point at final URLs, link to orphan pages from relevant hubs, and use descriptive anchor text.
How to verify: Crawl the site and review the broken links, redirecting links, and inlinks reports. Compare sitemap URLs against crawled URLs to find orphans.
Learn more: Internal links lesson, Fix broken internal links, Orphan pages, Internal link analysis.
How SiteAuditLint helps: it checks internal links across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Images
What to check:
- Audit images. Alt text, file size and broken images are reviewed.
Why it matters: Images influence page speed, accessibility, and image search visibility. Alt text gives context to search engines and screen readers.
Common problems:
- Missing or keyword stuffed alt text
- Oversized images slowing pages
- Broken image URLs
- Images loaded only via CSS backgrounds when they carry meaning
How to fix it: Compress and size images correctly, serve modern formats, write descriptive alt text, and fix broken image sources.
How to verify: Crawl images, filter for missing alt text, 4xx responses, and file sizes above your budget.
Learn more: Images lesson, Image SEO audit, Missing alt text issue.
How SiteAuditLint helps: it checks images across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Canonicals
What to check:
- Audit canonicals. Canonicals point to indexable 200 URLs.
Why it matters: The canonical tag tells search engines which version of a page is the preferred one when duplicates or variants exist. It consolidates ranking signals onto one URL. A broken canonical can quietly deindex the page you care about most.
Common problems:
- Canonicals pointing to staging or development domains
- Relative canonical URLs that resolve incorrectly
- Canonicals pointing to redirected, 404, or noindexed URLs
- Every paginated or variant page canonicalized to page one
How to fix it: Use absolute canonical URLs on the production domain, make indexable pages self canonical, and point duplicates at a live, indexable 200 URL.
How to verify: Crawl the site and compare the canonical URL with the page URL. Flag any canonical that is non self referencing, redirects, returns an error, or is noindexed.
Learn more: Canonicals lesson, Canonical tag issues and fixes, Missing canonical issue, Canonicalised URL issue.
How SiteAuditLint helps: it checks canonicals across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Redirects
What to check:
- Audit redirects. Chains, loops and internal links to redirects are listed.
Why it matters: Redirects pass users and ranking signals from an old URL to a new one. Each extra hop adds latency and increases the chance that signals are lost or crawlers give up. Temporary redirects used for permanent moves can keep the old URL indexed.
Common problems:
- Redirect chains of three or more hops left behind by repeated migrations
- Redirect loops that make a URL unreachable
- 302 redirects used for permanent URL changes
- Internal links still pointing at redirecting URLs
How to fix it: Point every redirect directly at its final destination with a 301 or 308, break any loops, and update internal links so they reference the final URL rather than relying on the redirect.
How to verify: Crawl with redirect following enabled and export the redirect chains report. Each redirecting URL should resolve in one hop to a URL returning 200.
Learn more: Redirects lesson, Testing redirects, How to find and fix redirect problems, Redirect chain issue.
How SiteAuditLint helps: it checks redirects across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
XML Sitemap
What to check:
- Audit sitemap. Only indexable canonical URLs included.
Why it matters: An XML sitemap is a list of URLs you want search engines to find and index. It helps discovery of new and deep content and acts as a canonical signal. A sitemap full of redirects, errors, or noindexed URLs weakens trust in that signal.
Common problems:
- Sitemaps containing redirected, 404, or noindexed URLs
- Non canonical URL variants listed instead of the canonical version
- Sitemap not referenced in robots.txt or submitted in Search Console
- Stale sitemaps that are not regenerated on publish
How to fix it: Generate the sitemap automatically from indexable canonical URLs only, keep lastmod accurate, reference it in robots.txt, and submit it in Search Console.
How to verify: Crawl the sitemap URL list on its own. Every entry should return 200, be indexable, and be self canonical.
Learn more: XML sitemaps lesson, XML sitemap errors and fixes, Sitemap non-200 issue, Noindex URL in sitemap issue.
How SiteAuditLint helps: it checks xml sitemap across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Robots.txt
What to check:
- Audit robots.txt. No accidental blocking of key paths or resources.
Why it matters: Robots.txt controls which paths crawlers may request. It is the fastest way to block an entire site by accident. It also governs access for AI crawlers, so it is now part of your AI search visibility strategy as well as your traditional SEO.
Common problems:
- A staging Disallow: / rule deployed to production
- CSS and JavaScript blocked, stopping Google from rendering pages
- Overly broad wildcard patterns blocking important directories
- Missing or outdated sitemap declaration
How to fix it: Keep robots.txt minimal, block only what you truly need to keep out of crawlers, allow rendering resources, and declare your XML sitemap with an absolute URL.
How to verify: Fetch /robots.txt on production, test a list of key URLs against the live rules for Googlebot and each AI user agent, and confirm the file returns 200.
Learn more: Robots.txt lesson, Robots.txt and AI crawlers guide, Blocked by robots.txt issue, Missing robots.txt issue.
How SiteAuditLint helps: it checks robots.txt across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Structured Data
What to check:
- Audit schema. Types are valid and eligible for rich results.
Why it matters: Structured data helps search engines and AI systems understand entities on the page and can unlock rich results. Invalid or misleading markup is ignored or can trigger manual actions.
Common problems:
- Syntax errors in JSON-LD
- Required properties missing for the chosen type
- Markup describing content not visible on the page
- Schema removed during a template change
How to fix it: Use JSON-LD, include required and recommended properties, and keep markup consistent with visible content.
How to verify: Validate key templates with the Rich Results Test and Schema Markup Validator, then monitor enhancement reports in Search Console.
Learn more: Schema markup for AI, Invalid schema issue, Missing schema issue.
How SiteAuditLint helps: it checks structured data across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Open Graph
What to check:
- Audit Open Graph tags. og:title, og:description and og:image exist on shareable pages.
Why it matters: Open Graph and Twitter tags control how pages look when shared. Missing tags produce poor previews and lower engagement.
Common problems:
- Missing og:image
- Titles and descriptions not set
- Images with wrong dimensions
How to fix it: Set og:title, og:description, og:image, and Twitter card tags on every shareable template.
How to verify: Test pages in social debuggers and crawl for missing Open Graph tags.
Learn more: Missing Open Graph issue, On-page SEO checks.
How SiteAuditLint helps: it checks open graph across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Hreflang
What to check:
- Audit hreflang. Language and region pairs are valid and reciprocal.
Why it matters: Hreflang tells search engines which language or regional version of a page to show each user. Errors cause the wrong locale to rank or tags to be ignored entirely.
Common problems:
- Missing return tags between language pairs
- Invalid language or region codes
- Hreflang pointing to redirected or non canonical URLs
- No x-default fallback
How to fix it: Generate hreflang sets from one source of truth, ensure every pair is reciprocal, use valid ISO codes, and point only at canonical 200 URLs.
How to verify: Crawl all locales and run an hreflang validation report. Every tag should have a return tag and resolve to an indexable URL.
Learn more: URLs lesson, Missing lang attribute issue.
How SiteAuditLint helps: it checks hreflang across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
AI Search Accessibility
What to check:
- Audit AI crawler access. robots.txt rules for AI crawlers match business policy.
Why it matters: AI search tools such as ChatGPT search, Claude, Perplexity, and Google AI Overviews rely on crawlers to retrieve and cite content. Blocking them, or relying on JavaScript they cannot render, removes your pages from AI answers.
Common problems:
- OAI-SearchBot blocked when ChatGPT search visibility is wanted
- Blanket blocks copied from a template without a policy decision
- Key content only available after JavaScript runs
- No monitoring of AI crawler activity in server logs
How to fix it: Decide a policy per crawler, separating training crawlers like GPTBot from search and user retrieval crawlers, then encode it in robots.txt and keep content server rendered.
How to verify: Test robots.txt against each AI user agent and check server logs for AI crawler requests and response codes.
Learn more: AI crawlers lesson, AI citations lesson, AI crawlers vs search crawlers, Fix 403 errors blocking AI crawlers.
How SiteAuditLint helps: it checks ai search accessibility across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Prioritize Issues
What to check:
- Score issues by impact. Each issue has severity, affected URL count and effort.
Why it matters: A checklist is only useful if findings are prioritized, assigned, and verified. See the earlier section on this topic for common problems.
How to verify: Re-crawl after fixes and confirm the issue count for each item has dropped to zero or an accepted level.
How SiteAuditLint helps: it checks prioritize issues across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Re-crawl After Fixes
What to check:
- Verify fixes. Re-crawl confirms issues are resolved.
Why it matters: Search engines can only rank what they can discover. See the earlier section on this topic for common problems.
How to verify: Run a full crawl, compare discovered URLs with your sitemap and analytics landing pages, and review the crawl depth report for any important URL deeper than three clicks.
How SiteAuditLint helps: it checks re-crawl after fixes across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Audit Sign-off
What to check:
- Document findings. Report delivered with owners and deadlines.
Why it matters: A checklist is only useful if findings are prioritized, assigned, and verified. See the earlier section on this topic for common problems.
How to verify: Re-crawl after fixes and confirm the issue count for each item has dropped to zero or an accepted level.
How SiteAuditLint helps: it checks audit sign-off across every crawled URL instead of one page at a time and lists exactly which URLs are affected.
Common mistakes
Running a crawl without defining scope and priority templates
Reporting every issue with equal weight instead of prioritizing by impact
Ignoring Search Console data alongside crawl data
Skipping baseline metrics, so improvement cannot be measured
Delivering findings without owners, deadlines, or a re-crawl
When to run the checklist
- When onboarding a new client or website
- Before planning an SEO strategy
- Quarterly or biannually as a health check
- After a traffic or ranking drop
- Before a redesign or migration
How to verify fixes
- Save a baselineCrawl the site before making changes so you have a record of every status code, canonical, directive and title.
- Fix by priorityStart with High priority checks and issues that affect templates, since one fix there resolves many URLs. See how to prioritize audit findings.
- Re-crawl the same scopeUse the same start URL, crawl limit and settings so the results are comparable.
- Compare the crawlsConfirm the issue count dropped and that no new problems appeared elsewhere. Audit comparison does this field by field.
- Confirm in Search ConsoleUse URL Inspection and the indexing reports to check that Google sees the change. Our indexing tests lesson covers the process.
SiteAuditLint workflow
From manual checklist to automated checks
Most checks in this list run automatically in a SiteAuditLint crawl. Use audit comparison to diff crawls and scheduled audits to monitor for regressions.