Paste the HTML of each language version of one page and see whether their hreflang tags point at each other correctly. The most common mistake is one page pointing to another that does not point back.
On a desktop browser, type view-source: before each URL and copy everything. The tool cannot open other sites itself; browsers do not allow it.
Where each page points
Page
canonical
hreflang
Findings
Rules checked (Google)
Each version lists itself and every other version; if page A links to B, B must link back, or Google may ignore the annotations.
Codes are an ISO 639-1 language with an optional ISO 3166-1 region: th, th-TH, en-GB. en-UK is wrong, and a region alone is not allowed.
URLs must be fully qualified — https://example.com/foo, not //example.com/foo or /foo — and should not use http:// instead of https://.
<link> tags must sit in <head>, and hreflang must not share a <link> with media.
The canonical should be the page in the same language; a canonical on another language tells Google this page is not that language’s main version.
x-default is optional: it names the page shown when the user’s language matches none.
Google does not use html lang to detect a page’s language, so this tool does not check it.
Only hreflang in the HTML is read; hreflang sent in HTTP headers is not visible here. For hreflang in a sitemap, use the sitemap checker.