Say Hello

13,181 URLS.
~700 REAL PAGES.
16X THE NOISE.

The sitemap said 13,181 pages. The site actually had about 700. Everything else was the same content wearing different addresses - 15 locale prefixes serving identical English text, with markup claiming it was German, and not a single canonical tag anywhere.

Sitemap URLs
13,181
Real Pages
~700
Duplication
16x
Canonical Tags
0

The sitemap said 13,181 pages. The site actually had about 700.

Everything else - more than ten thousand URLs - was the same content wearing different addresses. During an AI visibility audit of a healthcare SaaS site in May 2026, I found that the company's roughly 80 blog articles existed at around 1,276 URLs, and its ~500 exercise pages at nearly 8,000, because every piece of content was duplicated across 15 locale URL prefixes: /es/, /de/, /fr/, /en-gb/, /en-au/ and so on.

Here is the part that turns a routine internationalization setup into a problem: the locale URLs did not contain translations. I fetched them directly and compared. The German URL served the identical English page - same title, same headings, same body text - with exactly one difference: the HTML lang attribute claimed the page was German. A page announcing "I am in German" in machine-readable markup, written entirely in English.

And not a single canonical tag anywhere on the site to tell crawlers which of the 16 copies was the real one.

URLs in the sitemap
13,181
Unique content pages
~700
Sitemap analysis, May 2026 audit - a 16x crawl-budget tax on every crawler

§ What this costs, concretely

Three separate bills come due with a structure like this.

Crawl budget, times sixteen. Every crawler that wants to read this site's actual content has to wade through 16 copies of everything. For traditional search that is inefficiency. For AI crawlers, which fetch far less per site and give up far sooner, it means the odds of any given fetch landing on meaningful, unduplicated content drop hard. The site was effectively paying a 16x tax on every crawler's attention.

Signal fragmentation. With no canonical tags, any link, citation or ranking signal earned by one copy of a page stays with that copy. Sixteen versions of an article each collecting a sixteenth of the authority is how a genuinely good page ranks like a mediocre one.

The language lie. Machine-readable markup that misdescribes the content is worse than missing markup, because systems act on it. A page whose markup says German but whose text is English is exactly the kind of contradiction that makes automated systems - search engines and AI models alike - trust the site's self-description less across the board.

§ The correction that made the finding better

My first version of this finding was more dramatic, and it was wrong in an instructive way.

I initially wrote "zero hreflang tags anywhere" - no international targeting signals at all - and rated the whole thing critical, the single worst issue on the site. Then, while running final sitemap hygiene checks, I noticed alternate-language entries inside the sitemap XML itself. I counted them: roughly 224,000 hreflang annotations, covering 17 locale codes, sitting in the sitemap the whole time.

That mattered, because Google treats sitemap-level hreflang as equivalent to tags in the HTML. My "no hreflang" claim was false - I had checked one layer of a two-layer system and generalized. I corrected the finding the same day, downgraded its severity, and rewrote its headline before anything reached the client.

The corrected finding is less cinematic and more precise. Hreflang exists, but it is promising locale-targeted content that the pages do not deliver - 224,000 annotations pointing at copies that are all the same English. Canonicals are still absent everywhere. The crawl waste is still 16x. The lang attribute still lies. The problem survived being wrong once; it just lost its most quotable sentence.

I keep this correction in the case study deliberately. An audit finding that has been challenged and re-verified is worth more than one that has only been asserted, and the discipline of checking the layer you did not think to check is most of what separates auditing from opinion.

§ What is the actual fix?

Two honest paths, with very different price tags.

Path A: make the promise true. Actually translate the content, so 16 locale versions carry 16 languages and the hreflang annotations describe reality. This is the right long-term answer for a company genuinely selling across those markets, and it is a multi-quarter content project, not a technical fix.

Path B: stop making the promise. Canonical every locale copy to the base version and remove the duplicates from the crawl surface. This is roughly a day of engineering on a modern CMS, and it converts the site from ~13,000 URLs of noise into ~700 URLs of signal. Nothing is lost, because the copies contained nothing the originals did not.

The strategic point I put to the client: choose either path deliberately, because the current state - the infrastructure of internationalization with none of its content - delivers the costs of both paths and the benefits of neither.

§ How to check your own site in an afternoon

  1. Download your sitemap and count URLs by pattern. Locale prefixes, parameter variants, print versions - group them and see how many unique content pages the total actually represents. The ratio is your first diagnostic: healthy sites run close to 1:1.
  2. Fetch a handful of locale or variant URLs and diff them against the original. Do not trust the URL structure to imply different content - read what actually comes back.
  3. Check three signals on those pages: the canonical tag (present, and pointing where?), the lang attribute (does it match the actual language of the text?), and hreflang (in the HTML or the sitemap - check both layers, which is the mistake I made).
  4. If you find copies without translations: pick path A or path B above. Deliberately.

Numbers dated as of the May 2026 audit, verified by direct fetch and sitemap analysis; the site is anonymized as a matter of client confidentiality.

The takeaway travels well beyond this one site. Internationalization tooling makes it effortless to multiply a site by 16 - one checkbox, and every page has 15 siblings. Nothing in the tooling asks whether you have 15 translations to put in them. The machines reading your site notice the difference, even when nobody on the team does.

Findings Like These, On Your Site

EVERY SITE HAS A
STORY ITS LOGS TELL.

Every case study on this page came out of a real audit. The same methodology - bot logs, citation sweeps, layer-by-layer verification - applied to your site, your logs, your market.