SEO Page Snapshot: meta, structured data, on-page checks
Pricing
from $2.00 / 1,000 page analyseds
SEO Page Snapshot: meta, structured data, on-page checks
Returns one row per URL with title, meta description, robots, canonical, hreflang, Open Graph, Twitter Card, JSON-LD and microdata types, H1s, word count, image alt coverage, internal/external link counts, status code, redirects and response time, plus a list of on-page issues. Fast HTTP fetch...
Pricing
from $2.00 / 1,000 page analyseds
Rating
0.0
(0)
Developer
Akshay Irudayaraj
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Security
Limited permissionsShare
SEO Page Snapshot
Paste a list of URLs and get one row per page with everything an on-page SEO audit needs: title and meta description (with lengths), robots directives (meta and X-Robots-Tag), canonical, html lang, hreflang alternates, Open Graph and Twitter Card tags, JSON-LD and microdata types (with the raw JSON-LD if you want it), H1s and heading counts, word count, image alt coverage, internal/external/nofollow link counts, status code, redirect chain, response time and server header. A short issues list flags the usual problems (missing title, long description, multiple H1, noindex, canonical mismatch, no structured data, thin content and so on).
It is a plain HTTP fetch with an HTML parser, so it runs at hundreds of pages a minute and costs a fraction of a browser-based crawler. It does not render JavaScript; for client-side-rendered pages the snapshot reflects the HTML the server sends, which is also what most crawlers see first.
What you get
{"url": "https://example.com/","finalUrl": "https://example.com/","statusCode": 200,"redirectChain": [],"contentType": "text/html","htmlBytes": 1256,"responseTimeMs": 182,"server": "nginx","xRobotsTag": null,"error": null,"title": "Example Domain","titleLength": 14,"metaDescription": null,"metaDescriptionLength": 0,"metaRobots": null,"canonical": null,"lang": "en","viewport": "width=device-width, initial-scale=1","charset": "utf-8","hreflang": [],"feeds": [],"ampUrl": null,"favicon": "data:,","h1": [],"headingCounts": {"h1": 0, "h2": 0, "h3": 0, "h4": 0, "h5": 0, "h6": 0},"wordCount": 24,"images": 0,"imagesMissingAlt": 0,"links": {"internal": 0, "external": 0, "nofollow": 0, "total": 0},"openGraph": {},"twitterCard": {},"jsonLdTypes": [],"jsonLd": [],"microdataTypes": [],"issues": ["missing meta description", "missing canonical", "missing h1", "missing og:image", "no structured data", "thin content (<100 words)"],"scrapedAt": "2026-10-22T19:04:11+00:00"}
Input
| Field | Type | Notes |
|---|---|---|
urls | array | Pages to analyse. Duplicates are removed. |
respectRobotsTxt | boolean | Default on. Disallowed pages come back as rows with error: "blocked by robots.txt". |
includeJsonLd | boolean | Attach parsed JSON-LD blocks (default on). |
includeLinkList | boolean | Attach every link with anchor text (default off). |
concurrency | integer | 1-20 parallel fetches; same-host requests are always spaced out. |
userAgent | string | Custom User-Agent. |
maxUrls | integer | Cap. |
Example:
{"urls": ["https://www.yoursite.com/", "https://www.yoursite.com/pricing", "https://www.yoursite.com/blog/"],"includeLinkList": true}
Tip: feed it the URLs from a sitemap (any sitemap extractor Actor on Apify Store outputs a URL list you can pass straight in).
Pricing
Pay per event: $0.002 per page analysed ($2 per 1,000 pages), plus Apify's standard Actor start fee. Pages that return an error (4xx/5xx, timeout, non-HTML, blocked by robots.txt) are charged too, because the request is still made and the status is useful audit data. A 500-page site audit costs about $1.
Use cases
- Site audits: run on a sitemap's URLs, export to Google Sheets, sort by
issues. - Structured-data checks: find pages missing
Product,ArticleorFAQPagemarkup after a template change. - Monitoring: schedule weekly and diff
title,canonical,metaRobots,statusCodeto catch regressions. - Competitor research: titles, descriptions, schema types and word counts across competitor landing pages.
- AI agents and RAG pipelines: a cheap pre-check (status, canonical, noindex, word count) before crawling full content.
Notes
- Redirects are followed (up to 20); the chain is reported so you can spot redirect loops and HTTP→HTTPS hops.
- Only the first 5 MB of HTML is parsed.
- The Actor identifies itself in the User-Agent and honours
robots.txtby default. It collects page metadata only, not personal data.
FAQ
My page is a JavaScript app and the snapshot is almost empty. That is what the server sends to crawlers. Check wordCount and h1: if they are empty, your SEO depends on pre-rendering. For rendered audits, pair this with a browser-based crawler.
Can I pass a sitemap URL? Not directly; use a sitemap extractor Actor first and pass its URL list.