Content Optimizer

Overview

The Content Optimizer is a dedicated tool for analyzing, scoring, and improving individual articles based on real-time SERP data. Unlike standard article generation (which creates content from a prompt), the Optimizer reverse-engineers what top-ranking pages do well and applies that intelligence to your content — whether you are rewriting an existing article or generating a new one from scratch.

The core workflow is: Analyze a keyword to gather competitive intelligence, then Optimize or Generate content that matches or exceeds what is already ranking. Every step is backed by real competitor data — term frequencies, structural patterns, entity coverage, content quality signals, and People Also Ask questions.

Navigate to /optimize from the main sidebar to get started.

Getting Started

The Optimize landing page shows your recent sessions and a form to start a new analysis. There are two ways to begin:

  • Keyword entry: Type a target keyword or phrase. The Optimizer will run a SERP analysis, scrape top-ranking pages, and build a complete optimization profile.
  • URL scrape: Paste a URL to an existing article. The Optimizer will scrape the content, then you can enter a keyword to analyze how that content stacks up against the competition.

You can also configure the search location and language to match your target audience. The default is United States / English, but any DataForSEO-supported locale works. The available languages update automatically based on the country you select.

Requirements: The Content Optimizer requires a DataForSEO API key for SERP analysis and at least one text LLM API key (Anthropic, OpenAI, Gemini, etc.) for content analysis and generation. Add these in Settings.

Multi-Language Support

The Optimizer is not English-only. Every step of the pipeline (SERP analysis, term extraction, competitor scraping, content audit, entity analysis, and the rewrite pass) runs in the language you select. Pick the country and language together using the selectors next to the keyword input, and the rest of the workflow handles the rest.

Supported languages cover any combination DataForSEO offers for the chosen country, including English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, Arabic, Hindi, Japanese, Simplified and Traditional Chinese, Korean, Turkish, Vietnamese, Thai, Indonesian, Hebrew, and 40+ others.

How language affects the analysis

  • Term frequency analysis uses per-language stopword lists rather than a generic English filter, so common words like German "der", French "les", or Spanish "una" are stripped from the candidate term list rather than recommended as targets.
  • CJK and Thai content (Chinese, Japanese, Thai) are tokenized using character n-grams instead of whitespace word splitting, since those languages do not delimit words with spaces. Term recommendations in those languages will be character-based phrases (2-3 character substrings) that mirror what the top-ranking pages actually use.
  • Content audit prompts and rewrite prompts tell the LLM to operate in the target language. The audit findings are written in the article's language, the rewrite output is in the article's language, and meta titles and descriptions are also generated in the article's language.
  • Entity names are kept verbatim in the source language so that term coverage matching against the article body still works correctly.

Readability scoring

Readability scores use the Flesch Reading Ease formula, which is calibrated against English vowel-based syllable counting. Because the formula does not produce meaningful results for other languages, readability scoring is shown only for English content. For non-English articles the readability row is omitted from the Structure panel and the score weight is dropped from the overall optimization score (everything else in the score still applies).

Workflow optimize step

When you add an Optimize step to a workflow agent, the same language support applies. The step editor exposes both a SERP Location and a Language selector, and the optimize pass that runs inside the workflow uses them the same way the standalone Optimize page does.

Keyword Analysis

When you analyze a keyword, the Optimizer fetches live Google search results, scrapes the top-ranking pages, and builds a complete competitive profile. Here's what you get:

  • NLP Terms: A prioritized list of terms that top-ranking pages use, with importance levels (high, medium, low) and recommended usage counts. These appear in the Terms tab, split into All, Headings, and Body views.
  • Structure Recommendations: Competitor averages for word count, headings, images, bold text, lists, tables, and links — giving you concrete targets to match.
  • Search Intent: Each result is classified (article, tool, product page, listicle, etc.) so you can see what type of content Google favors for your keyword.
  • People Also Ask: Questions from the PAA box, which you can weave into your content as sections or FAQ items.
  • Heading Suggestions: Common topics across top pages, extracted as suggested H2 headings for your article.
  • Readability Target: The average Flesch Reading Ease score of competitors, so your content matches the expected reading level. Computed for English content only — see the Multi-Language section above for details.

After analysis, the results populate the sidebar tabs: Terms, Structure, SERP, and PAA. Each competitor is scored for term coverage so you can see how they perform against the same criteria.

Content Audit

