---
name: multilingual-sitemap-coverage
description: Use when translated pages exist and are linked but receive no impressions, and the sitemap lists only the default language.
---

# Multilingual sitemap coverage

A monolingual sitemap on a multilingual site hides most of what you published. Head-level hreflang helps, but discovery is slow and partial. Every locale variant needs its own entry carrying the full alternate set.

## What you need first

- The sitemap generator
- The canonical URL for one page per template
- The supported locale list

## Method

1. Count the entries in the current sitemap and multiply by the number of locales. That is the target, and the gap is what is currently undiscoverable.
2. Emit one url entry per locale per page, rather than one entry with alternates - each variant needs its own loc to be crawled on its own merits.
3. Give every entry the identical alternate block, including a self-reference and one x-default.
4. Strip query strings from generated alternates. Some localisation libraries append parameters that turn each alternate into a distinct, non-canonical URL.
5. Verify reciprocity mechanically: every loc in the file must also appear as an alternate somewhere, and there must be no duplicate locs.
6. Confirm each alternate matches the canonical the page itself declares, including trailing-slash convention - a mismatch invalidates the cluster.

## What this produces

A sitemap with locale-count times the entries, fully reciprocal, verified against the canonicals the pages actually declare.

## Where this goes wrong

- Emitting one entry with alternates instead of one entry per locale
- Letting a library append query parameters to generated alternate URLs
- Declaring alternates that disagree with the page canonical, which silently discards the whole cluster

---

From the QuQi skill library - https://www.quqi.io/skills/multilingual-sitemap-coverage
