SEO Freelancer Guru

Free technical SEO audit checklist

Crawl, indexation, redirects, canonicals, sitemaps, rendering, and AI crawlers. Tick them as you go.
  • No signup
  • Free
  • Saved in this browser

0 of 60 done

Crawlability

A crawler has to fetch the URL before anything else is true.

  • Key templates return 200

    high · about 5 minutes

    A template that 500s wastes the crawl.

    Check the homepage, a service, a category, and a detail page.

    Check this URL with the SEO checker
  • robots.txt is a real file

    high · about 5 minutes

    HTML at that URL is usually a soft 404.

    Open /robots.txt. It should be plain text, not the homepage.

    Test it in the robots.txt tool
  • Googlebot is allowed on the pages you want

    high · about 5 minutes

    A stray disallow is the usual accident.

    Test the path. Read the line that won.

    Test it in the robots.txt tool
  • CSS and JavaScript are not blocked

    high · about 5 minutes

    Google needs them to render.

    Do not disallow /wp-includes or the theme assets.

    Test it in the robots.txt tool
  • Facet and search URLs are controlled

    high · needs a developer

    Every sort and filter can become an indexable URL.

    Disallow the parameter patterns you do not want crawled, and canonical the rest to the clean URL.

    Test it in the robots.txt tool
  • WordPress admin-ajax stays allowed if you block wp-admin

    medium · about 5 minutes

    Blocking the whole admin folder can block a file the front end uses.

    Disallow /wp-admin/ and allow /wp-admin/admin-ajax.php.

    Test it in the robots.txt tool
  • One host is preferred

    high · needs a developer

    www and non-www both returning 200 splits the site.

    Pick one. Redirect the other. Use it in canonicals and the sitemap.

    Check this URL with the SEO checker
  • HTTP redirects to HTTPS in one hop

    high · needs a developer

    A chain through www and a trailing slash is three hops.

    Make the first redirect the final URL.

Indexation

Being crawled is not the same as being indexed.

  • Noindex is only on pages you mean to hide

    high · about an hour

    Tag archives and thank-you pages are the usual yes. Services are not.

    Search the theme and the SEO plugin for noindex.

    Check this URL with the SEO checker
  • Search Console coverage is read

    high · about an hour

    Excluded is a reason, not a score.

    Open the samples. Fix the reason, not the count.

  • Soft 404s are real pages or they are gone

    medium · about an hour

    A thin page that says nothing gets dropped.

    Give it content or return a real 404.

  • Duplicates are canonicalised or redirected

    high · about an hour

    Printer pages, parameters, and http copies are the usual set.

    One URL should answer for each piece of content.

    Check this URL with the SEO checker
  • Paginated archives are intentional

    low · about an hour

    Page 20 of a tag is rarely a landing page.

    Noindex them or fold them, and keep the links crawlable.

  • Indexable pages self-canonical

    high · about 5 minutes

    A missing canonical lets parameters win.

    The tag should be the clean URL of that page.

    Check this URL with the SEO checker

Redirects and status codes

One hop, the right code, then stop.

  • Permanent moves use 301 or 308

    high · about an hour

    A 302 on a permanent move looks temporary.

    Use 301 for URLs that have moved for good.

  • Chains are collapsed

    high · about an hour

    Three hops is a habit, not a plan.

    Point the old URL at the final URL.

  • There are no loops

    high · needs a developer

    A loop burns the crawl and shows an error.

    Fetch the URL and follow until it stops.

  • Removed pages 404 or 410

    medium · about an hour

    Redirecting every dead URL to the homepage is a soft mess.

    Redirect only when there is a real replacement.

  • Internal links point at the final URL

    medium · about an hour

    Links to redirected URLs keep the chain alive.

    Update the menu, the content, and the sitemap.

Canonicals

The canonical is a hint. Make the links agree with it.

  • Canonicals are absolute

    medium · about 5 minutes

    A relative canonical is easier to get wrong.

    Use the full https URL.

    Check this URL with the SEO checker
  • The canonical host matches the preferred host

    high · about an hour

    A canonical to the other host fights the redirect.

    One host, everywhere.

  • Parameter URLs canonical to the clean URL

    high · needs a developer

    Sort and currency parameters should not be the indexed URL.

    The clean URL is the canonical, and it returns 200.

  • Canonical and noindex are not fighting

    medium · about 5 minutes

    Noindex on a URL that others canonical to is confusing.

    Pick one instruction.

Hreflang

Only if you have more than one language or country.

  • Language and region codes are valid

    high · about an hour

    en-uk is wrong. en-GB is the region.

    Use ISO language and region codes.

  • Return links exist

    high · needs a developer

    A one-way hreflang is ignored.

    Each alternate should list the others, including itself.

  • The hreflang URL is the canonical URL

    high · about an hour

    Pointing hreflang at a redirected URL fails the cluster.

    Use the final URL.

  • x-default is a real choice

    low · about an hour

    It is the fallback, not a duplicate of every country.

    Point it at the page a person should see when no region matches.

Sitemaps

A sitemap lists the URLs you want indexed. It is not a dump of the database.

  • The sitemap returns 200 and XML

    high · about 5 minutes

    HTML here is a broken route.

    Open it. You should see urlset or sitemapindex.

  • Only canonical, indexable URLs are listed

    high · about an hour

    Noindex URLs in the sitemap contradict the page.

    Remove redirects, 404s, and noindex URLs.

  • Large sites split the file

    medium · needs a developer

    One giant file gets ignored past the limit.

    Use a sitemap index. Keep each file within the published limits.

  • robots.txt points at the sitemap

    medium · about 5 minutes

    It is a hint. Still worth one line.

    Add the Sitemap line.

    Test it in the robots.txt tool

