SEO Site Checkup — Technical Website Audit
Pricing
from $20.00 / 1,000 seo page auditeds
SEO Site Checkup — Technical Website Audit
Audit public website pages for on-page SEO, technical signals, structured data, social metadata, security headers, and prioritized issues.
Pricing
from $20.00 / 1,000 seo page auditeds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
Free plan limit: Free-plan users can receive up to 5 result records per run. Paid-plan and local/unknown runs retain the Actor's existing limits.
Run a bounded technical SEO audit on a public website URL and receive one structured record per audited page. The actor reports an explainable 0–100 heuristic score, page metadata, crawlability signals, structured data, social tags, security headers, and prioritized recommendations for SEO agencies, site owners, developers, and AI agents.
This is a static HTML audit. It does not log in, bypass access controls, execute JavaScript, or claim to reproduce Google rankings.
What it checks
| Area | Output |
|---|---|
| Page metadata | HTML title, title length, meta description, canonical URL, robots meta |
| Content structure | H1/H2/H3 counts, first H1 text, approximate visible word count |
| Crawlability | HTTP status, final URL, HTTPS, robots.txt, sitemap availability, internal/external links |
| Media | Image count and images missing a non-empty alt attribute |
| Search enhancements | JSON-LD schema.org types and indexable signal |
| Social previews | Open Graph and Twitter/X card presence |
| Response hardening | HSTS, CSP, X-Content-Type-Options, and Referrer-Policy headers |
| Recommendations | Critical, warning, and informational issues with a concrete fix |
When to use it
Use this actor when you need a quick, repeatable technical baseline for one URL or a small same-host sample. Set crawlLinks to true to follow internal links until maxPages, or false for a single-page check. For JavaScript-heavy sites, run a browser-based crawler first and pass its rendered URLs to a suitable audit workflow; this actor intentionally measures the HTML returned to a normal HTTP crawler.
Do not use it for private pages, authenticated staging environments, full enterprise-scale crawling, Core Web Vitals, backlink discovery, keyword-volume research, or a guarantee of search-engine indexation. seoScore is a heuristic prioritization score, not a ranking score.
Input
Minimal input:
{"targetUrl": "https://example.com/"}
Bounded site sample:
{"targetUrl": "https://example.com/","maxPages": 25,"crawlLinks": true,"includeRobotsTxt": true,"requestDelayMs": 750,"responseFormat": "detailed"}
targetUrl accepts a full public http or https URL. maxPages defaults to 5 and is capped at 100. Each stored page audit is one billable page-audited event. requestDelayMs defaults to 500 milliseconds and exists for respectful pacing, not anti-bot bypass. responseFormat: "concise" keeps the first eight issues per page for smaller agent responses; it does not change the checks or score.
Output
The default dataset contains one stable-shape record per successfully fetched page. Missing values are explicit nulls, which lets agents distinguish “not present” from a field omitted by the actor.
{"sourceUrl": "https://example.com/","statusCode": 200,"title": "Example Domain","metaDescription": null,"h1Count": 1,"imagesMissingAlt": 0,"structuredDataTypes": [],"seoScore": 78,"issues": [{"key": "missing-meta-description","severity": "critical","message": "The page has no meta description.","recommendation": "Add a unique 120–160 character description that explains the page value."}],"warnings": [],"scrapedAt": "2026-08-02T12:00:00.000Z"}
The OUTPUT and SUMMARY key-value records contain page counts, failed requests, robots/sitemap diagnostics, warnings, and estimated page-event charges. A successful empty crawl is reported with diagnostics; a target that fails all requests after retries is marked failed so temporary outages are not mistaken for a healthy site.
Pricing
This Actor uses pay-per-event pricing. These are the current Apify Store event prices:
| Event | Price (USD) | When it is charged |
|---|---|---|
apify-actor-start | $0.00005 | Actor Start — Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). — Charged once per run. |
page-audited | $0.025 | SEO page audited — One public HTML page successfully audited and stored with its SEO score, technical signals, and prioritized issues. |
Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.
This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.
Reliability and responsible use
The actor uses a single low-concurrency CheerioCrawler, retries failed requests, caps page discovery, and does not send credentials. Discovered same-host links are filtered through a conservative robots.txt check when enabled. Site owners remain responsible for permission, terms of service, applicable law, and appropriate request pacing. Results should be reviewed against the source before making material SEO or security changes.
API and MCP
Through the Apify API, call the actor with targetUrl, maxPages, and the other input fields, then read the default dataset. Through Apify’s hosted MCP integration, use this tool for technical SEO checks on a public URL; it returns one page record at a time with seoScore, issues[], metadata, link counts, structured-data types, and security-header booleans. Do not choose it when you need rendered browser content, private-page access, backlink data, or a full crawl beyond the configured cap.
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('YOUR_USERNAME/seo-site-checkup').call({targetUrl: 'https://example.com/',maxPages: 5,crawlLinks: true});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_APIFY_TOKEN")run = client.actor("YOUR_USERNAME/seo-site-checkup").call(run_input={"targetUrl": "https://example.com/","maxPages": 5,"crawlLinks": True,})print(run["defaultDatasetId"])
This independent actor is not affiliated with any audited website or search engine.