Hreflang Validator & Checker for International SEO avatar

Hreflang Validator & Checker for International SEO

Pricing

Pay per event

Go to Apify Store
Hreflang Validator & Checker for International SEO

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

psx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

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 HTTP Link header.
  • Codes: invalid-code (e.g. en-UK, jp, en_US, numeric regions like es-419, wrong case of x-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 reports missing-return-link, alternate-http-error, alternate-unreachable, alternate-redirects, alternate-canonical-mismatch.
  • Sitemap-based hreflang (xhtml:link) is not covered in this version.

Input

FieldDefaultDescription
urlsrequiredPages to validate (up to 2,000), one per site or template.
checkReturnLinkstrueFetch alternates to verify reciprocity.
maxAlternates25Max alternates fetched per page (max 60).
respectRobotstrueSkip disallowed pages (not charged).
delayMs400Delay per host.
concurrency3Pages 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).