Skip to content

An SEO audit checklist
you can work through.

77 checks across crawling, technical set-up, content, links, schema, speed, local, eCommerce and AI search. Each says how to check it, how much it matters and who usually fixes it. Tick as you go, then export or print.

Free, no signup · Ticks stay in your browser

Your auditSaved in this browser

Checks done

0 / 77

Blank template (CSV)

A checklist, not a scanner: nothing here fetches your site, and your ticks never leave this browser.

Brands our teams have delivered for

  • Hello Peter
  • Gruber Logistics
  • Delhivery
  • Thomson Reuters
  • Qatar Airways
  • Grundfos
  • Save
  • BERD
  • Yale University
  • Kuwait Police
  • Dubai Police
  • Panasonic
  • Infosys
  • Kia
  • Hitachi
  • Orange Business Services
What it is

A free SEO audit checklist: 77 checks in 10 areas, each rated for impact and owner. Tick checks as you go. Progress is saved in your browser, and you can export a CSV or print. Every check says how to verify it and what done looks like. Nothing is sent to us, and there's no signup.

How to use it

Rated before you start,
not after.

Most checklists leave the ordering until the audit is over. Here every check already carries an impact rating. High means it can stop pages ranking or being indexed. Medium means it holds rankings back or wastes crawling. Low is worth fixing when you're in the code anyway.

Each check also names who usually fixes it: a developer, a writer or editor, or whoever owns SEO. Sorting the export by that column gives you three short lists instead of one long one.

Your ticks are saved in this browser only, so they're still here when you come back on the same device. Nothing is sent to PixelCrayons. To share progress, export the CSV and open it in Google Sheets or Excel.

The checklist

77 checks,
in the order they matter.

Work top to bottom: a site that can't be crawled won't be helped by better titles. Skip the local and eCommerce groups if they don't apply to you. Last reviewed (changelog).

Blank template (CSV)
01

Crawl and indexing

Can search engines reach, read and keep the pages you care about? Nothing further down matters until this group passes.

0 of 10 done

  1. High impactWho fixes: Developer
    What to look at
    Disallow rules in /robots.txt, especially any that cover a folder holding pages you want found.
    How to check
    Open yourdomain/robots.txt, then the robots.txt report in Search Console (Settings) for fetch errors.
    Done looks like
    No Disallow rule touches a folder with a page you want in search.
  2. High impactWho fixes: Developer
    What to look at
    The robots meta tag and the X-Robots-Tag header on every template.
    How to check
    Crawl the site with Screaming Frog, Sitebulb or a similar crawler and filter by indexability; confirm with URL Inspection.
    Done looks like
    Every noindex page is one you meant to keep out of search.
  3. High impactWho fixes: SEO
    What to look at
    Each reason Google gives for pages not indexed, and how many URLs sit under it.
    How to check
    Search Console, Indexing, Pages. Open each reason and sample its URLs.
    Done looks like
    Every 'not indexed' reason is either expected or has a fix on your list.
  4. Medium impactWho fixes: SEO
    What to look at
    Whether the sitemap was fetched recently and its URL count roughly matches your real page count.
    How to check
    Search Console, Indexing, Sitemaps; Bing Webmaster Tools, Sitemaps.
    Done looks like
    Status 'Success' and a discovered URL count you can explain.
  5. Medium impactWho fixes: Developer
    What to look at
    Redirects, 404s, noindex pages or non-canonical URLs inside the sitemap.
    How to check
    Load the sitemap into your crawler in list mode and check status, indexability and canonical for each URL.
    Done looks like
    Every sitemap URL returns 200, is indexable and is its own canonical.
  6. High impactWho fixes: Developer
    What to look at
    Self-referencing canonicals on unique pages, and variants (parameters, sorting, print) pointing to the main version.
    How to check
    Your crawler's canonical report; URL Inspection shows the Google-selected canonical next to yours.
    Done looks like
    Google's chosen canonical matches yours on your top pages.
  7. Medium impactWho fixes: Developer
    What to look at
    Pages that are gone but answer 200 (a soft 404), and moved pages that don't redirect.
    How to check
    Request a made-up URL with curl -I; check 'Soft 404' in the Page indexing report.
    Done looks like
    A made-up URL returns 404, and no soft 404 in Search Console surprises you.
  8. Medium impactWho fixes: Developer
    What to look at
    Redirects that hop more than once before reaching a page that returns 200.
    How to check
    Your crawler's redirect chains report; curl -IL on old URLs that still have backlinks.
    Done looks like
    Every redirect reaches its final page in one hop.
  9. High impactWho fixes: Developer
    What to look at
    Copy, links and headings that only appear after scripts run, or not at all.
    How to check
    URL Inspection, Test live URL, View tested page; compare the rendered HTML with what you see in a browser.
    Done looks like
    Main copy, links and headings appear in the rendered HTML of every template.
  10. Medium impactWho fixes: Developer
    What to look at
    Server errors, DNS or robots.txt fetch failures, and a rising average response time.
    How to check
    Search Console, Settings, Crawl stats, Host status.
    Done looks like
    No host problems in the last 90 days.
