SEO Page Snapshot: meta, structured data, on-page checks avatar

SEO Page Snapshot: meta, structured data, on-page checks

Pricing

from $2.00 / 1,000 page analyseds

Go to Apify Store
SEO Page Snapshot: meta, structured data, on-page checks

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

Akshay Irudayaraj

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Categories

Security

Limited permissions

Share

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

FieldTypeNotes
urlsarrayPages to analyse. Duplicates are removed.
respectRobotsTxtbooleanDefault on. Disallowed pages come back as rows with error: "blocked by robots.txt".
includeJsonLdbooleanAttach parsed JSON-LD blocks (default on).
includeLinkListbooleanAttach every link with anchor text (default off).
concurrencyinteger1-20 parallel fetches; same-host requests are always spaced out.
userAgentstringCustom User-Agent.
maxUrlsintegerCap.

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, Article or FAQPage markup after a template change.
  • Monitoring: schedule weekly and diff title, canonical, metaRobots, statusCode to 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.txt by 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.