MarketCheck — Regional SEO Audit avatar

MarketCheck — Regional SEO Audit

Pricing

Pay per usage

Go to Apify Store
MarketCheck — Regional SEO Audit

MarketCheck — Regional SEO Audit

Audit regional storefront HTTP responses, redirect chains, canonical tags and hreflang links. Verify linked targets and return annotations, then export JSON, CSV and HTML evidence reports. Raw HTTP checks with bounded requests; no paid proxies required.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

dushan

dushan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Inspect the actual HTTP response and regional SEO annotations of public storefront URLs. MarketCheck follows redirects, extracts canonical and hreflang tags, and checks linked targets and hreflang return links. Export evidence as JSON, CSV and HTML.

Input

Supply 1–20 exact URLs in startUrls. maxRequests defaults to 60 and accepts 1–200; every HTTP request and redirect counts. verifyTargets defaults to true. URLs explicitly supplied in the input are prioritized during target checking. Example:

{"startUrls":[{"url":"https://www.glossier.com/en-ca"},{"url":"https://www.glossier.com/en-lk"}],"maxRequests":60,"verifyTargets":true}

For SKIMS use examples/skims-regional.json, discovered from live hreflang tags on 25 October 2026. Check current storefront URLs before later runs.

Results

The default dataset has one row per input URL. requestedUrl, finalUrl, status and chain record HTTP evidence. canonicals, hreflang, robots and references hold extracted annotations and verification results. sha256 identifies the raw response body. targetCoverage shows declared, selected and verified target counts. An empty issues list means no findings within the performed checks; it is not a complete SEO certification.

REPORT.json contains full evidence, REPORT.csv contains summary rows, and REPORT.html is an escaped human-readable report. Find these in the run Output or Storage tabs.

Interpreting findings

FETCH_INCOMPLETE, TARGET_UNVERIFIED and TARGET_LIMIT_REACHED indicate incomplete coverage. They are not proof of a broken storefront. HTTP_BLOCKED_OR_UNAVAILABLE covers 403, 429 and server errors. CANONICAL_TRAILING_SLASH_DIFFERENCE is a specific consistency review, separate from CANONICAL_NOT_SELF. Missing hreflang can be intentional. If verification is off, TARGET_VERIFICATION_DISABLED is recorded explicitly.

Scope and limits

Raw HTTP HTML only, from the Actor server location. No JavaScript rendering, regional IP simulation, residential proxy, cookie persistence, HTTP Link-header SEO parsing or sitemap inspection. A bot-challenge page returning 200 needs human review. Canonical and reciprocal comparisons use exact URL strings; language codes are checked heuristically. At most 30 target references per page, 10 redirects and 2 MB per response. Default socket timeout is 20 seconds. Set an overall run timeout such as 180 seconds and a cost cap in Apify.

The Actor connects directly to validated public IP addresses while retaining HTTPS hostname verification and SNI, checks destinations again on every connection, and disables environment proxies. TLS validation stays enabled. These controls reduce private-network and DNS-rebinding risk; infrastructure-level outbound isolation remains recommended for public deployment.

Cost

No paid third-party service or proxy is required. Apify charges platform usage against your available credit according to your plan; a request cap is not a monetary guarantee. Sample runs on 25 October 2026 used approximately $0.001–$0.002 each, excluding builds, based on rounded Console figures. Costs vary. No plan upgrade or paid listing is needed to test privately.

Validation and development

Python 3.12. Run python -m unittest discover -s tests -v and python main.py INPUT.json. Local audits and tests use the standard library; cloud storage uses Apify SDK 3.4.1. Thirteen tests cover redirect loops, request/byte limits, blocks, reciprocal links, output escaping, explicit-region priority and connection-time destination validation. The cloud build runs tests before deployment.

This is recreated software version 0.3.1, not a recovery of the original conversation's files. The Console source version can differ from the software version. All 28 runtime package versions are pinned in requirements.lock.txt, based on the successful Linux/Python 3.12 cloud build. Docker installs without dependency resolution and runs pip check. The base image is digest-pinned. This is a version lock; wheel hashes are not included. Choose a source-code license and support contact before public distribution.