02

Technical set-up

Site-wide settings that decide which version of each page exists and whether it works on a phone.

0 of 8 done

  1. High impactWho fixes: Developer
    What to look at
    Whether http, https, www and the bare domain all end on one https address.
    How to check
    Run curl -I on all four variants; open the HTTPS report in Search Console.
    Done looks like
    Three variants redirect in one hop to the fourth.
  2. Low impactWho fixes: Developer
    What to look at
    Whether /page and /page/ (and upper-case versions) both answer 200.
    How to check
    Request both forms with curl -I.
    Done looks like
    One form returns 200 and the other redirects to it.
  3. High impactWho fixes: Developer
    What to look at
    The same content as desktop, readable text, usable tap targets and no sideways scrolling.
    How to check
    Chrome DevTools device mode at 375 px, plus Lighthouse. Google retired its Mobile-Friendly Test in 2023.
    Done looks like
    Same content as desktop and no horizontal scroll at 375 px.
  4. Medium impactWho fixes: Developer
    What to look at
    Filter, sort, tracking and session parameters producing indexable duplicates.
    How to check
    Filter your crawler's URL list by '?'; check 'Duplicate without user-selected canonical' in Page indexing.
    Done looks like
    Parameter URLs canonicalise to the clean version or stay out of the crawl.
  5. Medium impactWho fixes: Developer
    What to look at
    Return tags, valid language and region codes, and a self-reference on each version.
    How to check
    Your crawler's hreflang report. Skip this check if you publish one language for one market.
    Done looks like
    Every hreflang pair links back, and every code is valid.
  6. High impactWho fixes: Developer
    What to look at
    Hacked content, malware warnings, manual actions, and an HSTS header on https responses.
    How to check
    Search Console, Security and Manual Actions; curl -I for Strict-Transport-Security.
    Done looks like
    Both reports are empty and HSTS is present.
  7. Low impactWho fixes: Developer
    What to look at
    A not-found page that offers navigation or search and still returns the 404 status.
    How to check
    Open a made-up URL in a browser and read the status in DevTools, Network.
    Done looks like
    Real 404 status, with links back into the site.
03

On-page basics

What each page tells a searcher in the results and in its first screen.

