Website Audit: SEO, Security & AI Readiness
Pricing
$0.05 / website audit report
Website Audit: SEO, Security & AI Readiness
Website audit for technical SEO, security headers & TLS, AI readiness, accessibility and marketing integrations. One website per run: 0-100 scores, grades, evidence and fixes as JSON. $0.05 per report; the Apify free plan gets one audit per day.
Pricing
$0.05 / website audit report
Rating
0.0
(0)
Developer
Ozan Dikici
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
Website Audit: SEO, Security & AI Readiness
Run a complete website audit from Apify: enter one website per run and get the full 5-area report covering technical SEO, security headers & TLS, AI readiness, accessibility and marketing integrations. Each area gets a score, a grade, evidence and recommended fixes. The price is $0.05 per website report, and no separate account, API key or subscription is needed.
What the website audit checks
Every run audits all five areas below for one public website. The report shows what each area measured and what it could not measure. Unavailable checks are labelled as unavailable and are never counted as passed.
Security headers & TLS
TLS certificate and protocol, HTTP security headers (such as HSTS and Content-Security-Policy), HTTPS posture and redirects, DNS and email authentication records (SPF, DMARC, MX, CAA), domain registration metadata (RDAP) and visible technology fingerprints. These are public, passive observations only: no login, no port scans, no intrusive or vulnerability testing.
Technical SEO
Indexability, titles and meta descriptions, canonical signals, robots.txt, XML sitemaps, redirects and bounded broken-link checks, crawled up to your page limit (1-10 pages). Crawl coverage is reported.
AI readiness (GEO/AEO, llms.txt, structured data)
Generative and answer engine optimization (GEO/AEO) signals in your content: structured data (schema.org / JSON-LD), brand and entity clarity, answer-oriented content, source and trust signals, and llms.txt availability. This is static content analysis up to your page limit. It does not measure live AI answers or rankings.
Accessibility
Static HTML checks on one page: image alt text, form labels, page language, heading structure and landmarks. It does not test browser interaction and does not certify WCAG conformance.
Marketing & analytics integrations
Publicly visible analytics, tag managers, marketing pixels, site verification tags and consent-manager signals, from HTML and response headers of up to 2 pages.
Not included: Performance / PageSpeed / Core Web Vitals. This Actor does not measure page speed.
Scores & grades
- Each area has a score from 0 to 100 and a letter grade. Scores and grades come from each area's own audit engine and are shown exactly as that engine assigns them. This Actor does not re-weight or re-grade them.
- A score reflects measured coverage only. The full report lists what was completed, what was partial and what was unavailable, and gives the limits for each area.
- If an area could not be measured (for example, the site blocked the crawler or a check timed out), its score and grade are null (shown as N/A). A missing measurement is never scored as 0 or as a pass.
findingCountscounts findings by severity: critical, high, medium, low and info.- Use scores to prioritize work together with each finding's evidence and recommended fix.
Example output
One dataset record from a real run on the prefilled sitelemetry.com demo (maxPages 10, English):
Trimmed for length: the full report also has every area's complete findings, evidence, crawl coverage, limitations and timings.
{"url": "https://sitelemetry.com/","status": "completed","reason": null,"billable": true,"securityScore": 96, "securityGrade": "A","seoScore": 96, "seoGrade": "A","aiScore": 87, "aiGrade": "B","integrationsScore": 100, "integrationsGrade": "A","accessibilityScore": 100, "accessibilityGrade": "A","findingCounts": { "critical": 0, "high": 1, "medium": 3, "low": 6, "info": 0 },"report": {"schemaVersion": 1,"target": "https://sitelemetry.com/","status": "partial","coverage": {"requested": ["security", "seo", "ai", "integrations", "accessibility"],"completed": ["integrations", "accessibility"],"partial": ["security", "seo", "ai"],"unavailable": []},"summary": {"scores": { "security": 96, "seo": 96, "ai": 87, "integrations": 100, "accessibility": 100 },"grades": { "security": "A", "seo": "A", "ai": "B", "integrations": "A", "accessibility": "A" },"findingCounts": { "critical": 0, "high": 1, "medium": 3, "low": 6, "info": 0 }},"audits": {"security": {"status": "partial", "score": 96, "grade": "A","report": {"findings": [{"id": "tech.fingerprint.disclosure","title": "Technology fingerprint can be derived","severity": "low","confidence": "medium","category": "technology","target": "https://sitelemetry.com","evidence": "server: nginx","impact": "Stack information saves an attacker time for targeted CVE research, default file path probing, and admin panel discovery.","remediation": "Reduce unnecessary header/meta generator information; simplify error pages; tie the stack inventory into the patch and vulnerability management process."}]}}}},"jobId": "9c394180be8b3739385a1c0d883a18562bd9361e767c72772b4aea3070c8bc0f","recordId": "aBcD3fGh1jKlMn0pQ:0","index": 0}
Pricing
- $0.05 per website report, charged once per run and only after a usable report has been saved to your dataset.
- Failed runs and unusable reports are free.
- Apify free plan: the same full report, paid from your monthly Apify credits. One audit per UTC day: a run that fails because the website is unreachable or invalid also uses that day's audit, but a failure on the audit service's side does not.
How to run
- Website URL: one public website you own or are authorized to audit, as a URL or domain. Credentials, query parameters and fragments are not accepted.
- Report language: English (
en), Turkish (tr), Spanish (es), German (de), French (fr), Portuguese (pt), Italian (it), Japanese (ja) or Chinese (zh). Technical evidence may keep its original language. - Maximum pages to crawl: from 1 to 10 (default 10). SEO and AI readiness use this limit; integrations use up to 2 pages and accessibility uses 1 page.
- Authorization: tick "I own this website or have permission to audit it". Runs without this confirmation are rejected.
Only audit websites you own or are explicitly authorized to test. The form is prefilled with sitelemetry.com, which is audited with its owner's permission. The example below uses the placeholder example.com; replace it with a site you are allowed to audit.
{"url": "https://example.com","language": "en","maxPages": 10,"authorized": true}
Open the Website audit report output tab to see the scores table and the full report, and export it as JSON, CSV or Excel. JSON keeps the complete nested report.
Automate and integrate
- Monthly checks: create a task with your input and add an Apify schedule (for example, monthly) to track changes over time.
- API: start a run and get the dataset record in one call:
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"url":"https://example.com","language":"en","maxPages":10,"authorized":true}'
Replace <ACTOR_ID> with the ID or username~actor-name shown on this Actor's API tab.
- Integrations: send results to Make, Zapier, n8n, Google Sheets, Slack or your own webhook through Apify integrations.
- AI agents: use this Actor as a tool through the Apify MCP server. The dataset fields have titles and descriptions that agents can read.
- Many websites: start one run per website with the API, tasks or schedules. Each run is billed and recorded separately.
FAQ
Can it audit pages behind a login? No. The Actor audits publicly accessible pages only and never accepts passwords, cookies or access tokens.
Does it change my website? No. It only reads public pages and records. It gives you findings and recommended fixes for your team to apply.
Why one website per run? It keeps pricing simple, with one run, one report and one charge. It also gives every website its own status, scores and charge record. To audit many sites, start one run per site.
What does the Apify free plan include? The same full five-area report, paid from your monthly Apify credits. One audit per UTC day: a run that fails because the website is unreachable or invalid also uses that day's audit, but a failure on the audit service's side does not. Check the URL before you start. If you reach the limit, the run stops without a charge and explains why. Try again after 00:00 UTC or use a paid Apify plan.
Is performance or PageSpeed included? No. This Actor does not measure page speed or Core Web Vitals.
Where is my data stored? Reports are saved in your own Apify storage (the run's dataset and key-value store) and follow your Apify account's data retention settings.
Advanced: billing states and recovery
- The report is saved to OUTPUT (run storage, default key-value store) and to the dataset before any charge. OUTPUT's
billingfield isnot_billable(not eligible),not_charged(eligible but not charged, for example when the run budget was too low),pending_confirmation(a charge was requested but not yet confirmed) orcharged. The dataset'sbillablefield shows eligibility, not charge confirmation. - Charging is idempotent: a retried or recovered charge for the same report reuses the same key, so a report is not charged twice.
- The default run budget (maximum total charge per run) covers one report. The Actor checks the remaining budget, including anything Apify already charged for starting the run, before starting and before charging, and stops without charging if the budget cannot cover the report.
- If a run is interrupted, resurrect the same run within 24 hours of its start to recover delivery or charge confirmation. A new run starts a new audit.
- The Actor waits up to 10 minutes for the audit queue when it is busy (less if the run's timeout comes first), counted across restarts of the same run. After that, the run stops without a charge and you can start it again later. Once an audit has started, the Actor waits up to 45 minutes for it to finish. An audit still pending when the wait ends is never charged.
- If a run stops before an audit starts because of the daily limit, a busy queue, a run budget that is too low or another usage limit, the dataset still gets one record with
status: "action_required"and the reason. Invalid input and connection failures stop the run with the reason in OUTPUT only. - If reports from earlier runs on your account were delivered but their charge never completed (for example, the runs were aborted), new runs stop without a charge (
UNPAID_REPORT_PENDING). Resurrect those runs to finish their charge, or try again later.
Support
Email support@sitelemetry.com with your Apify run ID, the approximate time and the status or reason shown in OUTPUT.
Privacy Policy · Use of this Actor is governed by Apify's Standard Actor Contract.