Title: Frenemy
Author: frenemydev
Published: <strong>Agẹmọ  18, 2026</strong>
Last modified: Agẹmọ  18, 2026

---

Ṣàwárí àwọn plugin

![](https://ps.w.org/frenemy/assets/banner-772x250.png?rev=3612092)

![](https://ps.w.org/frenemy/assets/icon-256x256.png?rev=3612092)

# Frenemy

 Láti ọwọ́ [frenemydev](https://profiles.wordpress.org/frenemydev/)

[Ṣe ìgbàsílẹ̀](https://downloads.wordpress.org/plugin/frenemy.0.1.0.zip)

 * [Àwọn àlàyé](https://yor.wordpress.org/plugins/frenemy/#description)
 * [Àwọn àgbéyẹ̀wò](https://yor.wordpress.org/plugins/frenemy/#reviews)
 *  [Ìgbéwọlẹ̀](https://yor.wordpress.org/plugins/frenemy/#installation)
 * [Ìdàgbàsókè](https://yor.wordpress.org/plugins/frenemy/#developers)

 [Ìrànlọ́wọ́](https://wordpress.org/support/plugin/frenemy/)

## Àpèjúwe

AI agents, search crawlers, SEO tools, scrapers, and impostors pretending to be 
all of the above now make up a large share of most sites’ traffic — and standard
analytics are built to ignore them. Frenemy watches that traffic instead.

For every request that reaches WordPress, the plugin:

 * **classifies** the visitor against a maintained registry of known agents (GPTBot,
   ClaudeBot, Googlebot, PerplexityBot, and many more),
 * **verifies** identity claims where the operator publishes IP ranges — an out-
   of-range “Googlebot” is reported as an impostor, a real one as verified,
 * **reports** the result to your Frenemy dashboard at frenemy.dev, where you see
   who visits, how often, and what they claim to be.

**Observe-only, by design.** The plugin never blocks, slows, challenges, or alters
a request — there is no blocking code in it at all. It is also fail-open at every
joint: classification runs after your page has already been sent, and any Frenemy
failure means “no data,” never a broken or slower site.

**Honest about what it sees.** Frenemy observes every request that reaches WordPress
itself. Cached pages and static files are served before WordPress runs and are not
observed — that trade-off is stated in the plugin, on your dashboard, and here, 
rather than papered over. The requests page caches never serve (cache misses, searches,
POSTs, login, REST, and XML-RPC traffic) are exactly where bot and impostor signal
concentrates.

**Account required.** The plugin needs a site key from a Frenemy account (free trial—
no card required to start). All plugin code is fully functional and GPL; the key
connects it to your dashboard, which is where the analytics live. There are no charts
inside wp-admin and no duplicate analytics UI — one settings screen, one key, one
link to your dashboard.

### External services

This plugin talks to exactly two endpoints, both operated by Frenemy (frenemy.dev).
It sends nothing anywhere until you save a site key.

**1. Registry download (GET).** The plugin periodically downloads FrenemyÌtumọ̀ 
Yorùbá: ’s public bot registry (user-agent patterns and published IP ranges for 
known agents) so classification can run locally on your server with no per-request
network calls. No visitor data, cookies, or credentials are sent with this request.

**2. Event reporting (POST).** After a response has been sent, the plugin reports
one small event to FrenemyÌtumọ̀ Yorùbá: ’s ingest service, authenticated by your
site key. It contains: the classification result, the request method and path (query
strings stripped except utm_*/ref/source), the response status code and duration,
the visitorÌtumọ̀ Yorùbá: ’s IP address (transmitted securely, processed transiently—
hashed with a per-site rotating salt and never stored in raw form), and, only for
unrecognized bot-like requests, the user-agent string. Human visitors’ user-agents
are never transmitted, and presumed-human traffic is sampled, not tracked.

By installing the plugin and entering your site key you consent to this reporting.
Details: [Terms of Service](https://frenemy.dev/terms) · [Privacy Policy](https://frenemy.dev/privacy).

## Ìgbéwọlẹ̀

 1. Install and activate the plugin from the WordPress.org directory.
 2. Create a site at app.frenemy.dev (free trial) — the setup wizard shows your site
    key once.
 3. In WordPress, go to Settings  Frenemy, paste the key, and save.
 4. Answer the one topology question on the same screen (“How does traffic reach this
    server?”) — it controls whether Frenemy can verify crawler IPs. Not sure? The default
    is safe.
 5. Open `https://your-site.com/?frenemy=check` in a private window; your Frenemy wizard
    flips to Connected within a minute.

## FAQ

### Does this slow my site down?

No. Classification and reporting run on PHPÌtumọ̀ Yorùbá: ’s shutdown hook, after
your page has been sent (and on most hosts, after the connection to the visitor 
is already closed). The classify step itself is local — no network calls in the 
request path, ever.

### Can it block bad bots?

Not in this version — Frenemy for WordPress is deliberately observe-only, and there
is no enforcement code in the plugin. See first, then decide: your dashboard shows
exactly who visits and what they claim to be.

### Why donÌtumọ̀ Yorùbá: ’t I see all my traffic?

Page caches and static files are served before WordPress (and therefore Frenemy)
runs. Frenemy sees every request that reaches WordPress itself: cache misses, searches,
POSTs, logins, REST and XML-RPC traffic — which is where bot activity concentrates.
We state this honestly rather than estimate numbers we canÌtumọ̀ Yorùbá: ’t measure.

### What data do you collect about my visitors?

Per PHP-reaching request: the classification, method and path, status, duration,
and the visitor IP (processed transiently on our side — hashed with a rotating salt,
raw value never stored). The user-agent string is transmitted only for unrecognized
bot-like requests, never for humans. Presumed-human traffic is sampled at a low 
rate; exact totals are kept via counters, not tracking. No cookies are set, no fingerprinting
is done, and no visitor profile is built. See https://frenemy.dev/privacy.

### How do I turn it off?

Three ways, strongest first: define `FRENEMY_DISABLED` as true in wp-config.php (
host-level), deactivate the plugin, or use the “Pause observation” toggle in Settings
Frenemy. Uninstalling removes every option the plugin created.

### Does it work with multisite?

Not yet — single-site installs only in this version.

## Àwọn àgbéyẹ̀wò

Kò sí àwọn àgbéyẹ̀wò fún plugin yìí.

## Àwọn Olùkópa & Olùgbéejáde

“Frenemy” jẹ́ ètò ìṣàmúlò orísun ṣíṣí sílẹ̀. Àwọn ènìyàn wọ̀nyí ti ṣe ìkópa sí plugin
yìí.

Àwọn Olùkópa

 *   [ frenemydev ](https://profiles.wordpress.org/frenemydev/)

[Túmọ̀ “Frenemy” sí èdè rẹ.](https://translate.wordpress.org/projects/wp-plugins/frenemy)

### Ṣe o nífẹ̀ẹ́ sí ìdàgbàsókè?

[Ṣàwárí koodu](https://plugins.trac.wordpress.org/browser/frenemy/), ṣàyẹ̀wò [ibi ìpamọ́ SVN](https://plugins.svn.wordpress.org/frenemy/),
tàbí ṣe àgbékalẹ̀ sí [àkọsílẹ̀ ìdàgbàsókè](https://plugins.trac.wordpress.org/log/frenemy/)
nípasẹ̀ [RSS](https://plugins.trac.wordpress.org/log/frenemy/?limit=100&mode=stop_on_copy&format=rss).

## Àkọsílẹ̀ àwọn àyípadà

#### 0.1.0

 * First release: local classification against the Frenemy registry (verification,
   impostor detection, per-family trust gating), observe-only event reporting, topology-
   aware IP trust, fail-open artifact caching, uninstall cleanup.

## Àkójọpọ̀ Meta

 *  Ẹ̀yà **0.1.0**
 *  Ìgbàgbọ́hùn tó kẹ́yìn **oṣù 2 sẹ́yìn**
 *  Àwọn ìgbéwọlẹ̀ tó ṣiṣẹ́ **Tó kéré sí 10**
 *  Ẹ̀yà WordPress ** 6.0 tàbí ju bẹ́ẹ̀ lọ **
 *  Dánwò dé **7.0.4**
 *  Ẹ̀yà PHP ** 7.4 tàbí ju bẹ́ẹ̀ lọ **
 *  Èdè
 * [English (US)](https://wordpress.org/plugins/frenemy/)
 * Àwọn àmì
 * [AI](https://yor.wordpress.org/plugins/tags/ai/)[analytics](https://yor.wordpress.org/plugins/tags/analytics/)
   [bot detection](https://yor.wordpress.org/plugins/tags/bot-detection/)[bots](https://yor.wordpress.org/plugins/tags/bots/)
   [crawlers](https://yor.wordpress.org/plugins/tags/crawlers/)
 *  [Ìwòye Tó Péye](https://yor.wordpress.org/plugins/frenemy/advanced/)

## Àwọn ìbò

Kò sí ìwádìí tí a tíì fi ránṣẹ́.

[Your review](https://wordpress.org/support/plugin/frenemy/reviews/#new-post)

[Wo gbogbo àwọn àgbéyẹ̀wò](https://wordpress.org/support/plugin/frenemy/reviews/)

## Àwọn Olùkópa

 *   [ frenemydev ](https://profiles.wordpress.org/frenemydev/)

## Ìrànlọ́wọ́

Nǹkan wà tí o fẹ́ sọ? Ṣé o nílò ìrànlọ́wọ́?

 [Wo àpéjọ ìrànlọ́wọ́](https://wordpress.org/support/plugin/frenemy/)