Tools / SEO Content Analyzer: Keyword Density, Readability & Headings

SEO Content Analyzer: Keyword Density, Readability & Headings

Analyze any web pages' on-page content in bulk. Input: urls. Output (JSON/CSV): one row per item with inputUrl, title, wordCount, readingTimeMin, fleschReadingEase, fleschKincaidGrade, readingLevel, headingCount, issues.

Run it on Apify Store →

What it's for

Example input

{
 "urls": [
  "https://therealtour360.com",
  "https://en.wikipedia.org/wiki/Real_estate_photography",
  "https://blog.apify.com/what-is-web-scraping/",
  "bad ::"
 ],
 "targetKeywords": [
  "real estate photography",
  "virtual tour"
 ]
}

Example output

{
  "inputUrl": "https://blog.apify.com/what-is-web-scraping/",
  "finalUrl": "https://blog.apify.com/what-is-web-scraping/",
  "title": "What is web scraping?",
  "wordCount": 1950,
  "sentenceCount": 202,
  "readingTimeMin": 8.2,
  "fleschReadingEase": 54.5,
  "fleschKincaidGrade": 8.1,
  "readingLevel": "fairly difficult",
  "topKeywords": [
    {
      "term": "web",
      "count": 63,
      "density": 3.23
    },
    {
      "term": "scraping",
      "count": 51,
      "density": 2.62
    },
    {
      "term": "data",
      "count": 50,
      "density": 2.56
    },
    {
      "term": "apify",
      "count": 24,
      "density": 1.23
    },
    "…"
  ],
  "topBigrams": [
    {
      "term": "web scraping",
      "count": 40,
      "density": 2.05
    },
    {
      "term": "data extraction",
      "count": 6,
      "density": 0.31
    },
    {
      "term": "apify store",
      "count": 5,
      "density": 0.26
    },
    {
      "term": "mcp server",
      "count": 4,
      "density": 0.21
    },
    "…"
  ],
  "topTrigrams": [
    {
      "term": "web scraping web",
      "count": 4,
      "density": 0.21
    },
    {
      "term": "use web scraping",
      "count": 4,
      "density": 0.21
    },
    {
      "term": "javascript and typescript",
      "count": 3,
      "density": 0.15
    },
    {
      "term": "scraping web scraping",
      "count": 3,
      "density": 0.15
    },
    "…"
  ],
  "targetKeywords": [
    {
      "keyword": "real estate photography",
      "count": 0,
      "density": 0,
      "inTitle": false,
      "inH1": false,
      "inDescription": false
    },
    {
      "keyword": "virtual tour",
      "count": 0,
      "density": 0,
      "inTitle": false,
      "inH1": false,
      "inDescription": false
    }
  ],
  "headingCount": 24,
  "headings": [
    {
      "level": 1
    },
    {
      "level": 2
    },
    {
      "level": 2
    },
    {
      "level": 2
    },
    "…"
  ],
  "issues": []
}

Input reference

FieldTypeNotes
urls requiredarrayPage URLs
targetKeywordsarrayCheck usage and density of these phrases.
topNintegerTop terms to return
respectRobotsbooleanTurn off only for your own sites.
maxConcurrencyintegerMax concurrency

Pricing

Pay per event: Page analyzed $0.001. Plus Apify's small per-run start fee. Apify's free plan includes monthly credit to try it.

How to run

  1. Open the Store page and click Try for free.
  2. Fill in the input (or paste the example JSON in the JSON tab).
  3. Click Start, then export results as CSV, Excel or JSON, or call it via the Apify API.
  4. Optional: add a Schedule and a webhook/Slack/email integration for ongoing monitoring.

Open SEO Content Analyzer on Apify →