Key Takeaways
- A keyword gap on WordPress.org is a search term that at least one of your competitors ranks for and you don’t — meaning every time a developer or site owner searches that term, your competitor appears and you’re invisible, regardless of how good your plugin actually is.
- WordPress.org’s search runs on Elasticsearch and operates in two phases: first matching plugins against keyword presence across title, excerpt, description, tags, and slug; then re-ranking the matched pool based on install count, rating, update recency, and resolved support tickets. A gap in the first phase means you never enter the second phase at all — no amount of reviews or installs compensates for a keyword that simply isn’t in your readme.
- The title field carries the highest weight in WordPress.org search, the short description (excerpt) second, followed by the long description and FAQ — which means a keyword gap in your title is the most expensive gap of all, because title matches score highest in the relevance calculation.
- Only the first five tags in a readme are indexed by WordPress.org search — any tags beyond the fifth are silently ignored, which means most developers who stuff tags are wasting the majority of them.
- The install gap between two functionally equivalent plugins almost always comes down to keyword coverage: one developer watches the keyword landscape and closes gaps as they open, the other optimized their readme at launch and never touched it again.
There’s a specific frustration that hits plugin developers after the first few months of being listed on WordPress.org: the install counter moves, but not the way it should. You search for the terms you think your plugin should rank for. You’re on page three. A competitor with a plugin that does roughly the same thing, sometimes less, sits in the top five. Their star rating isn’t meaningfully better than yours. Their plugin isn’t newer. But they’re capturing installs from searches that your plugin never appears for — and you have no way of knowing which searches those are unless you know what a keyword gap is and how to find one.
The answer isn’t always about installs or reviews. Often it’s something more specific and more fixable: the competitor’s readme contains terms that searchers are using, and yours doesn’t. Those terms are keyword gaps. Closing them is the most direct lever a plugin developer has over their WordPress.org visibility, and it requires no waiting for installs to accumulate or reviews to arrive.
What a Keyword Gap Actually Is
The definition is straightforward: a keyword gap is any search term that a competitor ranks for on WordPress.org that your plugin does not. Not a term you rank for in position 15 while they rank in position 3 — that’s a weakness, not a gap. A true keyword gap is a term that generates installs for a competitor while your plugin doesn’t appear in those search results at all. From a searcher’s perspective, you don’t exist for that query. From a competitor’s perspective, that’s a consistent stream of installs from a search term they captured and you didn’t.
The concept comes from broader SEO practice — keyword gap analysis is a standard competitive intelligence technique in web SEO, used to identify the search terms competitors rank for that your own site doesn’t. The same logic applies to WordPress.org, but with a critical difference: unlike Google, where the ranking factors are complex, constantly evolving, and partially opaque, WordPress.org’s search is built on Elasticsearch with a publicly documented two-phase algorithm. That means keyword gaps on WordPress.org are more directly fixable — once you know which terms are missing from your readme, adding them in the right places produces measurable ranking improvements.
68%
57%
5

How WordPress.org Search Actually Works
Understanding why keyword gaps matter requires understanding the two-phase search process WordPress.org uses. This isn’t speculation — the algorithm is documented in WordPress.org’s own meta tracker and has been analyzed in depth by the plugin developer community.
Phase 1 — Keyword matching: WordPress.org’s Elasticsearch engine scans the following fields in a plugin’s listing, in approximate order of weighting: plugin title, short description (excerpt), long description, FAQ section, tags, slug, and contributor names. It checks whether the search query’s terms appear in these fields. Plugins that don’t contain all of the searched terms are excluded from the results entirely. This is the phase where keyword gaps cause the most damage — a plugin that isn’t in the Phase 1 result pool never competes in Phase 2 at all.
Phase 2 — Quality re-ranking: Within the pool of plugins that passed Phase 1, the algorithm re-ranks based on: number of active installs (capped at influence at one million), average rating, percentage of resolved support tickets, last update date, and compatibility with the current WordPress version. This is the phase most developers focus on — getting more installs, getting reviews — without realizing that these factors only matter after Phase 1 has already filtered them in.
The Field Hierarchy: Not All Keywords Are Equal
Where a keyword appears in your readme matters as much as whether it appears at all. Elasticsearch assigns different weights to different fields, which means a keyword in your plugin title contributes significantly more to your relevance score than the same keyword appearing once in a paragraph of your long description.
| Field | Relative Weight | Character Limit | What to Put Here |
|---|---|---|---|
| Plugin Title | ~75 chars | Your primary keyword and brand name. Exact match to common search queries is more valuable here than anywhere else. | |
| Short Description (Excerpt) | ~150 chars | Your 2-3 most important keywords in natural sentence form. This is what shows in search results — it has to convert as well as rank. | |
| Long Description + FAQ | No limit | Secondary and long-tail keyword variations. Use FAQ entries to address keyword variants naturally. Term frequency matters here. | |
| Tags | 5 tags indexed | Your five most important single keywords not already in the title. Only the first five are indexed — dedicate them carefully. | |
| Slug | Fixed at approval | Cannot be changed after WordPress.org approval. Choose it to match your primary keyword when first submitting. |
The practical implication of this field hierarchy is that a keyword gap in the title is an expensive gap — your competitor’s plugin scores significantly higher for every search that uses that term because their title contains it and yours doesn’t. Analysis of WordPress.org search scoring confirms that title matches receive a boosted multiplier over description matches, with exact phrase matches scoring even higher than individual word matches within the same field.