0 of 8 done

  1. High impactWho fixes: SEO
    What to look at
    Missing, duplicated or boilerplate titles, and whether the main term and the promise come first.
    How to check
    Your crawler's page titles report; a site: search on a sample shows what Google displays.
    Done looks like
    No duplicates, and the first 50 or so characters say what the page is.
  2. Low impactWho fixes: Content
    What to look at
    Missing or duplicated descriptions on pages that earn impressions.
    How to check
    Your crawler's meta description report, sorted by Search Console impressions.
    Done looks like
    Your top 50 pages by impressions each have their own description.
  3. Medium impactWho fixes: Content
    What to look at
    Missing H1s, and H1s that don't say what the page is.
    How to check
    Your crawler's H1 report; read your top 20 pages yourself.
    Done looks like
    One H1 per page that a searcher would recognise as their query.
  4. Low impactWho fixes: Content
    What to look at
    H2 and H3 used for structure rather than styling, with questions as headings where readers ask them.
    How to check
    A heading outline from your crawler or a browser extension, on each template.
    Done looks like
    The heading outline reads like a table of contents.
  5. High impactWho fixes: SEO
    What to look at
    Two or more of your pages taking turns to rank for the same query.
    How to check
    Search Console, Performance: filter by the query and open the Pages tab. More than one URL is the sign.
    Done looks like
    Each priority query has one page you want to rank, and the others link to it.
  6. Low impactWho fixes: SEO
    What to look at
    IDs, dates, strings of stop words or capitals in the URLs of pages that matter.
    How to check
    Your crawler's URL report. Change a live URL only with a 301 and a reason.
    Done looks like
    New pages follow one readable pattern; old ones stay unless a redirect is worth it.
  7. Low impactWho fixes: Content
    What to look at
    Alt text on meaningful images, empty alt on decorative ones, and width and height set.
    How to check
    Your crawler's images report; the Lighthouse accessibility audit.
    Done looks like
    Meaningful images say what they show; decorative ones carry an empty alt.
  8. Low impactWho fixes: Developer
    What to look at
    og:title, og:image and og:url on pages people share.
    How to check
    View source, or paste the URL into LinkedIn's Post Inspector.
    Done looks like
    A shared link shows the right title and image.
04

Content

Whether each page deserves to rank against what already does.

0 of 8 done

  1. Medium impactWho fixes: Content
    What to look at
    Pages with little unique text: tag archives, empty categories, location pages with only the town name swapped.
    How to check
    Sort your crawler's word count column ascending; cross-check pages with impressions but no clicks.
    Done looks like
    Each thin page is expanded, merged or set to noindex, with a reason written down.
  2. Medium impactWho fixes: Content
    What to look at
    Pages that say much the same thing, often left over from a redesign or a content push.
    How to check
    Your crawler's near-duplicates report (Screaming Frog and Sitebulb both have one).
    Done looks like
    Each duplicate set is down to one page, and the rest redirect to it.
  3. High impactWho fixes: SEO
    What to look at
    Pages whose clicks fell over a year while demand for their query held.
    How to check
    Search Console, Performance: compare the last three months with the same months last year, Pages tab.
    Done looks like
    Each decaying page has a refresh, merge or retire decision.
  4. Medium impactWho fixes: Content
    What to look at
    Whether the first 100 words of each key page answer the query it ranks for.
    How to check
    Read the opening of your top 20 pages next to their top query in Search Console.
    Done looks like
    Each top page answers its main query before the first subheading.
  5. Medium impactWho fixes: Content
    What to look at
    Original data, worked examples, photos or cases that a competitor couldn't copy.
    How to check
    For each priority page, list what it has that the top five results don't.
    Done looks like
    Every priority page has at least one thing the others lack.
  6. Medium impactWho fixes: SEO
    What to look at
    Questions and subtopics the ranking pages cover and yours doesn't.
    How to check
    Compare your page with the top five results and the People Also Ask questions for its query.
    Done looks like
    A brief for each priority page listing what to add, not a keyword count.
  7. Medium impactWho fixes: Content
    What to look at
    Guides on money, health, law or technical choices with no named, qualified person behind them.
    How to check
    Read the byline and author page on your guides and posts.
    Done looks like
    Guides carry a real author whose page says why they know the subject.
  8. Low impactWho fixes: Developer
    What to look at
    A visible 'last updated' date and a dateModified in schema that move only when the content changes.
    How to check
    View source for dateModified and compare it with the visible date and your edit history.
    Done looks like
    The visible date and dateModified match and change only with real edits.
06

Structured data

Schema markup that describes your pages to search and answer engines, and must match what the page shows.

