The site is finished. Searching your company name finds it. Searching anything you actually sell returns nothing. Three months on, still nothing.
What makes this hard is that none of these problems raise an error. The page opens, the colours are right, it looks fine on a phone. Everything that is wrong sits where you cannot see it, and search engines look only there.
Six common causes below, ordered by how often we encounter them, each with a way to check it yourself.
1. The same content on two addresses, both claiming to be the original
The most hidden and the most damaging.
One article opens from two addresses — /why-us/ and /blog/why-us/, identical content. Not fatal in itself, as long as Google is told which one counts. That declaration is the canonical tag.
The problem is that on many sites both addresses declare themselves canonical. Google sees two separate articles with identical text and no signal about which matters, so whatever authority they earn is split and neither ranks.
Our own site was like this last month: six articles, two addresses each, every one pointing at itself.
To check: open the same content several ways — with and without a trailing slash, with and without www, different capitalisation — and see whether they all return 200. Then read the canonical tag in the source of each. They should all name the same address.
2. Addresses that do not exist returning 200
Requesting something that is not there should return 404, which tells Google there is nothing here worth remembering.
Many sites — particularly generated ones — return a page for any address at all, with a 200 status. Visit /somerandomtext/ and you get the home page or an empty template, and the status says everything is fine.
This is a soft 404. Google will follow such addresses indefinitely, because each one “exists”. It burns the crawl budget allocated to your site and can index a pile of near-empty duplicates that drag the whole domain down.
We made this exact mistake recently: a new route for case pages accepted /cases/anything/ and rendered the blog index for anything it did not recognise, with a 200.
To check: add nonsense to your URL — /asdfghjkl/ — and read the status code. It must be 404. A browser will not show you the code; use the network panel in developer tools, or the command line.
3. Content that JavaScript paints in
Generated pages often hold content in scripts and insert it after load. It looks correct to a person, because the browser ran the script.
Crawlers may not. Some do, some do not, and most AI search engines do not. What they read is the HTML as it was before any script ran.
Our site had a counter animating from 0 to 500. The HTML said 0 and only became 500+ once it scrolled into view. So crawlers and AI read “0 websites delivered” — the one number on the page meant to establish scale, stating the opposite.
To check: use “view page source” in your browser, not “inspect element” — the latter shows the page after scripts have run. Search that source for text you can see on the page. If it is not there, crawlers cannot read it either.
4. A sitemap full of redirects and pages that are gone
A sitemap is the list you hand Google voluntarily. Every entry should open directly, return 200, and be a page you want indexed.
Commonly it contains old addresses that now redirect, thin archive pages, and pages that have been deleted.
None of that is penalised, but it wastes crawl budget and reduces how much Google trusts the list.
To check: open yourdomain/sitemap.xml or /wp-sitemap.xml and follow the entries. All should be 200 with no redirect.
5. A bilingual site that never says which version is for whom
With Chinese and English versions of the same pages, Google may treat them as duplicates, or serve the Chinese page to an English-speaking New Zealander, unless told otherwise.
The mechanism is hreflang, and each page needs to state: this is the Chinese version, the English version is here, and this is the default.
To check: look for hreflang in the page source. One entry per language, usually plus an x-default. They must point at each other — the Chinese page naming the English one and the English page naming the Chinese one. One direction alone does not count.
6. Articles that link to nothing
Less an error than the others, equally consequential.
Google reads a site’s structure and priorities through its links. If your articles are islands that reference neither each other nor your service pages, whatever authority each earns stays where it landed and never reaches the pages you actually want found.
Auditing our own site, the number of links from six articles to any service page was zero. Someone finishing a piece on why a business needs a website had no path from there to the page about building one.
To check: open one of your articles and count the links in the body that go to other pages on your own site. Zero is a problem.
Why AI goes wrong in these six places particularly
Not because AI is unintelligent. Because these six share a property: getting them wrong produces no feedback.
Broken code raises an error, and AI can read the error and fix it. A wrong canonical raises nothing. A missing hreflang raises nothing. A soft 404 raises nothing, and absent internal links certainly do not. The page renders and everything appears correct.
AI corrects itself from feedback. Where there is none, it falls back on conventions learned in training, and those conventions frequently do not hold for a particular site’s structure.
What a person adds here is not “knowing SEO better than AI”. It is knowing which places have to be checked deliberately. None of the checks above are difficult. The difficult part is knowing they exist and actually doing them.
An order that saves time
If you are working through this yourself: start with 2, since it affects crawling of the whole site; then 3, which decides whether your content exists at all; then 1 and 5, which decide where authority goes; then 4 and 6.
If nothing improves after that, the problem has usually stopped being technical — the content may not match anything people search for, which is a separate subject.
The first thing our SEO and GEO service does is work through this list, because it is the foundation. Get it wrong and any amount of content afterwards is water poured into a leaking bucket.