How do I know if my website has technical SEO problems?
Short answer
Start with Google Search Console, the free Google tool that shows how Google sees your site. Its reports list the pages Google didn't index, pages that are slow or unstable on phones, and any manual action against the site. Problems it doesn't show, such as broken redirects or orphaned pages, need a crawl of the site.
You find out whether your website has technical SEO problems by reading what Google itself reports about the site in Google Search Console, and then checking the things Search Console doesn’t show. Technical SEO is the part of search engine optimization (SEO) that deals with whether Google can reach, read and store your pages, as opposed to what the pages say. Most technical problems are invisible to a visitor. The site looks fine in a browser while Google is skipping part of it.
Signs you might notice without any tools
A few symptoms point toward a technical cause, though none of them proves one.
- A page published weeks ago can’t be found on Google, even when you search for its exact title.
- Calls or visits dropped right after a redesign, a new domain name or a move to a different host.
- Google shows an old address that no longer exists, or the wrong page for a search.
- The site is slow, or the layout jumps around, on your own phone away from Wi-Fi.
- A browser or a search result warns that the site isn’t secure or may be hacked.
Each of these can have a non-technical explanation as well. A drop can come from a competitor improving, or from a Google core update. Treat the symptoms as a reason to look.
What Google Search Console tells you
Google is reporting on its own behavior here, which makes this the best first check. If nobody has set up Google Search Console for your site, that is the first job. These reports cover most of the ground.
| Report | The question it answers |
|---|---|
| Page indexing | Which pages has Google stored, which has it left out, and what reason does it give for each group? |
| Core Web Vitals | Do real visitors, mostly on phones, get pages that load, respond and hold still? |
| Manual actions | Has a reviewer at Google penalized the site for breaking its rules? |
| Security issues | Has Google detected hacked content or malware on the site? |
A long list of pages that aren’t indexed isn’t automatically bad news. Every site has addresses Google is right to ignore, such as feeds, internal search results and old addresses that now forward somewhere else. Look for any page you want customers to find sitting in that list.
What Search Console won’t show you
Problems inside the site need a second check, because Search Console describes only Google’s side. A crawl is a program that follows every link on the site the way a search engine would and records what it finds. A crawl turns up redirect chains (one address forwarding to another, and then another), links that lead to missing pages, pages that no other page links to, duplicated titles, and structured data with errors in it.
I also look at each important page with JavaScript switched off. Google can usually run scripts, but in practice many other crawlers, including some used by AI assistants, read only the plain page. If your phone number or service list appears only after a script runs, some of them won’t see it.
Which problems are worth fixing
Only the ones that keep a useful page from being found or used. Automated checkers list hundreds of warnings, and for a home-service site of fifty or a hundred pages most of them make no difference. I sort every finding by one question: does this stop Google or a customer from reaching a page that earns calls?
A service page excluded from the index or a broken redirect left over from a redesign goes first. So does a booking page that stalls on a phone. A missing description on the privacy page goes last, or nowhere. That sorting is most of the value of a technical SEO audit. You get a short list you can act on.
I test each fix like any other change. I change one thing and measure again about two weeks later, and the fix stays only if it worked.