0 of 6 done

  1. Medium impactWho fixes: Developer
    What to look at
    Errors and warnings in the JSON-LD on each template.
    How to check
    Schema Markup Validator (validator.schema.org) for syntax; Google's Rich Results Test for search features.
    Done looks like
    No errors on any template, and every warning reviewed.
  2. High impactWho fixes: SEO
    What to look at
    FAQ, review, rating or price markup for content a reader can't see on the page.
    How to check
    Compare each schema type with the visible page; check Manual Actions for structured data issues.
    Done looks like
    Every marked-up item is visible to a reader on the same page.
  3. Medium impactWho fixes: Developer
    What to look at
    Name, logo, URL, contact details and sameAs links to the profiles you actually run.
    How to check
    Rich Results Test on the home page, or view source.
    Done looks like
    One Organization node with the same name and profiles you use everywhere.
  4. Medium impactWho fixes: SEO
    What to look at
    Product on product pages, Article on posts, LocalBusiness for each location, and so on.
    How to check
    List your templates and the schema type each one outputs.
    Done looks like
    Each template uses the most specific type that fits it.
  5. Low impactWho fixes: Developer
    What to look at
    BreadcrumbList on deep pages, matching the visible trail.
    How to check
    Rich Results Test on a page three levels deep.
    Done looks like
    Deep pages carry a BreadcrumbList that matches the trail on the page.
  6. Medium impactWho fixes: Developer
    What to look at
    Invalid items in the rich result reports Search Console shows for your site.
    How to check
    The rich result reports in Search Console's menu (Breadcrumbs, Product snippets, Review snippets and any others listed).
    Done looks like
    No invalid items, or a fix scheduled for each.
07

Core Web Vitals and speed

How fast pages load and respond for real visitors. Field data first; lab tests explain it.

0 of 8 done

  1. High impactWho fixes: Developer
    What to look at
    Real-user LCP, INP and CLS for mobile and desktop.
    How to check
    Search Console, Core Web Vitals report; the top section of PageSpeed Insights (Chrome UX Report data).
    Done looks like
    You know which URL groups are poor, from real users rather than a lab score.
  2. High impactWho fixes: Developer
    What to look at
    The largest element on each key template and what delays it: server time, load delay, load time or render delay.
    How to check
    The LCP breakdown in PageSpeed Insights or Lighthouse.
    Done looks like
    At least 75% of mobile visits show the main element within 2.5 seconds.
  3. Medium impactWho fixes: Developer
    What to look at
    Slow responses to taps and clicks, usually from heavy scripts. INP replaced FID in March 2024.
    How to check
    Core Web Vitals report; the DevTools Performance panel with CPU throttling on.
    Done looks like
    Interactions respond within 200 ms for at least 75% of visits.
  4. Medium impactWho fixes: Developer
    What to look at
    Images, embeds, banners and fonts that push content around as they load.
    How to check
    The layout shift culprits in Lighthouse; check width and height on media.
    Done looks like
    Nothing visibly jumps while the page loads.
  5. Medium impactWho fixes: Developer
    What to look at
    Time to first byte on HTML, and whether pages come from a cache or CDN.
    How to check
    curl with -w and time_starttransfer, or WebPageTest.
    Done looks like
    Time to first byte at or under 0.8 seconds, Google's 'good' line.
  6. Medium impactWho fixes: Developer
    What to look at
    Images larger than they display, and missing WebP or AVIF versions.
    How to check
    The image audits in Lighthouse; your crawler's list of images over 100 KB.
    Done looks like
    Images served at display size in WebP or AVIF.
  7. Medium impactWho fixes: Developer
    What to look at
    Tag manager, chat, heatmap and ad tags: their size and when they load.
    How to check
    The third parties section in Lighthouse; DevTools Network, grouped by domain.
    Done looks like
    Each tag has an owner and a reason, and none delays the first paint.
  8. Low impactWho fixes: Developer
    What to look at
    The Cache-Control header on CSS, JavaScript, fonts and images.
    How to check
    curl -I on one file of each kind.
    Done looks like
    Versioned static files are cached for a year.
08

Local search

Only for businesses that serve customers in a place. Skip this group otherwise.

