Hreflang & Canonical Tag Validator avatar

Hreflang & Canonical Tag Validator

Pricing

$10.00 / 1,000 results

Go to Apify Store
Hreflang & Canonical Tag Validator

Hreflang & Canonical Tag Validator

Checks the hreflang and canonical tags on the URLs you provide and reports missing return tags, invalid language codes, missing x-default, and canonical conflicts.

Pricing

$10.00 / 1,000 results

Rating

0.0

(0)

Developer

James Barnes

James Barnes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

Checks the hreflang and canonical tags on the page URLs you provide and reports exact problems: missing return tags, invalid language codes, missing x-default, missing self-reference, and canonical conflicts.

What it does

For each URL the Actor fetches the page (HTML <link> tags and HTTP Link headers), extracts canonical and hreflang annotations, and optionally fetches every alternate page to verify reciprocity. It reports one result per input URL with a list of issues.

Issues detected include:

  • MISSING_RETURN_TAG: the alternate page does not link back
  • HREFLANG_INVALID_CODE: invalid language/region code (e.g. en-UK)
  • X_DEFAULT_MISSING, HREFLANG_NO_SELF_REFERENCE
  • HREFLANG_DUPLICATE_CONFLICT: same language pointing to different URLs
  • CANONICAL_MISSING, CANONICAL_NOT_SELF, CANONICAL_MULTIPLE_CONFLICTING, CANONICAL_CHAIN
  • CANONICAL_HREFLANG_CONFLICT: hreflang on a page that canonicalizes elsewhere
  • ALTERNATE_CANONICAL_CONFLICT, ALTERNATE_REDIRECTS, ALTERNATE_UNREACHABLE

Input

  • urls: list of page URLs (max 200)
  • checkAlternates: fetch alternates to verify return tags (default true)
  • respectRobotsTxt: skip URLs disallowed by robots.txt (default true)
  • requestDelaySeconds: delay between requests to the same host (default 1)

Output example

{
"url": "https://example.com/en/",
"finalUrl": "https://example.com/en/",
"httpStatus": 200,
"canonical": "https://example.com/en/",
"hreflangCount": 3,
"hasXDefault": false,
"isValid": false,
"errorCount": 1,
"warningCount": 1,
"issues": [
{"code": "MISSING_RETURN_TAG", "severity": "error", "message": "Alternate page does not link back to this page.", "hreflang": "de", "href": "https://example.com/de/"},
{"code": "X_DEFAULT_MISSING", "severity": "warning", "message": "No x-default hreflang annotation."}
]
}

Pricing

$0.01 per result (one result per input URL), charged by the platform per dataset item.

Limits

  • Max 200 input URLs per run; extra alternate/canonical pages fetched for checks are not charged.
  • Only the first 3 MB of each page is parsed; no JavaScript is executed, so tags injected by scripts are not seen.
  • Sitemap and HTML-only hreflang is supported via page tags and HTTP headers; XML sitemap hreflang is not checked.
  • The Actor identifies itself with its own User-Agent, honors robots.txt by default, and rate-limits requests per host.