Marketing tool

Hreflang consistency checker

Validate reciprocal language mappings from uploaded HTML or a CSV.

Your inputs

Headers source,target,language. One row per actual annotation. Include all source pages in a cluster; maximum 5,000 rows.

Your results

Ready when you are
Add your inputs or try an example.
Your results will appear here.

How it works

Compare exported hreflang relationships without crawling a website. The checker identifies missing supplied return links, absent self references, conflicting targets, duplicate annotations and differing alternate sets. Use one row per annotation from your implementation.

Read the source reference ↗

A few things to know

This is a CSV consistency audit, not a live-page validator. It cannot establish page availability, content equivalence, correct canonical selection or whether markup is in the HTML head. It validates language-code shape only, not the complete ISO registry. A consistent export can differ from deployed HTML. Partial exports generate incomplete-evidence warnings.

A little context

When to use this tool

Small differences between localized templates can leave a page pointing to a counterpart that does not point back. This offline hreflang consistency checker compares the annotations in a supplied CSV, showing the relationships that need investigation. It makes missing evidence visible alongside conflicts and duplicate mappings. Use an export of actual annotations when reviewing an implementation, and keep planned markup separate from deployed evidence.

  • Review a cluster after a new language version has been added to a site.
  • Compare annotations exported from templates before a multilingual migration.
  • Identify incomplete source-page coverage in an audit export before drawing conclusions.

How to use hreflang consistency checker

  1. Supply annotation rows

    Paste CSV with source, target and language headers, one row per annotation. Source is the page containing the tag; target is its alternate URL. Include self references as rows and supply up to 5,000 mappings.

  2. Read the relationship warnings

    Generate the report. It distinguishes missing return references from targets absent from the export. Review self references, duplicate annotations, conflicting targets for a language and differences between supplied alternate sets.

  3. Verify the implementation

    Download the CSV and inspect flagged page pairs in your templates or rendered HTML. Add missing export evidence before deciding a target is broken. After correcting annotations, repeat the audit using a fresh export.

Try the numbers

An English page points to German without a return

Inputs

Three rows describe en pointing to itself, en pointing to de, and de pointing to itself. The German source has no annotation returning to the English page.

Result

The checker reports 3 mappings, 2 supplied source pages and 1 mapping to review. The English-to-German row flags the missing return reference and differing alternate sets.

What it means

The export contains enough evidence to identify a missing supplied relationship. Add the German-to-English annotation in the actual implementation, then export all four rows; that complete two-page example has zero configured flags.

Common mistakes to avoid

Treating absent evidence as a dead page

A destination can be valid while its source rows are missing from the CSV. The checker marks that distinction and cannot determine HTTP status.

Auditing generated rather than deployed markup

A planned mapping table can be consistent while a template omits its tags. Use the output you actually ship when validating deployment.

Interpreting every differing set as a failure

An alternate-set difference is a review prompt. Partial cluster relationships can require context, and an incomplete export can produce the same warning as a configuration problem.

Useful answers

Frequently asked questions

Definitions, edge cases, and practical next steps for this tool. Search all tool FAQs ↗

Is this a live hreflang crawler?

No. It inspects the CSV in your browser and makes no requests to its URLs. That makes it useful for private staging plans and exported audits, but it cannot confirm page availability or the tags currently served on a website.

What is a source URL versus a target URL?

Source is the page carrying an annotation. Target is the destination named by that annotation. A self reference has the same source and target. Reversing these columns changes the relationship being checked and can create misleading return-link warnings.

What counts as a return reference?

For a supplied source-to-target relationship, the checker looks for a row from the target back to the original source. It also compares target self-language values with incoming language labels, while treating x-default as a special fallback mapping.

What does target absent from supplied source pages mean?

The destination never appears in the source column, so there is no exported annotation set to inspect for that page. Add its source rows if they are available. The message is incomplete-evidence reporting, not a claim that the destination returns an error.

How are duplicate and conflicting mappings different?

An exact source, target and language repetition is a duplicate. A source assigning the same language to different targets is a conflict. Removing a duplicate cleans the export; resolving a conflict needs a decision about which destination should represent that audience.

Does a consistent result validate language codes?

Only their supported syntax is checked here. The checker does not maintain the complete ISO code registry. Use the generator or official language guidance to check assigned values, and manually verify any specialized script requirements.

Can I mix several clusters?

You may include multiple clusters within the row limit, provided each source has complete annotation evidence. The checker compares connected pages rather than inventing cluster membership from folder names. Unrelated pages should not be connected by annotation rows.

What remains after fixing the CSV warnings?

Check the actual HTML location of tags, redirects, canonical choices and whether pages represent equivalent content. A CSV relationship audit does not establish these conditions. Re-export after template changes so the next report reflects the new implementation.

Explore the topic in the blog

Sources and method

Use the references below to check definitions and platform guidance. The model’s scope and limits are explained above. Read our editorial standards.

Help

How can we help?

Find instructions, report a problem, or leave a message.

Read this tool’s FAQs ↗

Guides for this tool

Check that every language version points back to its equivalents.
Common questions

Where do I start? Try an example, then replace its values with yours.

Why did my upload fail? Check the field error, accepted format and file-size limit. Start with a small sanitized sample.

Where are my results? Review the result panel, then use its copy or download controls. If a calculation fails, check the error beside the input.

Message us

Chat opens Tawk.to. It processes your messages and connection data. Do not paste private inputs or file contents. Availability and response times vary.