0 of 6 done

  1. High impactWho fixes: SEO
    What to look at
    Primary category, hours, address or service area, photos and the website link.
    How to check
    Your Google Business Profile, edited from Search or Maps while signed in.
    Done looks like
    A verified profile with the right primary category and current hours.
  2. Medium impactWho fixes: SEO
    What to look at
    The same business name, address and phone on your site, your profile and the main directories.
    How to check
    Search your phone number and business name, and compare what comes back.
    Done looks like
    One version of each in every place you control.
  3. Medium impactWho fixes: Content
    What to look at
    Location pages with local detail, not the same text with the town name swapped.
    How to check
    Read each location page side by side with another.
    Done looks like
    Each location page has something only that location has.
  4. Low impactWho fixes: Developer
    What to look at
    Address, opening hours, geo coordinates and the most specific business subtype.
    How to check
    Rich Results Test on each location page.
    Done looks like
    Each location page carries its own valid LocalBusiness node.
  5. Medium impactWho fixes: SEO
    What to look at
    How many new reviews arrive each month, and whether each one gets a reply.
    How to check
    The reviews tab in Google Business Profile.
    Done looks like
    New reviews every month, and a reply on each.
09

eCommerce extras

Only for online shops, where filters, variants and stock changes multiply URLs.

0 of 7 done

  1. High impactWho fixes: Developer
    What to look at
    Filter combinations creating thousands of crawlable URLs.
    How to check
    Compare your crawler's URL count with your product count; Crawl stats by file type and purpose.
    Done looks like
    Only filters people search for are indexable; the rest stay out of the crawl.
  2. Medium impactWho fixes: Developer
    What to look at
    Products that 404 the moment they sell out, or stay live for ever with no alternative.
    How to check
    Filter your crawler's 4xx report to product URLs; open a product you know has sold out.
    Done looks like
    Temporarily sold-out products stay live; discontinued ones redirect to the nearest match or return 410.
  3. High impactWho fixes: Developer
    What to look at
    Price, availability, brand, GTIN where you have one, and review data only where reviews show.
    How to check
    Rich Results Test; the Merchant listings and Product snippets reports in Search Console.
    Done looks like
    No invalid items in the Merchant listings report.
  4. Medium impactWho fixes: Content
    What to look at
    Category pages with only a product grid and no words explaining the range.
    How to check
    Read your top categories by revenue.
    Done looks like
    Top categories carry a short, useful introduction and buying advice.
  5. Medium impactWho fixes: Developer
    What to look at
    Colour and size variants on separate indexable URLs with the same content.
    How to check
    Filter your crawler's near-duplicates report to product URLs.
    Done looks like
    Variants canonicalise to one product page, or each earns its own content.
  6. Medium impactWho fixes: Developer
    What to look at
    Page 2 onwards reachable by plain links, not only by infinite scroll or a load-more button.
    How to check
    Turn JavaScript off and try to reach page 3 of a category.
    Done looks like
    Every product can be reached through linked category pages.
  7. Medium impactWho fixes: SEO
    What to look at
    Price and availability that differ between your product feed and your product pages.
    How to check
    Google Merchant Center, Diagnostics.
    Done looks like
    No price or availability mismatch warnings.
Warnings you can usually ignore

Not every red line
is a problem.

Audit tools flag everything at equal weight. These come up on almost every crawl and rarely change rankings. Each one has a case where it does matter.

“Title too long”
Google rewrites or truncates long titles, and a long title still ranks.
It matters when the cut falls before the words that carry the query or the reason to click.
“Meta description missing or too short”
Google often writes its own snippet from the page anyway.
It matters on pages that earn impressions where Google's chosen snippet reads badly.
“Multiple H1 tags”
Google has said several H1s are fine when the page structure is clear.
It matters when the H1s say different things, or the main one is missing.
“Low word count”
Contact, pricing, tool and product pages are short by design.
It matters on pages meant to answer an informational query in depth.
“Duplicate content”
Legal text, shared footers and specs shared by variants repeat on every site.
It matters when two of your pages compete for the same query.
“Page is noindex”
Thank-you pages, internal search and filter pages are meant to stay out of search.
It matters only when the page is one you want found.
“Missing alt text on decorative images”
Icons and background art should carry an empty alt, which some tools flag.
It matters when the image carries meaning or sits inside a link.
“Low text-to-HTML ratio”
It isn't a ranking factor; modern frameworks simply produce a lot of markup.
It matters only as a hint that content may be loading through scripts, so check the rendered HTML instead.
Worked example