Robots.txt

It is a request, not a lock, and not a way to remove an indexed page.

  • The live file is the one you think it is

    high · about 5 minutes

    Plugins and files overwrite each other.

    Fetch the live URL and compare it with the setting.

    Test it in the robots.txt tool
  • AI bots are a deliberate choice

    high · about 5 minutes

    Training and search are different bots.

    Allow search if you want to be cited. Block training only if that is the decision.

    Test it in the robots.txt tool
  • Google-Extended is not Googlebot

    medium · about 5 minutes

    Blocking Google-Extended does not remove you from Google Search.

    Read the bot before you toggle it.

    Test it in the robots.txt tool
  • There is no noindex directive in the file

    medium · about 5 minutes

    That directive has been unsupported since 2019.

    Use a meta tag or an HTTP header.

    Test it in the robots.txt tool
  • Crawl-delay is not your Google plan

    low · about 5 minutes

    Google ignores it.

    If you need to slow a crawl, use Search Console or the host, not that line.

JavaScript rendering

If the words are not in the first HTML, assume they are fragile.

  • Primary text is in the response HTML

    high · needs a developer

    Client-only text is a coin flip for some crawlers.

    View source. The H1 and the first paragraph should be there.

    Check this URL with the SEO checker
  • Important links are anchor tags

    high · needs a developer

    A div with a click handler is not a link.

    Use an href.

  • Not-found routes return 404

    high · needs a developer

    A JavaScript app that returns 200 for missing URLs creates soft 404s.

    The server status should match the page.

  • Canonical is in the first HTML

    medium · needs a developer

    A canonical injected late can be missed.

    Put it in the head from the server.

Core Web Vitals

Field data beats a single lab run.

  • Field LCP, INP, and CLS are checked

    high · about 5 minutes

    Lab data is a hint. Field data is what users hit.

    Use PageSpeed or Search Console. Note when the sample is too small.

    Check this URL with the SEO checker
  • The LCP element is known

    high · needs a developer

    It is usually the hero image or the heading.

    Do not lazy-load the hero. Give it a size.

  • The page responds to a tap

    medium · needs a developer

    Heavy scripts are the usual cause.

    Cut the tags. Break long tasks.

  • The layout does not jump

    medium · needs a developer

    Ads, fonts, and images without a size are the usual cause.

    Set width and height. Reserve space.

Structured data

Valid markup, matching the visible page.

  • JSON-LD parses

    high · about 5 minutes

    One syntax error drops the block.

    Validate it. Fix the line it names.

    Build the schema
  • The markup matches the visible content

    high · about an hour

    A price in schema that is not on the page is a problem.

    Use the same name, price, and availability the person sees.

    Build the schema
  • IDs in a graph do not collide

    medium · about an hour

    Two nodes with the same id overwrite each other.

    Give each node its own id.

    Build the schema
  • FAQ markup is not a rich-result promise

    low · about 5 minutes

    FAQ rich results ended for most sites on 7 May 2026.

    Use it to mark up real questions. Do not sell the rich result.

Log files

Logs show what was fetched. Search Console shows what was indexed. They are different.

  • You can get server logs if the site is large

    low · about an hour

    A small site can live without them. A large one should not.

    Ask the host for access logs, or use the platform export.

  • Googlebot in the logs is checked against waste

    medium · about an hour

    Parameter URLs eating the crawl show up here.

    See which paths get the hits. Block or canonical the junk.

  • 5xx spikes are visible

    medium · needs a developer

    A weekend of 500s drops pages.

    Watch the error rate after a deploy.

Security

A hacked site is an SEO problem because Google warns people away.

  • HTTPS is everywhere, including images

    high · about an hour

    Mixed content breaks the lock.

    Update hardcoded http links.

  • HSTS is on if you control the host

    low · needs a developer

    It tells browsers to stay on HTTPS.

    Set it once the redirects are clean.

  • The site is not an open redirect

    medium · needs a developer

    Open redirects get abused.

    Do not redirect to any URL a query string names.

  • Search Console security issues are empty

    high · about an hour

    A hack warning kills clicks.

    Check the security report. Clean the site before you chase rankings.

AI crawler access

Decide on purpose. Do not copy a block list you do not understand.

  • Training bots and search bots are separate

    high · about 5 minutes

    Blocking one is not the same as blocking the other.

    Read the purpose, then toggle.

    Test it in the robots.txt tool
  • GPTBot, OAI-SearchBot, and ChatGPT-User are not the same

    high · about 5 minutes

    One trains, one searches, one fetches when a person asks.

    Block the one you mean. Leave the search bot if you want citations.

    Test it in the robots.txt tool
  • Google-Extended does not control Google Search

    high · about 5 minutes

    It is the Gemini training opt-out.

    Leave Googlebot allowed if you want to rank.

    Test it in the robots.txt tool
  • The page can be quoted

    medium · about an hour

    A clear paragraph is easier to cite than a slogan.

    Write the answer in the HTML.

    Check this URL with the SEO checker
  • llms.txt is a small extra

    low · about an hour

    Adoption by the big answer engines is not confirmed.

    Add the file if it is easy. Do not expect it to change visibility on its own.

    Draft llms.txt

Want this sent to you?

Questions about the technical checklist

Some items need a developer. The ones marked about 5 minutes you can do from the browser. Essentials mode hides the long tail.

Still unsure?

Book a consultation, $75, 30-60 minutes.

Want this run against the live site?