Article SEO Analyzer
Pricing
from $0.01 / 1,000 results
Article SEO Analyzer
Stop guessing at SEO improvements. Get actionable scores, AI-generated recommendations, and priority-ranked fixes for any webpage. Analyzes content quality, technical SEO, heading structure, links, and images. MCP-compatible for automated workflows.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer

Marielise
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
AI-powered SEO audit tool that analyzes webpages for on-page SEO issues and provides actionable, priority-ranked recommendations. Get comprehensive scores for content quality, technical SEO, links, and images in seconds - perfect for content audits, competitor analysis, and automated SEO workflows.
Stop guessing at SEO improvements. This SEO analyzer detects 40+ issues, scores your content across 4 weighted categories, and uses Google Gemini AI to generate keyword suggestions, meta descriptions, and content gap analysis - all included at no extra cost.
What Data Can This Actor Extract?
| Field | Type | Description |
|---|---|---|
overallScore | number | Combined SEO score (0-100) |
scores.content | number | Content quality score (title, meta, readability) |
scores.technical | number | Technical SEO score (canonical, OG, schema) |
scores.links | number | Link analysis score (internal/external ratio) |
scores.images | number | Image optimization score (alt text coverage) |
content | object | Title, meta description, word count, keyword density, readability |
technical | object | Canonical URL, viewport, Open Graph, Twitter Cards, structured data |
headings | object | H1-H6 structure and hierarchy analysis |
links | object | Internal/external counts, nofollow detection, anchor text |
images | object | Total images, alt text coverage, missing attributes |
aiInsights | object | Suggested keywords, title, meta description, content gaps |
issues | array | All SEO issues with severity (critical/high/medium/low) |
recommendations | array | Priority-ranked action items with effort/impact ratings |
quickSummary | string | One-line summary of the analysis |
Why Article SEO Analyzer?
- Comprehensive Scoring - Overall score (0-100) plus detailed breakdowns for content, technical, links, and images
- AI-Powered Insights - Keyword suggestions, title optimization, and content improvement ideas included
- Keyword Analysis - Density calculations, placement checks (title, H1, first 100 words), and optimization tips
- Readability Scoring - Flesch-Kincaid grade level to ensure content matches your target audience
- Technical SEO Audit - Canonical URLs, meta robots, Open Graph, Twitter Cards, and structured data
- Image Optimization - Alt text coverage, missing attributes, and accessibility checks
- Link Analysis - Internal/external ratio, nofollow detection, and anchor text quality
- MCP Compatible - Structured JSON output designed for AI agent integration
Quick Start
Via Apify Console
{"url": "https://example.com/blog/my-article","targetKeyword": "web scraping"}
Via Apify API (cURL)
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~article-seo-analyzer/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"url": "https://example.com/blog/my-article", "targetKeyword": "web scraping"}'
Via Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('YOUR_USERNAME/article-seo-analyzer').call({url: 'https://example.com/blog/my-article',targetKeyword: 'web scraping',outputFormat: 'full',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].overallScore); // SEO scoreconsole.log(items[0].issues); // Issues foundconsole.log(items[0].aiInsights); // AI recommendations
Via Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('YOUR_USERNAME/article-seo-analyzer').call(run_input={'url': 'https://example.com/blog/my-article','targetKeyword': 'web scraping','outputFormat': 'full',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items[0]['overallScore']) # SEO scoreprint(items[0]['issues']) # Issues foundprint(items[0]['aiInsights']) # AI recommendations
How It Works
- Submit a URL - Enter a webpage URL and optional target keyword
- Render Page - Playwright with Firefox renders JavaScript-heavy pages
- Extract Data - All SEO elements are extracted: title, meta, headings, links, images, structured data
- Analyze Content - Comprehensive analysis of content quality, readability, and keyword usage
- AI Enhancement - Gemini AI generates keyword suggestions and content improvements
- Return Results - Structured JSON with scores, issues, and actionable recommendations
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | No* | - | Single URL to analyze |
urls | array | No* | - | Multiple URLs for batch analysis |
targetKeyword | string | No | - | Focus keyword for density and placement analysis |
outputFormat | string | No | "full" | Output detail level: full, summary, or widget |
waitForSelector | string | No | - | CSS selector to wait for on JS-heavy pages |
useResidentialProxy | boolean | No | false | Use residential proxies for protected sites |
proxyCountry | string | No | "US" | Proxy location (US, GB, DE, etc.) |
*At least one of url or urls is required.
Output Format
Full Analysis (Default)
{"url": "https://example.com/blog/seo-guide","analyzedAt": "2026-01-11T10:30:00Z","overallScore": 72,"scores": {"content": 78,"technical": 85,"links": 65,"images": 60},"content": {"title": "Complete SEO Guide for 2026","titleLength": 26,"titleOptimal": true,"metaDescription": "Learn SEO best practices...","metaDescriptionLength": 145,"metaDescriptionOptimal": true,"wordCount": 2450,"paragraphCount": 28,"readabilityScore": 8.2,"readabilityGrade": "8th-9th Grade (Easy)","keywordDensity": 1.8,"keywordCount": 12,"keywordInTitle": true,"keywordInH1": true,"keywordInFirst100Words": true},"technical": {"hasCanonical": true,"canonicalUrl": "https://example.com/blog/seo-guide","hasViewport": true,"hasOpenGraph": true,"hasTwitterCard": true,"hasStructuredData": true,"structuredDataTypes": ["Article", "BreadcrumbList"],"language": "en"},"headings": {"h1Count": 1,"h2Count": 8,"h3Count": 15,"hasProperHierarchy": true},"links": {"totalLinks": 45,"internalLinks": 28,"externalLinks": 17,"nofollowLinks": 3,"internalExternalRatio": 1.65},"images": {"totalImages": 12,"imagesWithAlt": 9,"imagesMissingAlt": 3,"altTextCoverage": 75},"aiInsights": {"suggestedKeywords": ["seo optimization", "search rankings", "organic traffic", "on-page seo", "technical seo"],"suggestedMetaDescription": "Master SEO in 2026 with our complete guide covering on-page optimization, technical SEO, and content strategies that drive organic traffic.","suggestedTitle": "Complete SEO Guide 2026: Rank Higher in Search Results","contentImprovements": ["Add a section on Core Web Vitals metrics","Include more internal links to related content","Add FAQ schema markup for featured snippets"],"searchIntent": "informational","topicRelevance": "excellent","contentGaps": ["mobile optimization tips", "local SEO strategies", "voice search optimization"]},"issues": [{"severity": "high","category": "images","issue": "3 images missing alt text","recommendation": "Add descriptive alt text to all content images"},{"severity": "medium","category": "links","issue": "Low internal link count","recommendation": "Add more internal links to related content"}],"recommendations": [{"priority": 1,"action": "Add alt text to 3 images","impact": "high","effort": "low","category": "images"},{"priority": 2,"action": "Add more internal links to related content","impact": "medium","effort": "low","category": "links"}],"issueCount": 5,"criticalIssues": 0,"highIssues": 1,"mediumIssues": 3,"lowIssues": 1,"quickSummary": "Good SEO score (72/100). Content: 78, Technical: 85, Links: 65, Images: 60. 1 urgent issue(s) need attention. 5 total issue(s) found."}
Output Fields
| Field | Type | Description |
|---|---|---|
url | string | Analyzed page URL |
analyzedAt | string | ISO timestamp of analysis |
overallScore | number | Combined SEO score (0-100) |
scores | object | Breakdown by category |
content | object | Title, meta, word count, readability (full format only) |
technical | object | Canonical, viewport, OG, schema (full format only) |
headings | object | H1-H6 structure analysis (full format only) |
links | object | Internal/external link analysis (full format only) |
images | object | Alt text coverage (full format only) |
aiInsights | object | AI-generated recommendations |
issues | array | All SEO issues found |
recommendations | array | Prioritized action items |
quickSummary | string | One-line summary of results |
Pricing
Pay Per Event pricing based on output format:
| Format | Price per Page | Description |
|---|---|---|
| Full | $0.05 | Complete analysis with all details |
| Summary | $0.03 | Key metrics and top issues only |
| Widget | $0.02 | Minimal data for embedding |
AI insights are included at no extra cost.
Use Cases
Content Optimization
Analyze articles before publishing to maximize SEO potential. Get AI-powered keyword suggestions and content improvement ideas to help your content rank higher.
Content Audits
Batch analyze your entire blog or website for SEO issues. Identify pages with missing meta descriptions, poor heading structure, or image optimization problems.
Competitor Analysis
Analyze top-ranking pages in your niche to understand what makes them successful. Extract their heading structure, keyword usage, and content patterns.
SEO Reporting
Generate automated SEO health reports for clients. Export structured data to create dashboards showing progress over time.
MCP Integration
Feed SEO data to AI workflows for automated optimization. The structured JSON output is designed for seamless integration with AI agents and automation tools.
CMS Widgets
Display real-time SEO scores on your content management dashboard. Use widget format for lightweight data perfect for embedding.
Pre-Publication Checks
Integrate into your publishing workflow to automatically check articles before they go live. Catch missing meta descriptions, short titles, and accessibility issues.
Scoring System
The overall score is a weighted average of four categories:
| Category | Weight | What It Measures |
|---|---|---|
| Content | 40% | Title, meta description, word count, readability, keyword usage |
| Technical | 30% | Canonical URL, viewport, Open Graph, structured data, language |
| Links | 15% | Internal/external ratio, anchor text quality, nofollow usage |
| Images | 15% | Alt text coverage, decorative vs content images |
Score Ranges
| Score | Rating | Interpretation |
|---|---|---|
| 80-100 | Excellent | Page is well-optimized, focus on minor improvements |
| 60-79 | Good | Solid foundation, address high-priority issues |
| 40-59 | Needs Work | Multiple significant issues to address |
| 0-39 | Poor | Major SEO problems requiring immediate attention |
Issue Severity Levels
| Severity | Examples |
|---|---|
| Critical | Missing page title, page blocked from indexing |
| High | Missing meta description, no H1 heading, missing viewport |
| Medium | Title too short/long, multiple H1s, low word count |
| Low | Missing structured data, no external links, short alt text |
Limitations
- JavaScript Rendering - Pages are rendered with Playwright, but extremely complex SPAs may need specific wait selectors
- Authentication - Login-protected pages are not supported
- Rate Limiting - Some sites may block rapid repeated requests; use residential proxy if needed
- Content Analysis - AI insights require GOOGLE_API_KEY environment variable to be set
FAQ
Does this work with JavaScript-rendered pages?
Yes. The actor uses Playwright with Firefox to fully render JavaScript content before analysis. For complex SPAs, use the waitForSelector option to wait for specific content to load.
What AI model is used?
Google Gemini 2.0 Flash for fast, accurate analysis. AI insights include keyword suggestions, title/meta optimization, and content gap analysis.
Can I analyze multiple pages?
Yes. Use the urls array input for batch analysis. Each page is analyzed separately and results are saved to the dataset.
Is this MCP compatible?
Yes. The structured JSON output is designed for AI agent integration. Use it with Apify's MCP server to enable AI applications to run SEO analysis automatically.
How is this different from other SEO tools?
Most SEO scrapers give you raw data. This actor provides actionable intelligence with prioritized recommendations, severity levels, and AI-generated improvement suggestions.
What if a site blocks the actor?
Enable residential proxy in the settings and try different proxy countries. The actor uses Playwright with Firefox and fingerprint generation for better stealth.
Do I need my own API keys?
No API keys are required for basic SEO analysis. AI insights are powered by an API key configured by the actor owner.
Technical Details
- Browser: Playwright with Firefox for maximum stealth and compatibility
- AI Model: Google Gemini 2.0 Flash
- Analysis: Content extraction with Cheerio, readability via Flesch-Kincaid
- Proxy Support: Residential proxies with 14+ country options
- Runtime: Node.js 22 with TypeScript
Legal and Ethical Considerations
This actor is designed for legitimate SEO analysis of publicly accessible webpages. Please use responsibly:
- Analyze your own content - Best suited for auditing your own websites, blogs, and client sites with permission
- Respect robots.txt - The actor respects standard crawling conventions
- Rate limiting - Avoid overwhelming target sites with rapid requests; batch requests are processed with reasonable delays
- No authentication bypass - This actor does not access login-protected or paywalled content
- Public data only - Only analyzes publicly visible SEO elements (title, meta, headings, links, images)
By using this actor, you agree to comply with Apify's Terms of Service and use the tool ethically.
Support
- Issues & Feature Requests: GitHub Issues
- Documentation: Apify Actor Documentation
- MCP Integration: Apify MCP Server
Built by Ekipnico