We ran it on
our own site.

pixelcrayons.com, checked on 13 October 2026. Only what we measured is here; anything we couldn't measure from outside, such as Search Console field data, is left out.

  1. Crawl and indexing

    robots.txt

    Returned 200. GPTBot, ClaudeBot, PerplexityBot and Google-Extended are allowed everywhere except /mockups/; all other crawlers everywhere except /admin/ and /mockups/. The file names the sitemap.

    Pass
  2. Crawl and indexing

    Sitemap

    366 URLs, each with a lastmod date. We requested all 366: every one returned 200, none carried noindex, and every canonical pointed to its own URL.

    Pass
  3. Technical set-up

    One version of the site

    The three other versions (http with and without www, and https without www) each redirect (301) in one hop to https://www. A URL without its trailing slash redirects to the slash form, and a made-up URL returns 404.

    Pass
  4. Technical set-up

    Response headers

    The home page sends HSTS with preload, X-Content-Type-Options, X-Frame-Options, Referrer-Policy and Permissions-Policy, gzip-compressed through Cloudflare. Static scripts and images are cached for a year.

    Pass
  5. Technical set-up

    Small oddities

    Static files send two Cache-Control headers that agree with each other, and the 404 page carries two robots tags that both say noindex. Neither changes how the site is crawled.

    Leave
  6. On-page basics

    Titles, descriptions and H1s

    Across the 366 sitemap pages: no duplicate titles or descriptions, and exactly one H1 on every page. 44 titles run past 60 characters and 25 descriptions fall outside 120 to 160 characters.

    Leave
  7. Internal links

    Broken and redirected links

    The 366 pages link to 687 different internal URLs. 684 returned 200, two redirected (a missing trailing slash and a renamed case study) and one returned 404.

    Fix
  8. Structured data

    Home page schema

    Six JSON-LD blocks: Organization (founding year, address and six sameAs profiles), WebSite, ProfessionalService, FAQPage, and a WebPage with speakable sections and its modified date.

    Pass
  9. Core Web Vitals and speed

    Lighthouse, home page

    Three runs of Lighthouse 13.5.0 (mobile, simulated slow 4G) on the live page: performance 66 to 79, accessibility 100, SEO 100, CLS 0. LCP was 4.0 to 4.5 seconds, the hero background image, most of it render delay. Best practices scored 100 once and 77 twice, docked for third-party cookies from marketing tags.

    Fix
  10. AI search readiness

    AI crawlers at the edge

    Requests for /marketing/seo/ sending the GPTBot, ClaudeBot and PerplexityBot user-agent strings all returned 200. A borrowed user agent can't prove the real bots get through; firewall logs can.

    Pass
  11. AI search readiness

    llms.txt

    Returned 200: 61 lines with 57 links, and every link returned 200.

    Pass
  12. AI search readiness

    One name and description

    The meta description, the Organization schema and llms.txt all describe one team for marketing, development, design and AI. The schema version drops the word 'senior' that the other two use.

    Fix

Method: curl for robots.txt, llms.txt, headers and redirects; a script that requested every sitemap URL and every internal link on those pages; Lighthouse from the command line. Lab results, not field data.

Questions

Frequently
asked.

Crawling and indexing, technical set-up, on-page basics, content, internal links, structured data, Core Web Vitals and AI search readiness, plus local and eCommerce checks where they apply. Each check needs a way to verify it and a rating for how much it matters. Without the rating, you get a long list and no order.

Yes. Download the blank CSV, or tick checks here and export them with your progress, then open the file in Google Sheets or Excel. Every row keeps the impact, who usually fixes it and what done looks like.

Run the full list once a year, and again after a redesign, migration or platform change. Look at the Page indexing and Core Web Vitals reports in Search Console every month, since most problems show there first.

No. It means the common blockers are cleared. Rankings still depend on your content and the competition for each query. If you want someone to look at a real URL, the free website review does that.

Prefer someone else
ran it?

A senior strategist records five minutes on your actual site and tells you what to fix first. Free, and yours to keep.

Free review · No retainer required · Yours to keep

Last updated