How do I find content gaps with Semrush and update my WordPress site?
To find content gaps with Semrush, open the Keyword Gap tool, enter your domain and up to four competitors, and look at the keywords they rank for that you don't. Then match each gap worth winning to the WordPress post that should answer it, expand that post or write a new one, and publish the change. Finding the gaps takes a few minutes. Deciding what to do with each one is where the real work starts.
Semrush sorts the comparison into groups. "Missing" keywords are ones every competitor you entered ranks for while you don't rank at all. "Weak" keywords are ones where you rank, but below all of them. "Untapped" keywords are ones at least one competitor ranks for and you don't. Semrush's Organic Research reports fill in the rest: which competitor URLs bring in their traffic, and which of your own pages rank for each keyword.
WordPress is where the answer to those gaps gets published. On most self-hosted WordPress sites, the blog does the search work, so the gap usually ends in a post. Semrush offers an SEO Writing Assistant plugin for WordPress that scores a draft for readability and target keywords while you write, and SEO plugins such as Yoast can suggest related keyphrases from Semrush data. Those tools help you write a better post once you know which post to write. They don't read the gap list, decide which post each gap belongs to, or make the change. A person still exports the list, works through it row by row, and edits the post in the WordPress editor.
That decision matters more on WordPress than almost anywhere else. A blog that has been running for a few years usually already has a post that touches most of the topics in your gap list. It may be thin, out of date, or aimed at a slightly different question, but it has an address that other sites link to and a history with Google. Expanding that post is usually faster to rank than a new one. Writing a fresh post next to it can leave you with two posts competing for the same search and neither one winning.
A good result is a short list of posts, each aimed at a group of related searches you can realistically win, each written to answer those searches better than what ranks today, and each live on your site.
Kite does that whole job. It reads the comparison from your Semrush account, decides which gaps are worth closing and which post should close each one, writes the changes in your brand voice, and saves them to your WordPress site after you approve them.
How to get started
Start by telling Kite in Slack what you want. You might say:
"Find the topics our competitors rank for that we're missing, and fix them on our WordPress blog."
Kite is an AI marketer in your Slack. It researches your business, builds a growth strategy, and ships the work that brings you new customers. By the time you ask, it already knows your products, positioning, customers, and competitors from that research, so it doesn't need a brief from you to begin.
You connect two accounts. Connect Semrush with an API key from your Semrush account, which needs a plan that includes API access. Connect your self-hosted WordPress site with its address, a WordPress username, and an application password, which is a separate password you create for outside apps under your user profile in the WordPress dashboard and can revoke at any time. Connect a user with the Editor or Administrator role so Kite can update any post on the blog, not only its own.
Kite replies with the competitors it plans to compare you against and the country whose rankings it will read, so you can change either before it pulls anything. It reports back in the same Slack thread as the work moves along.
How Kite closes content gaps on your WordPress site
Which competitors should you compare against?
The competitors that matter for a content gap are the sites you compete with in search, and they aren't always the companies you compete with for deals. A trade publication or a software review site can take more of your searches than your closest rival does.
Kite starts with the competitors in your company research, then reads Semrush's organic competitors report for your domain. That report lists the domains that rank for the same keywords you do and how many keywords you share with each. Kite picks up to four domains to compare alongside yours, which is the most Semrush compares at once. It favors sites that share many of your keywords and write for the same buyers, because a site that overlaps on a handful of unrelated terms adds noise to the gap list without adding anything useful.
Kite also chooses the Semrush regional database that matches where you sell, such as the United States or the United Kingdom, because Semrush keeps separate rankings for each country.
What does the Semrush comparison show?
Kite runs the same domain comparison that powers Semrush's Keyword Gap tool. For each keyword, it reads your position and each competitor's position, the monthly search volume, the keyword difficulty score from 0 to 100, the cost per click, and the level of competition.
Kite then reads two more Semrush reports. The organic keywords report for your own domain shows which of your URLs ranks for each keyword and where it sits. The organic pages report for each competitor shows which of their URLs bring in the most search traffic. Together they tell Kite not only which searches you're losing, but which of your posts is losing them and which competitor page is winning. Before a large pull, Kite checks how many API units are left on your Semrush account, so a long comparison doesn't use up your balance halfway through.
Which gaps are worth closing?
Most of a raw gap list isn't worth acting on, so Kite narrows it before anything gets written. It judges each keyword by three questions:
- Would the person searching ever become your customer? Kite reads what each search is really asking. People comparing products or looking for a way to solve the problem your product solves come first. A popular term with no path to your product stays off the list, however large its volume.
- Can you realistically win it? Kite weighs the difficulty score against who ranks today. When the top results are thin roundups, forum threads, or posts that haven't been updated in years, the keyword is winnable. When every result is a major site's flagship page, Kite marks it as a long shot.
- Is it worth the effort? Search volume shows how many people ask, and a high cost per click usually means advertisers have learned that the people searching it buy.
Kite then groups the keywords that pass into topics. One good post can rank for many related searches, so "content gap analysis," "keyword gap analysis," and "how to find content gaps" become one topic with one post. For each topic, Kite pulls the question-style searches Semrush has collected, such as "how do I find keyword gaps for free," because those tell it what a complete answer has to cover.
Which post should close each gap?
Every topic gets exactly one target on your site, and on a WordPress blog that target is usually a post you already have. Kite searches your WordPress posts for each topic's main keywords and reads the posts it finds, including drafts and posts waiting for review, so it doesn't write something your team already has in progress.
Kite then decides what each topic needs:
- Expand an existing post when you have a post on the topic that ranks weakly or not at all. This is the most common answer, because the post keeps its address and the links already pointing to it.
- Merge overlapping posts when you've written two or three posts on the same question and they split the search between them. Kite chooses the strongest one to expand and plans to move the others back to draft.
- Write a new post when nothing on your blog covers the topic, which is usually the case for missing and untapped keywords.
Kite also opens the competitor pages that win each topic and notes what they include that your post lacks, such as a direct answer in the first paragraph, a comparison table, worked numbers, or a section on a question you skipped. That shapes the change as much as the keyword list does. A search answered by step-by-step guides needs a step-by-step guide.
What gets written into WordPress?
Kite writes each change straight into the post's own fields, so nothing arrives as a document for someone to paste into the editor. It writes in your brand voice and draws on what it knows about your products, customers, and positioning, so the update reads like the rest of your blog and makes your case.
- An expanded post. Kite rewrites the post's title, body, and excerpt. That might mean a clear answer near the top, new sections for the questions searchers ask, a refreshed example, or corrected facts. The post keeps its address.
- A new post. Kite creates the post with its title, body, excerpt, categories, tags, and author already set, using the categories and authors your blog already has. It can upload a featured image to your media library with alt text and attach it to the post.
- Links to the post. Kite adds links from related posts that already get traffic, so the post it improved or created gets found by readers and by Google.
- Search titles and descriptions. When your site makes your SEO plugin's title and description fields available to outside apps, Kite sets them for the topic the post now targets. Otherwise it gives you the text to paste into the plugin's box.
Kite keeps a record of which keywords each post now targets, so the next round can check whether the change worked.
How do the changes go live?
Kite shows you each change in Slack before it touches your live site, and it saves the change once you approve. For an updated post, you see the new title, excerpt, and the rewritten sections. For a new post, you see the full draft. Reply in the thread with your approval or your edits, and Kite makes the edits and saves the post. If your editor prefers to give new posts a final read in WordPress, ask Kite to save them as drafts, and they'll wait in your dashboard until someone clicks Publish.
When Kite merges overlapping posts, it moves the weaker posts back to draft after the stronger one is live. Moving a post to draft takes it off your site, so Kite also gives you the old address and the new one for each, so you can add the redirect in your redirect plugin or with your host and keep the links that pointed at the old post.
Once a change is live, Kite opens the post on your site to confirm it shows the new version, then posts the live links in Slack.
How do you know it worked?
Kite checks your Semrush rankings for the keywords each post targets and reports which posts moved, which keywords you now rank for, and which competitors you passed. Google takes a few weeks to settle on new positions, so Kite can put the check on a schedule, such as once a month, and post the results in the same Slack thread.
The results decide the next round. A post that climbed but stalled on the second page of results may need a stronger section or more links from your other posts. A topic that didn't move at all may need a different kind of page. Kite records what worked in your team's knowledge base, so each round starts from what the last one learned.
Kite can also run the same topics through ChatGPT, Gemini, Perplexity, and Claude. Those answer engines often search the web before they answer and quote the pages they find, so a post that starts winning a search can start appearing in AI answers too, and Kite's tracking shows whether that happens.
What the finished work contains
The finished work is a set of updated and new posts on your WordPress blog, plus the reasoning behind each one, delivered in the Slack thread where you asked.
A prioritized gap list
The topics Kite chose, the keywords in each, their search volume and difficulty, the competitor page that wins each one today, and the keywords Kite ruled out with the reason for each.
One target per topic
For each topic, the existing post Kite expanded, the posts it merged, or the new post it wrote, with a short explanation of the choice.
The published posts
Rewritten titles, bodies, and excerpts, new posts with their categories, tags, author, and featured image, and new links from related posts, live on your site with their links posted in Slack.
A redirect list
For any post Kite moved back to draft, the old address and the post it should now point to.
A ranking check
Your Semrush positions for each target keyword before and after the change, and what Kite plans to do next for the posts that didn't move.
Common questions
Which Semrush report shows content gaps?
The Keyword Gap tool is Semrush's main report for content gaps. It compares your domain with up to four others and sorts the keywords into groups such as missing, weak, strong, and untapped. The Organic Research tool fills in the detail by showing which pages on each site rank and bring in traffic.
Can Kite update WordPress pages as well as posts?
Kite's WordPress connection works with blog posts, which is where most content gaps get closed. When a gap calls for a change to a WordPress page, such as your homepage or a service page, Kite writes the new copy and tells you exactly where it goes, and you paste it in through the WordPress editor.
Does this work with WordPress.com?
This page covers WordPress that you or your hosting company run on your own domain. WordPress.com uses a separate connection that can publish new posts but can't edit the ones you already have, so the expand-an-existing-post approach on this page needs a self-hosted site.
Do I need a Semrush account for Kite to find content gaps?
No. Kite comes with search data built in through DataForSEO, which covers keyword volume, rankings, and search competitors without a separate subscription, and Kite can find content gaps with it. Connect Semrush when your team already plans around Semrush numbers, such as its keyword difficulty scores, and wants Kite to work from the same data you see.
How often should you look for content gaps?
Check for content gaps every month or every quarter. Competitors publish new posts, rankings shift, and new searches appear. Kite can run the comparison on a schedule and bring you only the new gaps worth closing, along with the posts it proposes to change.