Skip to content
JS

SEO

A technical SEO audit you can run yourself

Before paying anyone for an SEO audit, run these six checks. They take an afternoon, need no paid tools, and usually find the real problem.

Jose Sebastian6 min read

Most of the technical SEO audits I'm asked to review are forty pages long and say nothing the owner can act on. The genuinely useful part is usually six checks, and you can run all of them yourself in an afternoon with free tools.

Do that first. If the checks come back clean, you have a content or competition problem, not a technical one — and you'll have saved yourself paying someone to tell you that.

Work through them in this order. The early ones are the ones that silently delete a site from Google.

1. Is Google actually indexing your pages?

Everything else is irrelevant if your pages aren't in the index. Two ways to check, and you want both because they disagree in useful ways.

The quick one: search Google for site:yourdomain.com. The result count is a rough estimate, but if it returns three results and you have forty pages, you've found your problem in ten seconds.

The real one: open Google Search Console, go to Indexing → Pages, and read the "Not indexed" reasons. They are specific and honest:

ReasonWhat it usually means
Excluded by 'noindex' tagA tag is telling Google to stay away — see check 2
Blocked by robots.txtCrawling is blocked, often left over from staging
Duplicate without user-selected canonicalGoogle found several versions of one page — see check 3
Crawled, currently not indexedGoogle saw it and judged it not worth indexing. Content problem, not technical
Discovered, currently not indexedGoogle knows the URL exists but hasn't crawled it. Usually thin internal linking

If you don't have Search Console set up, stop and do that first. It is free, takes about ten minutes, and no amount of guessing replaces being told directly what Google thinks of your site.

2. Is a leftover noindex tag hiding the site?

This is the single most expensive mistake I find, and it is almost always the same story: the site was built on a staging domain with indexing switched off, went live, and nobody switched it back on.

On WordPress, check Settings → Reading for "Discourage search engines from indexing this site". If that box is ticked on a live site, untick it now.

Then verify at the source, because SEO plugins can add their own tag independently:

# Look for a noindex directive in the page HTML and response headers
curl -sI https://example.com/ | grep -i "x-robots-tag"
curl -s https://example.com/ | grep -i "robots"

You want to see either nothing, or index, follow. Anything containing noindex on a page you want ranked needs removing.

While you're there, open https://yourdomain.com/robots.txt in a browser. A line reading Disallow: / blocks the entire site. It belongs on staging and nowhere else.

3. Can the same page be reached at several URLs?

Google treats every distinct URL as a distinct page. If your homepage answers on all four of these, that's four competing copies of one page:

  • http://example.com
  • http://www.example.com
  • https://example.com
  • https://www.example.com

Pick one — https, and either with or without www, it genuinely doesn't matter which — and make the other three redirect to it with a 301. Then check that each page carries a canonical tag pointing at the version you chose.

# Follow the redirect chain and show each hop
curl -sIL http://example.com | grep -iE "^(HTTP|location)"

You want one or two hops ending in 200. If you see four hops, or a redirect loop, fix the order of your redirect rules.

The same problem shows up with tracking parameters, trailing slashes, and WordPress category pagination. The canonical tag is what resolves all of it, which is why "Duplicate without user-selected canonical" in Search Console is worth taking seriously.

4. Does every page have a distinct title and description?

Not glamorous, and still one of the highest-return fixes on most small business sites. Duplicate titles across pages tell Google those pages are interchangeable.

Free tools that will list every title on your site: Screaming Frog's free tier crawls up to 500 URLs, which covers almost any small business site. Sort by title, look for repeats and blanks.

What good looks like:

  • Title — under about 60 characters, with the actual thing the page is about at the front. "Emergency Plumber in Dubai" beats "Home | Services".
  • Meta description — under about 155 characters. It doesn't affect rankings directly, but it's the sales copy in the search result, and Google writes something worse if you leave it blank.
  • One H1 per page, describing the page. Not your company name on every page.

5. Can visitors and crawlers reach every page?

A page nobody links to is a page Google finds late and values little. This is what "Discovered, currently not indexed" usually means.

Two things to check by hand:

  1. Is it in the menu, or linked from a page that is? If reaching a service page needs three clicks from the homepage, that's too deep for a twenty-page site.
  2. Do you have an XML sitemap, and is it submitted? Visit https://yourdomain.com/sitemap.xml. Every page you want ranked should be listed, and nothing you don't. Submit the URL in Search Console under Indexing → Sitemaps.

Link between related pages in body copy, not just navigation. A sentence on your services page linking to a relevant case study does more than another menu item, and it tells Google what the target page is about.

6. Is the site fast enough on a phone?

Core Web Vitals are a real ranking signal, though a smaller one than the industry likes to claim. The bigger cost of a slow site is people leaving before it loads.

Run your top three pages through PageSpeed Insights and read the mobile score, not desktop. The three numbers that matter:

  • LCP — how long until the main content appears. Under 2.5s.
  • INP — how quickly the page responds when tapped. Under 200ms.
  • CLS — how much the layout jumps while loading. Under 0.1.

If the numbers are bad, the causes are predictable and I've written them up separately in how to speed up a slow WordPress site. Diagnose before you install a single optimisation plugin.

Also check the Core Web Vitals report in Search Console. PageSpeed Insights tests one page in a lab; Search Console reports what real visitors experienced. When they disagree, believe Search Console.

What to do first

If you only have an hour, do checks 1 and 2. A stray noindex or a Disallow: / will keep a perfect site invisible forever, and both are a one-click fix once you know they're there.

Then work through 3 to 6 in order. Write down what you find rather than fixing as you go — half the items usually share one root cause, and you'll fix them faster once you can see the whole list.

If the technical side comes back clean and you're still not ranking, the problem is content, competition, or age — and that's a different piece of work. Happy to take a look if you want a second opinion on which one you're dealing with.

Related reading

Web Development3 min read

How to speed up a slow WordPress site (without breaking it)

Most slow WordPress sites share the same four causes. Here's how I diagnose them, in the order that finds the problem fastest.

Tips3 min read

Your SSL certificate broke: a 5-minute checklist

Browser shouting about your certificate? Work through these five checks in order — it's almost always one of them, and four take under a minute.

Hosting6 min read

How to move a website to a new host without downtime

A host migration goes wrong in the same three places every time. Do the steps in this order and visitors never see a broken site.

Need a hand with something like this?

I work with businesses in Dubai and remotely worldwide on websites, SEO, hosting and IT. Tell me what you're dealing with.

Get in touch