[wp-meta] [Making WordPress.org] #8225: Plugin search: slug field boost creates permanent advantage for grandfathered trademark slugs
Making WordPress.org
noreply at wordpress.org
Wed Apr 8 08:22:12 UTC 2026
#8225: Plugin search: slug field boost creates permanent advantage for
grandfathered trademark slugs
------------------------------+--------------------------------------------
Reporter: jeangalea | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Plugin Directory | Keywords: search relevance elasticsearch
------------------------------+--------------------------------------------
== Problem
The plugin search algorithm gives the `slug_text` field a **5x boost** —
the highest text-field weight in the query. This is by design and
generally makes sense: a slug match is a strong relevance signal.
However, combined with two other policies, it creates an unintended and
permanent competitive distortion:
1. **Guideline 17 and trademark enforcement** block new plugins from using
trademarked terms (e.g., "instagram", "facebook") in their slugs.
2. **Slugs cannot be changed after approval** (confirmed in
https://make.wordpress.org/plugins/2018/11/21/reminder-we-cant-rename-
plugins-post-approval/).
3. **Pre-2015 plugins are grandfathered** and keep their trademark-
containing slugs indefinitely.
The result: a small number of grandfathered plugins receive a permanent 5x
text-relevance boost for trademarked search terms that no new plugin can
ever obtain, regardless of quality, support, or user satisfaction.
== Concrete example
Search: "instagram feed"
- **#1: Smash Balloon Social Photo Feed** — slug `instagram-feed`
(grandfathered). Gets a 5x boost on both "instagram" and "feed" via
`slug_text`. Note: the display name no longer contains "Instagram" —
Meta's lawyers required them to remove it.
- **#2: Spotlight Social Feeds** — slug `spotlight-social-photo-feeds`.
Can only match "instagram" via tags (2x boost). Cannot obtain an
equivalent slug because "instagram" is now blocked.
The #1 plugin gets a 2.5x text-relevance advantage on the highest-volume
search term in this category, solely because it was approved before 2015.
This advantage persists even though the plugin was already forced to
remove "Instagram" from its display name to comply with trademark
enforcement.
== The inconsistency
WordPress.org enforces trademarks in display names and blocks them in new
slugs, but the ranking algorithm still rewards grandfathered slugs
containing those same trademarked terms with a 5x boost. The trademark is
being enforced on the surface (names, banners, icons) but continues to
confer a ranking advantage underneath (slug-based search scoring).
This affects not just Instagram — any grandfathered slug containing a
trademark that is now blocked gives its holder an insurmountable ranking
advantage.
== Code reference
The 5x slug boost is set in `class-plugin-search.php`:
{{{#!php
$should_match[] = [
'multi_match' => [
'query' => $search_phrase,
'fields' => $this->localise_es_fields( 'title', 'slug_text' ),
'type' => 'most_fields',
'boost' => 5,
],
];
}}}
Source:
https://github.com/WordPress/wordpress.org/blob/trunk/wordpress.org/public_html
/wp-content/plugins/plugin-directory/class-plugin-search.php
== Suggested approaches
Any of these would address the issue:
**Option A: Reduce or remove `slug_text` from the boosted fields.**
The slug was chosen by the developer at submission time, often years ago.
It reflects naming strategy, not ongoing quality. Removing it from the
`should` match (or reducing its boost from 5 to 1-2) would make rankings
more dependent on current signals like active installs, support quality,
and content relevance.
**Option B: Exclude trademarked terms from slug-based scoring.**
If a slug contains a term that would be blocked under current Guideline 17
enforcement, exclude that term from the slug boost calculation. This
preserves slug matching for non-trademarked terms while removing the
grandfathered advantage for trademarked ones.
**Option C: Migrate grandfathered trademark slugs to compliant slugs with
redirects.**
Update slugs like `instagram-feed` to non-trademarked equivalents (the
plugin already has a compliant display name). Set up 301 redirects from
old URLs. This fully aligns slug policy with ranking behavior.
Option A is the simplest code change and has the broadest fairness
benefit.
--
Ticket URL: <https://meta.trac.wordpress.org/ticket/8225>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org
More information about the wp-meta
mailing list