The Content Audit evaluates your article's quality in isolation — independent of competitor comparison. It combines programmatic checks with an LLM-based deep analysis to surface specific, actionable problems. The audit runs automatically during analysis (in parallel with competitive analysis) and its findings feed directly into Auto-Optimize.

The audit checks for:

  • Thin content: Short articles or sections that lack depth and insight.
  • Missing angles: Subtopics a reader would expect but the article doesn't cover.
  • Engagement: Whether the intro is compelling and whether there are concrete examples, or if the content is abstract and generic.
  • Filler: Sentences or paragraphs that pad word count without adding value.
  • Repetitive: Points made multiple times or phrases repeated excessively.
  • Intent gap: Whether the article format matches search intent (a "how to" query needs steps, a "best" query needs a ranked list).
  • Formatting: Missing headings, broken heading hierarchy, or wall-of-text paragraphs.

Each finding includes a severity (high, medium, low), a specific description referencing actual content from the article, and a concrete suggestion for how to fix it. Findings appear in the Audit tab in the sidebar, sorted by severity.

Entity Analysis

Entity Analysis goes beyond keyword matching to understand the concepts, people, organizations, products, and locations that top-ranking content covers. It compares your article's entities against competitors to find gaps.

The analysis extracts entities from both your article and the top-ranking competitors, then compares them. Each entity is classified by type (person, organization, product, concept, location, etc.) and scored for importance (salience). Your content and competitors are also classified into content categories to reveal topical alignment.

The results appear in the Entities tab with three sub-views:

  • Gaps: Entities that appear in competitors but are missing or weak in your content. These are the highest-priority additions — covering entity gaps signals topical authority to search engines. Each gap shows the entity type, salience, and how many competitor pages mention it.
  • Categories: Content classification comparison showing which categories your content falls into versus competitors. Category gaps reveal topical areas you may be missing.
  • All: The complete list of your entities and competitor entities side by side, with salience and mention counts.

Entity gaps are automatically fed into Auto-Optimize, so the rewrite will incorporate the missing entities naturally.

Optimization Score

The optimization score is a 0-100 rating that measures how well your content matches the competitive landscape. It is computed from two components:

  • Term coverage (65% of score): How well your content uses the recommended NLP terms at the right frequency. High-importance terms count more than low-importance ones. Overusing terms is penalized — more is not always better.
  • Structure compliance (35% of score): How well your article's structure (word count, headings, images, bold, lists, tables, links) matches competitor averages.

The score updates in real time as you edit content. Competitor pages are also scored against the same criteria, shown in the Competitors panel, so you can benchmark your content directly.

Interpreting the score: A score in the 70-85 range typically indicates strong competitive coverage. Scores above 90 are exceptional. Do not chase a perfect 100 — it is normal for even top-ranking pages to score 40-70 because they may cover the topic differently. The score is a guide, not a grade.

Auto-Optimize

The Auto-Optimize button rewrites your existing content to improve its competitive positioning. Click it in the toolbar above the editor. The AI uses all the analysis data to improve your article:

  • Incorporates missing and underused NLP terms naturally throughout the content
  • Adjusts structure to match competitor patterns (headings, bold, lists, tables)
  • Places important terms in H2/H3 headings where they read naturally
  • Addresses content audit findings (thin sections, filler, missing angles)
  • Fills entity gaps identified in the Entities tab
  • Weaves in relevant People Also Ask questions as sections
  • Improves readability to match competitor averages

The result replaces your editor content and the score updates automatically. You can configure the LLM provider and model in the settings gear icon next to the button.

Tip: Auto-Optimize preserves your existing content, links, and structure. It adds and adjusts rather than replacing. If your editor is empty, the button switches to Generate Content instead.

Generate Content

When the editor is empty (no content pasted or scraped), the toolbar button automatically switches from "Auto-Optimize" to Generate Content. This writes a brand-new article from scratch using all the analysis data — term targets, structure recommendations, heading suggestions, People Also Ask questions, and entity gaps.

This is useful when you want to create a fully optimized article without starting from an existing draft. Simply analyze a keyword, then click Generate Content to produce an article that's already structured to compete with top-ranking pages.

The generated article includes an H1 title organized with H2 and H3 subheadings, short scannable paragraphs, and all the structural elements (lists, tables, bold text) that the analysis recommends. Meta title and meta description are also generated automatically.

After generating, you can run Re-analyze to get a content audit and entity analysis for the new article, then use Auto-Optimize on top of it for further refinement.

Smart Images

