# Full Site Health Suite (`zaden/my-actor-10`) Actor

Runs SEO, sitemap, broken-link, SSL, email/DNS, structured-data, accessibility, domain-expiry, and RSS checks on a site in one job. Get a single letter grade and severity-ranked issue list instead of nine separate reports. Only need one check? Each of the 9 is also sold standalone.

- **URL**: https://apify.com/zaden/my-actor-10.md
- **Developed by:** [Zaden](https://apify.com/zaden) (community)
- **Categories:** SEO tools, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $18.00 / 1,000 full audit completeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Full Site Health Suite

Runs a complete health audit of a website in one job instead of nine. Point it at a URL and it orchestrates SEO, sitemap/robots.txt, broken links, SSL/security headers, email deliverability/DNS, structured data, accessibility (WCAG), domain expiry, and RSS/Atom feed checks -- then rolls every result up into a single **letter grade**, a 0-100 composite score, and a severity tag.

### What you get, per site

- One **overall letter grade (A+ to F)** and composite score across every check that ran
- A one-line **executive summary** ("2 critical issue(s) found across 9 checks -- immediate attention recommended.")
- An overall **severity** tag -- `critical`, `warning`, or `ok` -- for instant triage
- A **topIssues** list pulling the worst finding from every check into one place, so you don't have to open nine separate reports
- The **full underlying result** from each individual check (grade, score, severity, summary, and raw detail) nested under `checks`, in case you need to drill in
- Choose which of the 9 checks to run per audit -- skip what isn't relevant to a given site

### The 9 checks it bundles

| Check | What it catches |
|---|---|
| SEO & Meta Tags | Missing/short/long titles and descriptions, missing H1, robots.txt & sitemap presence |
| Sitemap & Robots.txt | Crawler-blocking robots.txt, broken or missing sitemaps, dead URLs inside them |
| Broken Links | Dead internal/external links on the page |
| SSL & Security Headers | Expiring certificates, missing security headers |
| Email Deliverability & DNS | Missing/misconfigured SPF, DKIM, DMARC records |
| Structured Data & Social Preview | Missing/invalid JSON-LD, Open Graph, Twitter Card tags |
| Accessibility (WCAG) | Missing alt text, unlabeled form fields, heading and landmark issues |
| Domain Expiry & WHOIS | Domains expiring soon or already lapsed |
| RSS/Atom Feed | Broken or stale feeds (only runs if you provide a feed URL) |

### Why this instead of running each Actor separately

| | Running 9 Actors separately | Full Site Health Suite |
|---|---|---|
| Setup | Nine separate runs, nine inputs to fill in | One URL, one run |
| Triage | Nine reports to open and cross-reference | One composite grade + top-issues list |
| Cost | Sum of nine per-event charges | One bundled per-audit charge |
| Repeatability | Nine steps to schedule and monitor | One scheduled task |
| Output | Nine datasets | One row per site, with full detail nested inside |

### Who this is for

- Agencies and consultants who want a single client-ready health snapshot instead of nine raw reports
- Site owners doing a periodic all-in-one check before a launch, migration, or client handoff
- Anyone monitoring a portfolio of sites who wants one composite grade per site instead of nine numbers to reconcile

### Input

- **url** (required) -- the site to audit, e.g. `https://example.com/`
- **feedUrl** (optional) -- direct RSS/Atom feed URL; the feed check only runs if this is set
- **checks** (optional) -- array of which checks to include; defaults to all 9
- **webhookUrl** (optional) -- posts a one-line grade summary here when the audit finishes

### Output

One dataset row per audit with `url`, `domain`, `overallGrade`, `overallScore`, `overallSeverity`, `executiveSummary`, `topIssues`, and a `checks` object containing the full result of every individual check that ran.

# Actor input Schema

## `url` (type: `string`):

Full URL of the site to run the combined health audit against.

## `feedUrl` (type: `string`):

Direct RSS/Atom feed URL. Leave blank to skip the feed check.

## `checks` (type: `array`):

Choose which of the 9 underlying audits to include.

## `webhookUrl` (type: `string`):

Posts a one-line grade summary here when the audit finishes.

## Actor input object example

```json
{
  "url": "https://example.com/",
  "feedUrl": "",
  "checks": [
    "seo",
    "sitemap",
    "brokenLinks",
    "ssl",
    "email",
    "structuredData",
    "accessibility",
    "domainExpiry",
    "rss"
  ],
  "webhookUrl": ""
}
```

# Actor output Schema

## `results` (type: `string`):

Overall grade plus per-check breakdown for the audited site.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "url": "https://example.com/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zaden/my-actor-10").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "url": "https://example.com/" }

# Run the Actor and wait for it to finish
run = client.actor("zaden/my-actor-10").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://example.com/"
}' |
apify call zaden/my-actor-10 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaden/my-actor-10"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Uk5h9kzWEdrfsaN2u/builds/StyYiA5q0cTTsbIHI/openapi.json
