Hreflang Validator & Checker for International SEO
Pricing
Pay per event
Hreflang Validator & Checker for International SEO
Validate hreflang annotations (HTML link tags and HTTP headers) for multilingual sites: invalid codes, missing self-reference, missing x-default, canonical conflicts and missing return links on alternates. Plain HTTP.
Pricing
Pay per event
Rating
0.0
(0)
Developer
psx
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Hreflang Validator for International SEO
Validate the hreflang setup of multilingual and multi-region sites, including the part most tools skip: do the alternates actually link back? Plain HTTP, no browser, no personal data.
What it checks
- Annotations from HTML
<link rel="alternate" hreflang>and the HTTPLinkheader. - Codes:
invalid-code(e.g.en-UK,jp,en_US, numeric regions likees-419, wrong case ofx-default). - Set integrity:
missing-self-reference,missing-x-default,conflicting-duplicate,duplicate,single-annotation,non-absolute-url,mixed-protocols,canonical-mismatch. - Return links (optional, default on): fetches each alternate (up to
maxAlternates) and reportsmissing-return-link,alternate-http-error,alternate-unreachable,alternate-redirects,alternate-canonical-mismatch. - Sitemap-based hreflang (
xhtml:link) is not covered in this version.
Input
| Field | Default | Description |
|---|---|---|
urls | required | Pages to validate (up to 2,000), one per site or template. |
checkReturnLinks | true | Fetch alternates to verify reciprocity. |
maxAlternates | 25 | Max alternates fetched per page (max 60). |
respectRobots | true | Skip disallowed pages (not charged). |
delayMs | 400 | Delay per host. |
concurrency | 3 | Pages in parallel. |
Output
{ "url": "https://example.com/en/", "status": 200, "hreflangCount": 4, "alternatesChecked": 3, "score": 88,"entries": [{ "hreflang": "de", "href": "https://example.com/de/", "source": "html" }],"issues": [{ "severity": "high", "id": "missing-return-link", "message": "Alternate does not link back to this page (return links are required).", "hreflang": "fr", "href": "https://example.com/fr/" }] }
Severity: high -12, medium -5, low -1 points from 100.
Safety and etiquette
Private/internal addresses blocked (SSRF guard on every redirect and at DNS level). robots.txt respected by default, max 2 parallel requests per host with a delay. The alternates fetched are the pages the site itself declares.
Pricing (pay per event)
apify-actor-start $0.005 per run (per GB), site-checked $0.005 per input URL fetched successfully (return-link checks of up to maxAlternates pages included; errors and robots-skipped pages not charged).
Develop
npm install && npm test; local run via storage/key_value_stores/default/INPUT.json + npm start; deploy apify push (private by default).