Technical SEO Page Audit: Broken Links, Hreflang, $3/1k avatar

Technical SEO Page Audit: Broken Links, Hreflang, $3/1k

Pricing

Pay per event

Go to Apify Store
Technical SEO Page Audit: Broken Links, Hreflang, $3/1k

Technical SEO Page Audit: Broken Links, Hreflang, $3/1k

Audit any public page over plain HTTP: title, meta, canonical, H1-H3, word count, internal/external and broken links, images without alt, Open Graph/Twitter, hreflang, JSON-LD types, redirect chain, TTFB, and a prioritised issues list with a score. Respects robots.txt. $0.003 per page.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Open Data Actors

Open Data Actors

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Technical SEO Page Audit on Apify

Technical SEO Page Audit sample output table

  • In short: Technical SEO Page Audit (Apify actor transparent_meteorite/technical-seo-page-audit) audits public web pages over plain HTTP and returns on-page SEO data plus a prioritised issue list and score.
  • Who it is for: SEO agencies, site owners and developers checking releases, lead-gen teams auditing prospect sites.
  • Input: a list of URLs, max pages, check broken links, max links to check, request delay.
  • Output: title, meta description, canonical, H1-H3, word count, internal/external and broken links, images missing alt, Open Graph, hreflang, JSON-LD types, redirect chain, TTFB, issues with severity, score.
  • Price: $0.003 per page plus $0.00005 per run start. Pay per result, no subscription; Apify's free plan credit covers a first test.
  • Limits: no JavaScript rendering, so client-side-only content is not seen; respects robots.txt.

Key facts

  • Actor name: Technical SEO Page Audit
  • Actor ID: transparent_meteorite/technical-seo-page-audit
  • Store page: https://apify.com/transparent_meteorite/technical-seo-page-audit
  • Data source: the public pages themselves
  • Pricing model: pay per event (apify-actor-start $0.00005, page-audited $0.003)
  • Output formats: JSON, CSV, Excel, XML, HTML table, RSS (Apify dataset)
  • Access: Apify Console, REST API, JavaScript/Python clients, schedules, webhooks, Apify MCP server
  • Login or third-party API key needed: no, only an Apify account
  • Also known as: SEO audit API, broken link checker, bulk on-page SEO checker, hreflang checker, technical SEO crawler
  • Maintainer: transparent_meteorite (independent developer)
  • Last updated: 2026-10-07

Audit any public page for technical SEO in one request: title, meta, canonical, headings, links, broken links, images without alt, Open Graph and Twitter tags, hreflang, JSON-LD, redirect chain, TTFB, and a prioritised issues list with a 0-100 score. Plain HTTP, no browser, robots.txt respected, $0.003 per page.

Paste a list of URLs, press Start, get one flat row per page. Every problem comes with a code, a severity (error, warning, info) and a plain-English message, so the output can feed a dashboard, a spreadsheet or an alert without any post-processing.

Sample output (real run)

PageStatusScoreTitle lenWordsLinks int / extBrokenImgs no altTTFB msIssues
https://apify.com200100471,16278 / 5800192none
https://crawlee.dev200944022116 / 100029thin-content (warning), json-ld-missing (info)
https://example.com2007214250 / 000245 warnings, 3 info

Full rows carry about 50 fields, see samples/output.json.

What you get

  • Status and speed: HTTP status, full redirect chain with each hop's status, final URL, time to first byte, total response time, HTML size, content type, X-Robots-Tag.
  • On-page tags: title and length, meta description and length, canonical (and whether it points to itself), meta robots, lang, viewport, charset.
  • Structure: H1 text and counts of H1, H2 and H3, the heading outline, empty headings, visible word count.
  • Links: internal and external link counts, nofollow count, empty-anchor links, and a broken-link check (404, 410, 5xx and unreachable hosts) with the failing URLs and status codes.
  • Images: total, missing alt attribute. Decorative alt="" is counted separately and never flagged.
  • Social: all Open Graph and Twitter Card tags as objects.
  • International: every hreflang entry, with validation of codes and the self-reference.
  • Structured data: JSON-LD @type values (including @graph and nested types) and a count of invalid JSON-LD blocks.
  • Verdict: issues (code, severity, message), issueCounts, score (100 minus 15 per error, 5 per warning, 1 per info) and indexable (true, false or null when unfetched).

Quick start

Zero config: press Start. It audits three example pages in under a minute.

Example 1: audit your key landing pages, skip link checks for speed

{ "urls": ["https://yoursite.com/", "https://yoursite.com/pricing", "https://yoursite.com/blog"], "checkBrokenLinks": false }

Example 2: full audit with broken-link checks on up to 50 links per page

{ "urls": ["https://yoursite.com/", "https://yoursite.com/docs"], "checkBrokenLinks": true, "maxLinksToCheck": 50, "maxPages": 100 }

Schedule it daily or weekly and compare score and issueCounts over time to catch regressions after a deploy.

Pricing