The Five Keyword Statuses — and Which One Costs You the Most
When you compare your plugin’s keyword positions against a competitor’s, every keyword falls into one of five meaningful categories. Understanding which category each keyword falls into tells you immediately what action to take — and which gaps are costing you the most installs per day they remain open.
Gap
Competitor ranks. You don’t appear.
The most actionable and most costly status. This keyword has proven search demand — your competitor is getting installs from it right now. You’re invisible. Every day this gap stays open is a day of installs going to someone else for a term your plugin should be capturing.
Weak
You rank, but deep in the results.
You appear for this keyword but in a position where almost nobody sees you — typically page two or beyond. The keyword is in your readme, but not in the right fields or with enough prominence. A title or excerpt addition could move this from invisible to competitive.
Ranked
You rank in a competitive position.
You and your competitor both appear for this term and you’re in a visible position. The gap is closed here. Focus shifts to Phase 2 factors — installs, rating, recency — to improve position within the competitive range.
Shared
Both appear, similar positions.
Neither plugin has a clear keyword advantage here. This term is effectively a draw — the install capture depends on Phase 2 factors (install count, rating, icon quality, excerpt copy). Optimization effort is better directed at gap keywords first.
Leading
You rank higher than your competitor.
You own this keyword. Protect it by keeping it in your title or excerpt and not diluting it with readme rewrites. Monitor it regularly — competitors who run their own gap analysis will identify your leading keywords as their gaps and work to close them.
The strategic priority is clear: close Gap-status keywords first. They represent proven search demand that’s currently going entirely to a competitor. Weak-status keywords are the second priority — you’re visible but not converting. Shared and Ranked keywords are maintained rather than improved. Leading keywords are protected.
A keyword gap isn’t a ranking problem. It’s an absence problem. Your plugin doesn’t rank poorly for that term — it doesn’t appear at all. The fix isn’t to improve ranking. It’s to show up.
Why WordPress.org Keyword Gaps Are Different From Google Keyword Gaps
The general concept of a keyword gap transfers from web SEO to WordPress.org directory SEO, but the mechanics are different in ways that make WordPress.org gaps both more fixable and more directly damaging.
On Google, keyword gaps require content creation — writing new pages, building backlinks, waiting months for rankings to develop. On WordPress.org, keyword gaps often require nothing more than adding terms to the right fields in an existing readme and waiting for the next indexing cycle. The algorithm’s Phase 1 matching is text-based: if the term is present in the right field with appropriate frequency, you’re in the candidate pool. The barrier to closing a gap is dramatically lower.
The damage from gaps is also more concentrated. Google searchers are distributed across millions of possible search queries with varying intent. WordPress.org developers searching for a plugin typically use a small set of functional terms — “contact form,” “push notifications,” “backup,” “SEO” — and variations of those core terms. A keyword gap on one or two high-traffic terms on WordPress.org can represent a significant share of the total available install traffic for your plugin category. There isn’t a long tail of thousands of queries distributing the risk. A handful of gaps on the right terms means a handful of competitors capturing installs that should be yours.
How to Find Your Keyword Gaps on WordPress.org
There are two approaches to finding keyword gaps — manual and automated — and they produce meaningfully different results in terms of the time investment required and the completeness of what they surface.
- 1
Manual gap research — the slow approach. Open WordPress.org, search for the terms you think your plugin should rank for, record which position your plugin appears in and which position your competitors appear in. For each competitor, click through their listing and read their title, excerpt, description, tags, and FAQ — looking for terms they’ve included that your readme doesn’t contain. Write down the gaps. Repeat for each competitor and each keyword. This process takes several hours per competitor for a thorough analysis and produces a list that’s immediately out of date as soon as competitors update their readmes.
- 2
Automated gap analysis — the repeatable approach. Tools built specifically for WordPress.org keyword tracking — including WhoKnew Directory SEO™ — run this comparison automatically. You enter a competitor’s plugin slug, the tool scans their WordPress.org listing, checks each keyword they use against your current positions, and returns a status-tagged list of every term: gaps, weaknesses, shared keywords, and positions where you lead. The same analysis that takes hours manually takes minutes, can be rerun monthly, and produces a structured gap list rather than notes from a manual review.
- 3
What to do with the gap list. Priority order: title gaps first. If a competitor ranks for a term in their title that you don’t have in yours, and that term is directly relevant to your plugin, that’s the highest-ROI readme change available. Excerpt gaps second — these affect both ranking and click-through rate from search results. Description and FAQ additions third — use gap terms naturally in context, not stuffed. Tag gaps last — if a gap term fits naturally as a standalone tag and you have fewer than five tags, add it. If you already have five tags, evaluate whether any current tag is outperformed by the gap term and swap.
The One-Time vs Monthly Gap Analysis Problem
Most plugin developers who think about WordPress.org SEO at all do it once — at launch, or after one particularly frustrating look at a flat install chart. They optimize the readme, maybe move a few keywords around, and don’t touch it again for months. Their competitors who run gap analysis monthly are watching a different movie.
The WordPress.org keyword landscape isn’t static. New plugins launch and compete for the same terms. Existing plugins update their readmes and change their keyword positioning. A term that was a gap six months ago might now be one where you lead. A term you led on might have three new competitors closing in. The gap you don’t know about is the one that’s been sending installs to someone else for the past three months while you assumed everything was fine.
The compounding nature of install counts makes this dynamic particularly punishing. Every install a competitor gains from a gap keyword improves their Phase 2 score, which improves their ranking for every other keyword, which generates more installs. The advantage compounds in their direction and away from yours as long as the gap remains open. Closing gaps early — before the install differential becomes large — is significantly more effective than trying to close them once a competitor has established a substantial lead.
What Keyword Gaps Look Like in Practice
To make this concrete: imagine you’ve built a push notification plugin for WordPress. You rank for “push notifications” and “web push” — your primary terms are covered. But a competitor also ranks for “PWA notifications,” “browser notifications,” “web push WordPress,” “push alerts,” “subscriber notifications,” and “notification plugin.” Those are keyword gaps. Every developer who searches any of those terms — and they search them every day — never sees your plugin. The competitor captures those installs. Your plugin sits at 200 active installs while theirs climbs toward 2,000, not because their plugin is better, but because their readme covers more of the language developers use when they’re looking for what you’ve built.
The fix doesn’t require rewriting the entire readme. Adding “browser notifications” to the title or excerpt, adding “PWA notifications” as a tag, and referencing “notification plugin” and “push alerts” naturally in the description closes most of those gaps in one focused editing session. The installs from those terms start flowing to your plugin instead of the competitor’s. The gap closes.
Further Reading
- How to Spy on Any Competitor’s WordPress.org Plugin Keyword Strategy — the step-by-step process for running a full competitor keyword analysis using Directory SEO’s Keyword Spy tool.
- How Active Installs Affect Your WordPress.org Search Ranking — why install count compounds keyword advantages over time and what the thresholds mean for visibility.
- The 7 Fields WordPress.org Actually Indexes (And How to Optimize Them) — the complete field-by-field breakdown of what WordPress.org’s Elasticsearch reads and what belongs in each one.
- Why Your Plugin Is Buried on Page 8 (And the 10-Minute Fix) — the most common reasons plugins sink in WordPress.org search and the fastest moves to recover visibility.
- How to Rank Your Plugin on WordPress.org — the complete ranking strategy from slug selection through readme optimization and beyond.
Who knew the difference between 200 installs and 2,000 installs often comes down to a handful of terms a competitor added to their readme that you forgot to add to yours.

