---
title: SerpBear
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, search-engines, self-hosted, typescript]
confidence: medium
contested: false
sources:
  - https://docs.serpbear.com
  - https://github.com/towfiqi/serpbear
---

# SerpBear 🐻
> Outil de **suivi de positionnement SEO** et de recherche de mots-clés, alternative open source à Ahrefs / SEMrush.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://docs.serpbear.com/ |
| **GitHub** | https://github.com/towfiqi/serpbear |
| **License** | MIT |
| **Langage** | TypeScript (Next.js) |
| **Étoiles** | 1 971 |
| **Dernière MAJ** | 2026-05-14 |
| **Catégorie** | [[cat-search-engines]] |

## Description
SerpBear est un **tracker de positions SEO** qui surveille quotidiennement le classement de vos mots-clés sur Google, Bing et DuckDuckGo. Il permet aux webmasters, aux agences SEO et aux propriétaires de sites de détecter les chutes/régressions de positionnement, d'analyser la performance par pays, par device (desktop/mobile) et de recevoir des **alertes email automatiques** en cas de mouvement significatif.

L'interface affiche l'évolution du SERP (Search Engine Results Page) sous forme de **graphique historique**, de tableaux triables et d'export CSV. Chaque domaine peut être associé à plusieurs mots-clés, eux-mêmes paramétrés par pays, langue, type de recherche (web, image, local). SerpBear supporte aussi la **concurrence** : vous pouvez suivre les positions des rivaux sur les mêmes mots-clés.

L'auto-hébergement permet de garder ses données SEO confidentielles (les requêtes de mots-clés sont sensibles d'un point de vue business intelligence). SerpBear s'intègre avec l'API ScraperAPI, ScrapingAnt ou SerpAPI pour contourner les rate-limits Google. C'est le « petit tracker » qui fait 80 % du travail d'Ahrefs pour 0 €/mois.

## Installation
### Docker Compose
```yaml
services:
  serpbear:
    image: towfiqi/serpbear:latest
    container_name: serpbear
    environment:
      - USER=admin
      - PASSWORD=changeme
      - SECRET=changeme-random-string
      - DATABASE_URL=postgresql://serpbear:serpbear@db:5432/serpbear
      - SCraperAPI_KEY=${SCRAPERAPI_KEY}
      - APP_URL=http://localhost:3000
    ports:
      - "3000:3000"
    labels:
      - traefik.enable=true
      - traefik.http.routers.serpbear.rule=Host(`serp.example.com`)
      - traefik.http.routers.serpbear.entrypoints=websecure
      - traefik.http.routers.serpbear.tls.certresolver=letsencrypt
      - traefik.http.services.serpbear.loadbalancer.server.port=3000
    restart: unless-stopped
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: serpbear-db
    environment:
      - POSTGRES_USER=serpbear
      - POSTGRES_PASSWORD=serpbear
      - POSTGRES_DB=serpbear
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    restart: unless-stopped
```

## Configuration
1. Démarrer la stack et créer le compte administrateur depuis `https://serp.example.com`.
2. Obtenir une **clé API ScraperAPI / ScrapingAnt / SerpAPI** (indispensable pour scraper Google sans ban).
3. Ajouter un **domaine** et saisir la liste des **mots-clés** à suivre (max 100 / domaine en gratuit).
4. Configurer le **cron quotidien** (par défaut à 02:00 UTC) pour le scraping automatique.
5. Activer les **alertes email** (SMTP) et les **webhooks** (Discord, Slack) en cas de chute de position.

## Alternatives
- **Open source** : SerpWatcher (limité), Rankerly (payant-self-hosted), SERPtimizer, SERP Scraper (Python), Google Search Console API scripts, WhatSerp (lib Python), SearchEnginePosition, SeoTools, Rango.
- **Propriétaire** : Ahrefs (référence), SEMrush, Mangools (KWFinder, SERPChecker), AccuRanker, SERPWatcher, SE Ranking, ProRankTracker.

## Sécurité
- **Changer le mot de passe par défaut** (`PASSWORD=changeme`) avant la première utilisation.
- **SECRET** doit être une chaîne aléatoire forte (32+ caractères, `openssl rand -hex 32`).
- **Clé API scraper** sensible : la stocker dans `.env` jamais dans le compose.
- **HTTPS obligatoire** pour chiffrer les credentials d'accès au dashboard.
- **Limiter l'accès** par IP / VPN / Cloudflare Access (Cloudflare Zero Trust gratuit).

## Ressources
- Code : https://github.com/towfiqi/serpbear
- Documentation : https://docs.serpbear.com
- Démo : https://app.serpbear.com
- Issues : https://github.com/towfiqi/serpbear/issues

## Pages Liées
- [[cat-search-engines]] — Catégorie parente
- [[app-searxng]] — Méta-moteur de recherche
- [[app-whoogle]] — Front-end Google
- [[recettes-docker-compose]] — Modèles de stacks
