WoluTools

Websites & SEO

Check hreflang tags across your language versions

Paste page URLs or upload a sitemap or CSV, up to 5,000 URLs per run. You see missing return links, wrong language codes and conflicting alternates, with fixes.

or upload a file

or drop it here

CSV, XML, HTML · Up to 5,000 urls
Free account needed for your 3 free jobs a day

No file at hand? See the prepared example

Standard toolIncluded · 3 free jobs a dayFree: 3 jobs a dayPro: up to 200 jobs a day · €12.99/month or €89.99/year
  • URL / CSV / XML / HTML
  • Up to 5,000 urls
Prepared result preview · fictional sample dataSynthetic localized page head
Source
English, German and x-default alternates
Prioritized findings
  • Language codes are syntax-checked
  • Declared alternate URLs are inventoried
  • Ranking outcomes are never predicted

result.json · findings.csv · http-evidence.csv · read-me.txt

BringURL, CSV, XML, HTML
GetCluster matrix, evidence CSV and repair suggestions
PrivacyEncrypted source · 24-hour result

One clear job, from source to download

  1. 1

    Add the source

    Supported formats and limits are visible before the upload.

  2. 2

    Confirm the settings

    Review the exact source, options, units and access before processing.

  3. 3

    Inspect and download

    Check the preview and warnings, then unlock the complete package.

Find broken hreflang links across language versions

What you put in

You paste page URLs or upload an XML sitemap, a CSV export or an HTML file. One run checks up to 5,000 URLs. Only the alternates your pages declare are checked. Pages outside the set you submit stay unseen, so include every language version. You get 3 free jobs a day with a free account, and failed jobs do not count.

Reading the findings

You get result.json, findings.csv, http-evidence.csv and read-me.txt. Findings are grouped per set of language versions and split into syntax errors, missing return links and canonical conflicts. A missing return link means page A names page B, but B does not name A back. Codes such as en-UK or de_DE are flagged. Each finding comes with a suggested fix you can check in the page source.

Live checks and your judgement

With Check live responses on, each declared alternate is requested once. Its status code and canonical go into http-evidence.csv. Crawling is bounded, so pages outside your submitted set are not fetched. A code can be valid and still be the wrong choice for your market, which is your decision. The report makes no ranking prediction. It points to markup problems, and traffic effects depend on things this tool never sees.

Questions before you run it

What counts as a missing return link?

Page A names page B as an alternate, but B does not name A back. Those one-way pairs are listed per cluster, because search engines disregard hreflang annotations that are not reciprocal.

Does it check that my language and region codes are valid?

Codes are syntax-checked against the expected language and optional region pattern, so entries like en-UK or de_DE are flagged. A code can be well formed and still be the wrong choice for your market, which stays a judgement call.

Can I feed it a sitemap instead of a URL list?

Yes. The Source control accepts page URLs, an XML sitemap or a CSV export, up to 5,000 URLs per run.

What does the Check live responses option actually fetch?

With it enabled, each declared alternate is requested once and the status code and canonical are recorded in http-evidence.csv. Crawling is bounded, so pages outside your submitted set stay invisible to the run.

Will fixing the findings improve my rankings?

No prediction is made. The report separates syntax errors, missing returns and canonical conflicts so you can fix concrete markup problems; traffic effects depend on factors this tool never sees.