Pay per event: $0.003 per page audited ($3 per 1,000) plus a $0.00005 start fee. A page is billed when the server returned an HTTP response and the audit ran (a 404 page is still audited and billed). Pages blocked by robots.txt, invalid URLs and hosts that cannot be reached are returned as rows but never charged. Link checks are included in the page price. Set a max charge in the run options and the actor stops cleanly when it is reached.

RunPagesCost
Zero-config default3about $0.009
Weekly check of 50 key pages50about $0.15 per run
Monthly audit of 1,000 pages1,000about $3

Use it with the API, n8n, Make, Zapier and AI agents

  • API: POST https://api.apify.com/v2/acts/transparent_meteorite~technical-seo-page-audit/runs with your input as the JSON body, then read the dataset items. Use the run-sync-get-dataset-items endpoint to get rows in one call.
  • n8n, Make, Zapier: use the Apify integration to run the actor on a schedule and send low scores or new error issues to Slack, email or a ticket tool.
  • Spreadsheets and BI: export JSON, CSV or Excel and pivot by issues[].code.
  • AI agents (MCP): the actor is available through the Apify MCP server, so an agent can audit a URL ("check this page for SEO problems") and read structured findings.

Use from AI agents (MCP, ChatGPT, Claude, Perplexity)

Technical SEO Page Audit works as a tool for AI assistants through the official Apify MCP server. Add this server URL to any MCP client (Claude Desktop, Claude Code, Cursor, ChatGPT connectors, VS Code):

https://mcp.apify.com/?actors=transparent_meteorite/technical-seo-page-audit

Claude Desktop / Cursor config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?actors=transparent_meteorite/technical-seo-page-audit",
"headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
}
}
}

Then ask in plain language, for example: "How do I run a technical SEO audit on many URLs through an API?"

Call it directly over HTTP (runs the actor and returns the dataset items in one request):

curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~technical-seo-page-audit/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://apify.com", "https://crawlee.dev", "https://example.com"], "maxPages": 25, "checkBrokenLinks": true, "maxLinksToCheck": 15}'

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("transparent_meteorite/technical-seo-page-audit").call(run_input={"urls": ["https://apify.com", "https://crawlee.dev", "https://example.com"], "maxPages": 25, "checkBrokenLinks": true, "maxLinksToCheck": 15})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

The same actor works in n8n, Make, Zapier, LangChain, LlamaIndex and CrewAI through their Apify integrations.

Questions people ask

How do I run a technical SEO audit on many URLs through an API? Pass the URLs to this actor; each page comes back as one row with the checks and a scored issue list.

Does it check broken links? Yes, with checkBrokenLinks true it tests up to maxLinksToCheck links per page.

Does it render JavaScript? No, it audits the HTML the server returns, which is what most crawlers index first.

Use cases

  • Agencies and freelancers: a fast first-pass audit for a prospect or client, with evidence per page.
  • In-house SEO: a scheduled regression check on your top templates and landing pages.
  • Developers: catch a stray noindex, a broken canonical, a redirect chain or a slow TTFB right after a release.
  • Migrations: feed in the old URL list and check status, redirect chains and canonicals on the new site.
  • Content teams: find missing titles and descriptions, thin pages and images without alt text.

FAQ

Is this allowed? It requests only public pages over plain HTTP, identifies itself with the TechnicalSeoAuditBot User-Agent, reads and obeys robots.txt (including Allow, wildcards, $ and Crawl-delay up to 10 s) and waits at least 500 ms between requests to the same host. It never logs in and refuses private, loopback and metadata addresses.

Does it crawl my whole site? No. It audits exactly the URLs you give it and, for broken-link checks, requests the links found on those pages. Feed it your sitemap URLs for site-wide coverage.

How is a link counted as broken? 404, 410, any 5xx, or a host that does not exist or refuses the connection. 401, 403, 429 and 999 responses are treated as "blocked" (many sites refuse bots), and timeouts are unverified; neither is reported as broken, to avoid false alarms. A HEAD request is tried first, with a GET fallback.

Why is my page missing from the charges? If robots.txt disallows the URL, or the host is unreachable, the row is returned with an explanatory issue and no charge.

Does it render JavaScript? No, it reads the HTML the server sends, which is what most crawlers see first. Content added only by client-side JavaScript (including titles set by scripts) is not seen.

What do the severities mean? error is something that blocks indexing or breaks the page (4xx/5xx, noindex, missing title, broken links, very slow TTFB). warning is a likely ranking or usability problem. info is an improvement opportunity.

What is TTFB here? Time from sending the request until response headers arrive, including DNS and TLS for the first request to a host, measured from where the actor runs.

Limitations

  • HTML as served only, no JavaScript rendering, no Core Web Vitals or Lighthouse metrics.
  • Link checks sample the first maxLinksToCheck links on each page (internal first). linksNotChecked tells you how many were left.
  • Only the first 3 MB of each page is read.
  • Sites that block datacenter traffic may answer 403 or 429; those rows are returned with the status and are billed because a response was received.
  • Word count is visible body text, not a readability measure.

Changelog

  • 2026-10-07: added plain-language summary, key facts, AI-agent (MCP) section and question-style FAQ; refreshed Store SEO metadata.