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.
What it's for
- Check keyword density and readability before publishing a page
- Compare word count and headings against top-ranking competitors
- Bulk-audit blog posts for thin content and heading problems
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
| Field | Type | Notes |
|---|---|---|
urls required | array | Page URLs |
targetKeywords | array | Check usage and density of these phrases. |
topN | integer | Top terms to return |
respectRobots | boolean | Turn off only for your own sites. |
maxConcurrency | integer | Max 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
- Open the Store page and click Try for free.
- Fill in the input (or paste the example JSON in the JSON tab).
- Click Start, then export results as CSV, Excel or JSON, or call it via the Apify API.
- Optional: add a Schedule and a webhook/Slack/email integration for ongoing monitoring.