Identify the content language before the URL pattern
Open both editions and inspect the main content, not just the navigation. Record the language, final address and canonical declaration for each page. A path containing ar or en is a useful convention but is not evidence that the body has actually been translated.
For genuinely translated editions, distinguish the language relationship from duplicate URLs within one language. An Arabic article may have a tracking-parameter duplicate that needs a preferred Arabic address. That does not make the English translation the appropriate destination for every Arabic canonical declaration.
Build two separate checks
First identify the preferred URL for each language edition. Then check the alternate-language relationship between those preferred pages. Google’s canonical guidance advises using a canonical in the same language for hreflang pages, or the best substitute when none exists. Its localized-page guidance distinguishes translated main content from untranslated duplicates.
For a normal bilingual article with stable unique addresses, a self-referencing canonical on each edition can express that structure clearly. Do not apply this as an excuse to ignore actual same-language duplicates. Record the reason for each destination and inspect any exceptional mapping rather than assuming all pages must use one universal rule.
Inspect templates for accidental cross-language values
Look for a shared canonical variable that is always populated from the English record, a copied absolute address or a language switch that changes the body without updating metadata. Inspect the emitted HTML for representative pages in each language. A correct configuration field does not prove that the published head uses it.
Keep internal links, sitemaps and alternate annotations aligned with the chosen language-specific URLs. Check for duplicate canonical declarations and destinations that redirect unexpectedly. Treat a returned success status as one technical observation; read the destination to confirm that it represents the intended edition.
Illustrative example: a copied English canonical
Imagine an Arabic guide has a fully translated body, but its head declares the English guide as canonical because the template copied the original record. The content inventory identifies a stable Arabic address and no separate preferred Arabic duplicate. This is a fictional diagnostic example, not a reported customer incident.
The editor corrects the Arabic record to use its intended Arabic address while retaining the English page’s own preferred address. Reciprocal language annotations connect the two. The team rebuilds and checks both heads and their final destinations, without claiming that Google immediately changed its selected canonical or indexed either page.
Validate declarations separately from Google observations
Save the declared canonical and alternate set for every checked edition. If Search Console information is available, record Google’s selected canonical separately and include the observation date. A mismatch calls for investigation of content, signals and crawl state; it is not a reason to repeatedly change URLs without evidence.
An SEO audit can flag a cross-language canonical for review, but the reviewer must confirm whether the main content is translated and whether a legitimate duplicate exists. Recheck after template changes and migrations. Consistent signals reduce ambiguity in your implementation, while Google still decides canonical selection and indexing.