Smart Images is an intelligent, multi-source image system that automatically selects the best image source for each placement in your article. Instead of using a single source for all images, an LLM reads the article content, decides where images should go, and generates specific search queries. Then each image is resolved through a cascade of sources:

  1. Screenshot (if the section mentions a specific website or tool): A Cloudflare Browser Rendering screenshot is taken of the referenced URL. This produces an authentic, up-to-date visual of the actual site. All screenshot URLs in the article are batched into a single Cloudflare call for efficiency.
  2. Web image (real photographs): Searches Openverse, Wikimedia Commons, or Google Images for real-world photos that match the query. Best for physical objects, places, people, and real things.
  3. Stock photo (Pexels, Pixabay, or Unsplash): Professional stock photography as a secondary source. Good for conceptual images and general illustrations.
  4. AI generation (fallback): If no real image is found, an AI image generator (GPT Image, Gemini, Flux, Stable Diffusion, Ideogram, or xAI) creates one from the search query. This is the last resort to ensure every placement gets an image.

The cascade is per-image: one article might get a screenshot for a tool section, a web photo for a real-world example, and a stock image for an abstract concept. Images are deduplicated across placements so you never get the same photo twice.

Tip: Smart Images works best when your article mentions specific websites, products, or real-world subjects. The more concrete your content, the better the image matches. Openverse is free and requires no API key, so web images are always available as a source.

Web Images

Web Images searches the open web for real photographs and illustrations. Three sources are supported, tried in order:

  • Openverse (Creative Commons): A search engine for openly-licensed media maintained by WordPress. No API key required. Returns images with CC licenses and proper attribution data. This is the default and always-available source.
  • Wikimedia Commons: Free-use images from the Wikimedia Foundation. Also requires no API key. Returns images with detailed license and author information.
  • Google Images: Searches Google Images via DataForSEO. Requires a DataForSEO API key. Returns a wider variety of images but license filtering is less precise.

Web images are filtered by license to prioritize Creative Commons and public domain content. When a web image is used, attribution information (author, license, source URL) is automatically attached for captioning.

Screenshots

The Screenshot tab in the Add Images panel lets you capture a screenshot of any webpage. Enter a URL (e.g., semrush.com) and click Screenshot. The page is fully rendered including JavaScript and dynamic content before the screenshot is taken.

Screenshots are useful for:

  • Showing what a tool or website looks like in a review or comparison article
  • Capturing dashboard UIs, homepages, or specific pages as visual evidence
  • Adding authentic, unique images that no other article has

In Smart Images mode, screenshots happen automatically when the LLM detects that a section references a specific website. The manual Screenshot tab is for cases where you want to capture a specific page that the LLM did not select.

Image Attribution

When images come from web sources (Openverse, Wikimedia Commons), attribution captions are automatically generated based on the image's license and author metadata. These appear as captions below the image in the editor.

  • Creative Commons licenses: Captions include the author name, license type (CC BY, CC BY-SA, etc.), and a link to the source.
  • Public domain: Captions note that the image is in the public domain.
  • Screenshots: Captions include the domain name and a link to the original URL.
  • Stock and AI images: No attribution caption is added, as these are either licensed for free use or generated by you.
Note: Always verify that your use of Creative Commons images complies with the specific license terms. Some CC licenses require attribution (BY), prohibit commercial use (NC), or require share-alike (SA). The caption provides the license type so you can confirm compliance.

Re-analyze

The Re-analyze button recalculates your optimization score and refreshes term counts based on the current editor content. Use it after:

  • Running Auto-Optimize or Generate to see the updated score
  • Making manual edits to check how your changes affect term coverage
  • Adding or removing sections to verify structural compliance

Re-analyze does not re-fetch SERP data or re-scrape competitors. It only re-evaluates your content against the existing analysis. To get fresh competitor data, start a new analysis.

AI Edit

The AI Edit feature lets you make custom, instruction-based edits to your full article using any LLM provider and model. Unlike Auto-Optimize (which follows a fixed optimization strategy), AI Edit lets you give free-form instructions like "make the tone more casual" or "add a comparison table in section 3."

To use AI Edit:

  1. Click the AI Edit button in the toolbar.
  2. Optionally select a specific provider and model for the edit. If left blank, the system uses your default provider.
  3. Type your editing instruction in the text field.
  4. Click submit. The LLM rewrites the full article according to your instruction.

AI Edit is useful for stylistic changes, tone adjustments, adding specific sections, or any edit that does not fit the structured optimization approach. You can run it multiple times with different instructions.

Session Management

