ChimeraMiND Data
Home / Tools / On-Page SEO Audit
SEO & site audits

On-Page SEO Audit

On-Page SEO Audit checks title, meta description, headings, images, links, Open Graph, Twitter Card and Schema.org data for any list of URLs — one scored row per page.

Run On-Page SEO Audit on Apify →

Read the step-by-step guide

Pricing

Apify planPer resultPer 1,000
Free plan$0.002$2
Starter$0.0016$1.60
Scale$0.0014$1.40
Business$0.0012$1.20
Enterprise$0.0012$1.20
Enterprise+$0.0012$1.20

Primary event rates from a catalog snapshot; this is not the total price of a run. Additional charge events and Actor Start fees may apply; start fees can scale with memory. Check the Actor's Pricing tab on Apify for all events, conditions and current plan-specific rates, and set a maximum run budget before starting.

Sample output

Archived example · 15 days old. This is a snapshot, not current data.run uVfQbmj1opo7fJolK · 2026-10-03
{
  "url": "https://apify.com/",
  "finalUrl": "https://apify.com/",
  "statusCode": 200,
  "responseTimeMs": 134,
  "htmlSizeBytes": 492244,
  "title": "Apify: Marketplace of ready-to-run tools for AI",
  "titleLength": 47,
  "metaDescription": "Thousands of tools to automate your business. Get real-time web data, track competitors, generate leads, and integrate your apps and AI agents.",
  "metaDescriptionLength": 143,
  "canonical": "https://apify.com/",
  "canonicalMatches": true,
  "robotsMeta": "index,follow",
  "isIndexable": true,
  "lang": "en",
  "viewportMeta": "width=device-width, initial-scale=1",
  "charset": "utf-8",
  "h1Count": 1,
  "h1": [
    "80,266 tools for your AI"
  ],
  "h2Count": 11,
  "h3Count": 20,
  "headingsOutline": [
    {
      "level": 1,
      "text": "80,266 tools for your AI"
    },
    {
      "level": 2,
      "text": "Popular Actors"
    },
    {
      "level": 3,
      "text": "TikTok Scraper"
    }
  ],
  "wordCount": 1174,
  "textToHtmlRatio": 0.02,
  "imageCount": 78,
  "imagesMissingAlt": 0,
  "imagesMissingAltSample": [],
  "internalLinkCount": 78,
  "externalLinkCount": 58,
  "nofollowLinkCount": 20,
  "brokenLinks": [],
  "hreflang": [],
  "openGraphComplete": true,
  "twitterCardPresent": true,
  "schemaTypes": [
    "Organization",
    "WebSite",
    "SoftwareApplication"
  ],
  "hasFavicon": true,
  "inlineScriptCount": 5,
  "externalScriptCount": 46,
  "cssCount": 4,
  "hasAmp": false,
  "mixedContentCount": 0,
  "issues": [],
  "seoScore": 100,
  "seoGrade": "A",
  "error": null,
  "scrapedAt": "2026-10-03T15:21:13.215Z"
}

Call from code

Use the existing catalog input below as a starting point. Review the tool's input form on Apify before running it.

import json
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("webdatatools/seo-page-audit").call(run_input=json.loads("{\n    \"urls\": [\n        \"https://apify.com\",\n        \"https://example.com\"\n    ],\n    \"checkLinks\": false,\n    \"maxConcurrency\": 5\n}"))

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('webdatatools/seo-page-audit').call({
    "urls": [
        "https://apify.com",
        "https://example.com"
    ],
    "checkLinks": false,
    "maxConcurrency": 5
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
curl -X POST "https://api.apify.com/v2/acts/webdatatools~seo-page-audit/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://apify.com","https://example.com"],"checkLinks":false,"maxConcurrency":5}'

Related tools

Workflows