Every optimization session is automatically saved and persists across browser sessions. Sessions store the keyword, analysis data, editor content, score, and meta tags.

  • Recent sessions: The Optimize landing page shows your most recent sessions with their keywords, scores, and last-updated timestamps. Click any session to resume where you left off.
  • URL sharing: Each session has a unique URL that you can bookmark or share. The session ID is in the URL path, so navigating directly to a session URL opens it.
  • Auto-save: Content changes, scores, and meta tags are saved automatically as you work. You do not need to manually save.
  • Job linking: When a session is created from a workflow job, the session stays linked to that job. Score updates in the session are automatically synced back to the job record.
  • Deletion: You can delete sessions you no longer need from the session list.

Background Processing

All Optimizer operations — keyword analysis, content audit, entity analysis, auto-optimize, generate, smart images, and AI edit — run as background jobs on the server. This means:

  • You can navigate away from the page while an operation is running. Come back later and the results will be there.
  • Operations are not affected by browser refreshes, tab switches, or connectivity issues.
  • Progress indicators show the current status, but the work continues even if you close the tab.

Workflow Integration

The Content Optimizer is available as a workflow step in the agent editor. Add an "Optimize" step to your workflow pipeline to automatically analyze and optimize content as part of a multi-step generation flow.

A typical workflow using the optimizer:

  1. Research step: Gather information about the topic.
  2. Writing step: Draft the article.
  3. Optimize step: Analyze the keyword and optimize the draft against real SERP data. The optimize step runs the full analysis pipeline (SERP fetch, competitor scraping, term extraction) and then rewrites the content with all the competitive intelligence applied. Content audit and entity gaps are incorporated automatically.

Smart Images in workflows: When Smart Images is enabled on a workflow that includes an optimize step, the image placements benefit from the full article context. The LLM places images where they add the most value and selects the appropriate source (screenshot, web, stock, or AI) for each placement.

After a workflow job completes, you can open the result in the Optimizer to review the score, make manual adjustments, and run additional optimization passes.

Provider Support

The Content Optimizer works with all supported LLM providers. The system automatically detects which API keys you have configured and selects the best available provider using this priority cascade:

  1. Anthropic (Claude)
  2. OpenAI (GPT)
  3. Google Gemini
  4. xAI (Grok)
  5. Perplexity (Sonar)
  6. OpenRouter
  7. Replicate (Llama)

You can override the auto-detected provider and model in the settings gear icon. The AI Edit feature has its own provider/model selector so you can use a different model for edits than for optimization.

Note: While all providers work, Anthropic (Claude) and OpenAI (GPT) tend to produce the best results for optimization tasks due to their strong instruction-following and HTML output quality. Perplexity is a good choice if you want the analysis to incorporate real-time web knowledge.

Tips & Best Practices

When to use Optimize vs. Generate

Use Auto-Optimize when you have content in the editor that needs improvement — it preserves your voice and structure while filling competitive gaps. When the editor is empty, the button automatically switches to Generate Content, which writes a new article from scratch based on the analysis data.

Run optimization iteratively

For the best results, run Auto-Optimize once, review the output, make manual corrections, then run it again. Each pass catches different gaps. Two or three passes typically bring a score from the 30s to the 70s.

Check the Content Audit before optimizing

Review the Audit tab findings first. If the audit flags major issues like thin content or missing angles, those will be addressed during Auto-Optimize. But understanding the problems beforehand helps you evaluate the output quality.

Use Entity Analysis for topical depth

Entity gaps are often the difference between a surface-level article and one that demonstrates genuine expertise. If competitors consistently mention specific products, people, or concepts that you do not cover, adding them signals authority to search engines.

Do not over-optimize

A score of 75 with natural-reading content beats a score of 95 with awkward keyword stuffing. The score is a guide — use it to find gaps, but always prioritize readability and user value. If a term does not fit naturally, skip it.

Leverage Smart Images for unique visuals

Smart Images produces a mix of real photos and screenshots that other articles will not have. This gives your content a visual advantage over competitors using generic stock photography or AI-generated images exclusively.

Use ScrapingBee for better competitor data

Some websites block standard scrapers. If you add a ScrapingBee API key in Settings, the Optimizer will use it as a fallback for scraping competitor pages that would otherwise fail. More scraped pages means better term frequency data and more accurate structure targets.

Workflow tip: Optimize after writing

In multi-step workflows, place the Optimize step after the writing step, not before it. The optimizer needs content to analyze and rewrite. The pipeline flow should be: research, write, then optimize.

Was this helpful?