Description
SAM Optirank is a WordPress plugin that improves your natural and local search engine optimization using artificial intelligence (Claude Haiku by Anthropic).
Description en français
SAM Optirank est un plugin WordPress qui améliore votre référencement naturel et local grâce à l’intelligence artificielle (Claude Haiku d’Anthropic).
- IA incluse dans l’abonnement — avec une licence active, l’IA fonctionne immédiatement, sans clé API à configurer. Chaque licence inclut un quota mensuel (≈ 140 pages satellite générées). Une jauge dans les réglages affiche votre usage restant sous la forme « ≈ N pages restantes ». Vous pouvez aussi ajouter votre propre clé Anthropic pour un usage illimité facturé directement sur votre compte.
- Gratuit — score SEO local de 0 à 100, champs titre/méta-description avec compteur dans l’éditeur, aperçu SERP en direct, zone géographique pour le SEO local, compatible Gutenberg, Oxygen, Elementor, Beaver Builder.
- Premium (licence) — analyse SEO complète par IA, assistant « Analyser Valider Optimiser », génération de contenu HTML, recherche de mots-clés (longue traîne, local, questions PAA, LSI), suivi des positions Google (Serper.dev / Search Console), corrections en un clic, rapports, et cocon sémantique (pages satellites optimisées, maillées et publiées progressivement).
Compatible avec tous les page builders : les balises SEO sont injectées via les hooks natifs de WordPress, sans modifier le builder.
Free features
- Local SEO score from 0 to 100 (title, meta description, H1, word count, links, images)
- SEO title and meta description fields with character counter in the editor
- Live SERP preview
- Geographic zone for local SEO
- Compatible with classic WordPress, Gutenberg, Oxygen Builder, Elementor, Beaver Builder
Premium features (license required)
AI included in your subscription. With an active license, AI features work out of the box — no API key to configure. Each license includes a monthly allowance (about 140 satellite pages worth of generation). A simple gauge in the settings shows your remaining usage as “≈ N pages left”. Prefer your own Anthropic key? Add it in the settings for unlimited usage billed directly on your Anthropic account.
- Full AI analysis — score, strengths, detected issues and prioritized suggestions via Claude Haiku (Anthropic)
- “Analyze Validate Optimize” Wizard — Claude analyzes your page semantics, generates ~20 keywords to validate in one click, then automatically optimizes SEO title, meta description, Schema.org, Open Graph and canonical URL
- AI-generated HTML content — H1, H2s, paragraphs and conclusion ready to paste into the editor
- AI keyword research — primary, long-tail, local, PAA questions, LSI semantic clusters, CSV export
- Google position tracking — via Serper.dev (Google Search API)
- One-click auto-fix recommendations — apply all SEO fixes instantly
- Progress reports — dashboard, charts, AI-generated executive summaries
- Semantic Cluster (Cocon Sémantique) — automatically generate SEO-optimized satellite pages, interlinked and ready to index
- Royalty-free images — optionally illustrate each satellite page with a relevant Unsplash photo (imported into your media library)
- Drip auto-publish — optionally publish satellite drafts automatically, one page per day, for a natural indexing pace
Compatibility
Fully compatible with Oxygen Builder, Elementor, Beaver Builder, WPBakery and the classic WordPress/Gutenberg editor. All meta tags and SEO data are injected via native WordPress hooks — the builder is never modified.
External Services
This plugin connects to the following external services. These services are only called when you have configured the corresponding API keys in the plugin settings. No data is sent without your explicit action.
Anthropic Claude API (premium features)
Used for AI-based SEO analysis, keyword research, content generation and optimization recommendations.
- Data sent: page content (title, meta, headings, body text), target keyword, geographic area
- When: only when you trigger an AI analysis or content generation from the plugin interface
- Routing: if you enter your own Anthropic API key, requests go directly to Anthropic. If you use the AI included in your subscription (no personal key), requests are relayed through the Groupe Coste license server (see below), which forwards them to Anthropic using its own key and meters your monthly token allowance.
- Service provider: Anthropic, PBC — https://www.anthropic.com
- Terms of use: https://www.anthropic.com/legal/aup
- Privacy policy: https://www.anthropic.com/privacy
Serper.dev (optional — position tracking)
Used to retrieve Google search results and detect the position of your pages for tracked keywords.
- Data sent: tracked keywords, target country/language
- When: only during scheduled or manual position tracking updates
- Service provider: Serper.dev — https://serper.dev
- Terms of use: https://serper.dev/terms
- Privacy policy: https://serper.dev/privacy
Unsplash (optional — satellite page images)
Used to fetch a relevant royalty-free photo to illustrate each generated satellite page. The image is then downloaded into your WordPress media library.
- Data sent: the target keyword (search query) of the satellite page
- When: only when you generate a satellite page AND have entered an Unsplash API key with the image option enabled
- Service provider: Unsplash Inc. — https://unsplash.com
- Terms of use: https://unsplash.com/terms
- Privacy policy: https://unsplash.com/privacy
Google Search Console (optional — position tracking)
Optional OAuth 2.0 connection to import click and impression data from your GSC account.
- Data sent: OAuth token (stored locally), site URL
- When: only when you connect GSC and trigger a data import
- Service provider: Google LLC — https://search.google.com/search-console
- Terms: https://developers.google.com/terms
- Privacy policy: https://policies.google.com/privacy
Google Analytics 4 (optional — visitor tracking)
If you enter a GA4 Measurement ID in the settings, the plugin loads Google’s official gtag.js tracking script on your public pages. Leave the field empty to load nothing.
- Data sent: standard Google Analytics traffic data (page views, visitor/device info collected by gtag.js)
- When: on every public page load, only when a GA4 Measurement ID is configured
- Service provider: Google LLC — https://www.google.com/analytics
- Terms: https://marketingplatform.google.com/about/analytics/terms/us/
- Privacy policy: https://policies.google.com/privacy
Groupe Coste License Server (premium features)
Used to validate your premium license key when activating or using premium features, and to relay AI requests when you use the AI included in your subscription (instead of your own Anthropic key).
- Data sent: license key, WordPress site URL; and — only when using the included AI — the same page content/keyword data described in the Anthropic section above, forwarded to Anthropic on your behalf
- When: on plugin activation, periodically to verify license validity, and each time you trigger an AI action while using the included AI allowance
- Service provider: Groupe Coste — https://groupe-coste.fr
- Terms: https://groupe-coste.fr/mentions-legales
- Privacy policy: https://groupe-coste.fr/mentions-legales
Installation
Automatic installation
- Go to Plugins Add New Plugin
- Search for “SEO AI Master”
- Click Install Now then Activate
Manual installation
- Download the
.zipfile - Go to Plugins Add New Plugin Upload Plugin
- Select the
.zipfile and click Install Now - Activate the plugin
Configuration
- Go to SEO AI Master Settings
- (Free) The basic SEO score works immediately, no configuration needed
- (Premium) Activate your license key — AI is then included, no API key needed (optionally add your own Anthropic key for unlimited usage)
- (Premium) Enter your Serper.dev API key for Google position tracking
- (Optional) Connect Google Search Console for click/impression data
- Set your geographic area for local SEO
FAQ
-
Is the plugin free?
-
The plugin includes a free tier with the basic SEO score and meta fields. Premium features (AI analysis, keyword research, optimization wizard, position tracking, semantic clusters) require a license.
-
Do I need an Anthropic account?
-
No. With an active license, AI is included in your subscription — no Anthropic account or API key required. A monthly token allowance covers both satellite-page generation and the other AI features; the settings show your remaining usage as “≈ N pages left”.
If you prefer unlimited usage, you can optionally add your own Anthropic API key (create one at console.anthropic.com). Requests then go directly to Anthropic and are billed on your account — Claude Haiku costs roughly $1 per million input tokens and $5 per million output tokens (a few cents per analysis).
-
Does it work with my page builder?
-
Yes. SEO AI Master extracts content from pages built with Oxygen Builder, Elementor, Beaver Builder, WPBakery and the Gutenberg editor by fetching the rendered page — exactly what Google sees.
-
Is my data sent to third-party servers?
-
Only if you configure the API keys. See the “External Services” section above for full details. No data is ever sent without your explicit action.
-
Is Google Search Console required?
-
No. The GSC connection is optional. Without it, you can still use AI analysis, keyword research and position tracking via Serper.dev.
-
What happens when I uninstall?
-
Your data (analyses, keywords, positions) is kept in the database. To delete it permanently, enable the “Clean uninstall” option in the plugin settings before uninstalling.
-
Why does my license need to be verified?
-
License verification is done against our server to prevent unauthorized use and to ensure that only valid license holders have access to premium features. The only data sent is your license key and your site URL.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“SAM Optirank” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “SAM Optirank” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.8.2
- Fix: la navigation de cocon (liens vers les satellites, injectés automatiquement en bas de page) ne s’affichait plus pendant l’essai gratuit. Elle s’affiche désormais dès que l’IA est utilisable (essai OU licence) et ne disparaît qu’une fois l’essai terminé / la licence invalide
1.8.1
- Fix: la recherche de mots-clés par IA était bloquée pendant l’essai gratuit (gate licence) — elle est désormais accessible durant l’essai tant qu’il reste des tokens, comme les autres fonctions IA
1.8.0
- New: essai gratuit de l’IA sans licence — un crédit de découverte est accordé automatiquement à la première utilisation (géré côté serveur, par domaine, non réinitialisable par réinstallation)
- New: jauge « Essai gratuit » dans Réglages et dans « Mon utilisation », avec invitation à s’abonner
- Change: les pages piliers proposées dans le Cocon sont désormais limitées aux pages présentes dans les menus WordPress (les plus pertinentes) ; la page courante reste sélectionnable via la barre d’administration
- Change: quand l’abonnement/essai s’arrête, la navigation de cocon (liens vers les satellites) n’est plus affichée — les pages satellites restent publiées et réapparaissent à la réactivation
- Note: nécessite SAM License Manager 1.3.0+ côté serveur pour l’essai gratuit
1.7.11
- Fix: le compteur de tokens ne bougeait jamais après un appel IA — la réponse du proxy (clés quota/remaining/used) n’était pas lue par le plugin (qui attendait ai_quota/ai_remaining). La jauge se met désormais à jour à chaque utilisation de l’IA
- New: nouvelle page « 📊 Mon utilisation » dans le menu, qui affiche les tokens restants/consommés du mois et la liste des fonctions qui consomment des tokens
- Note: toutes les fonctions IA (analyse, corrections, mots-clés, méta en lot, cocon, rapports) sont bien décomptées du quota
1.7.10
- Fix: le Cocon Sémantique et l’Optimisation en lot fonctionnent désormais avec l’IA incluse dans l’abonnement (ils exigeaient à tort une clé API personnelle)
- Change: la jauge de quota affiche maintenant les tokens restants (« Il vous reste X tokens ») au lieu d’un nombre de pages — tout appel à l’IA (analyse, mots-clés, cocon, pages satellites) consomme des tokens
- Change: messages « Fonctionnalité Premium » plus clairs sur les fonctions IA pour les utilisateurs de la version gratuite (invitation à activer l’abonnement)
1.7.9
- Fix: la clé API Anthropic ne pouvait pas être supprimée (le champ vidé revenait après enregistrement) — la sauvegarde des réglages lisait les champs avec le mauvais préfixe ; tous les réglages sont désormais correctement enregistrés et une valeur vide efface bien l’option
1.7.8
- New: IA incluse dans l’abonnement — avec une licence active, toutes les fonctions IA (analyse, mots-clés, cocon, pages satellites) fonctionnent sans clé API, dans la limite d’un quota mensuel de tokens par licence
- New: jauge de quota dans les réglages, affichée sous la forme « ≈ N pages restantes » (le détail en tokens est masqué)
- New: possibilité d’ajouter sa propre clé API Anthropic pour un usage illimité (appel direct à Anthropic, facturé sur votre compte)
- Change: l’IA incluse passe par un proxy sur le serveur Groupe Coste qui relaie la requête à Anthropic et comptabilise les tokens (documenté dans « External Services »)
- Fix: tarif Claude Haiku corrigé dans la documentation (~1 €/M tokens en entrée, ~5 €/M en sortie)
1.7.7
- New: Cocon Sémantique — ajout manuel de mots-clés cibles même quand la page pilier n’en a aucun enregistré (bouton « Ajouter un mot-clé »)
- Fix: l’aperçu du Cocon ne renvoie plus une erreur bloquante quand aucun mot-clé n’est trouvé
- Hardening: l’aperçu du Cocon renvoie désormais les erreurs PHP de façon lisible au lieu d’un échec silencieux
1.7.6
- Fix (WP.org): prefixes
sam_(3 chars) renamed tosamo_(4 chars) across all hooks, options, transients and AJAX actions — required by WordPress.org guidelines; automatic DB migration on update (options renamed, old cron events cleared) - Fix (WP.org): inline
<style>tag replaced bywp_add_inline_style()for satellite pages CSS - Fix (WP.org): inline
<script>tags in keywords view replaced bywp_add_inline_script()in enqueue hook - Fix (WP.org):
JSON_UNESCAPED_SLASHESremoved from Schema.org JSON-LD output (prevents</script>injection risk) - Fix (WP.org): Unsplash API-terms URL (401) removed from readme.txt
- Backwards compat: shortcode
[sam_cluster_links]still works alongside new[samo_cluster_links]
1.7.5
- New: daily email digest — admin receives a summary of all pages published in the last 24h (satellites + manual), with keywords and links to the tracking dashboard
- New: Google SiteKit detected automatically — if installed, the email includes a direct link to its dashboard
- New: per-pillar drip publishing — instead of 1 satellite/day globally, publishes 1 satellite per pillar per day (10 piliers = up to 10 daily publishes, each on a different topic)
- New: “All pages keywords” view — new option in the Keywords tab to see every saved keyword across the entire site in one list, with the page title shown on each row
- Fix: cron position tracking timeout — daily sync now processes posts in batches of 20 per cron run (cursor-based), preventing PHP timeouts on large sites
- Fix: KPI counters (Top 3 / Top 10) now match the tracking list exactly — counter now queries the same deduplicated keyword source as the list
- Fix: Keywords tab no longer shows a blank panel when a page has keywords — proper “no keywords” message displayed; network errors surfaced with an alert
- Fix: keyword rename (pencil icon) now works correctly — JS handler was placed outside its binding function in a previous version
- Settings: new “Email Notifications” section with on/off toggle (enabled by default)
1.7.4
- New: optional Google Analytics 4 integration — enter your GA4 Measurement ID (G-XXXXXXXXXX) in the settings and the gtag.js tag is added to all public pages (loaded only when configured)
1.7.3
- Compatibility: tested up to WordPress 7.0
- Hardening: explicit unslash/sanitize of the bulk-delete request parameter
1.7.2
- Improvement: the publication mode (automatic vs manual) is now shown directly on the Semantic Cluster management page, not only in the post-generation report
- Improvement: in automatic mode, draft satellites show an “Queued (auto)” status and the manual “Publish” button is hidden to remove ambiguity
1.7.1
- Change: automatic satellite publishing is now enabled by default
- New: configurable publishing frequency (publish one page every N days) in Settings Semantic Cluster
- Improvement: the cluster generation report now clearly shows the active mode (automatic vs manual) and the chosen frequency
- Improvement: in automatic mode the manual “Publish” button is hidden to avoid confusion (a badge indicates the page is queued)
1.7.0
- New: optional Unsplash images automatically added to generated satellite pages (imported into the media library, with attribution)
- New: optional automatic “drip” publishing of satellite drafts — one page per day to keep a natural indexing pace
- New: “Publish” and “View draft” buttons directly in the cluster generation report
- New: black & white minimal design for satellite pages and cluster navigation (no forced accent color)
- Improvement: position tracking now runs in small batches with a progress bar — fixes PHP timeouts on sites with many pages
- Improvement: cluster navigation block collapses beyond 8 pages to keep pillar pages short
- Improvement: the cluster wizard now shows which title is used for generation (the WordPress title, not the on-screen H1) and lets you adjust it
- Privacy: the editor attribution link on the front-end is now strictly opt-in (disabled by default)
- Fix: fatal preg_replace() call with a missing argument during page heading extraction (PHP 8)
- Build: the license server code (server/) is now excluded from the distributed plugin via .distignore + build.sh
1.6.8
- Fix : sanitisation des données JSON ($_POST) avant json_decode — conformité WordPress.org
- Fix : CSS barre admin via wp_add_inline_style au lieu de balise inline
- Build : dossier server/ exclu du zip (code serveur de licences, non destiné à WordPress)
1.6.7
- Feature : barre d’admin contextuelle — boutons Analyser / Cocon / Mots-clés / Tracking au survol de la page courante
- Feature : score SEO affiché directement dans la barre (badge couleur A/B/C/D)
- Feature : auto-sélection de la page dans les vues Analyse et Cocon via sam_post_id
1.6.6
- Fix : résumé IA dans les rapports (ajout méthode generate_ai_report_summary)
- Fix : injection automatique du shortcode [sam_cluster_links] compatible Oxygen Builder
- Fix : CSS admin chargé sur toutes les pages du plugin
- Fix : préfixe des hooks de page corrigé (sam-optirank_page_)
- Fix : HMAC secret licence restauré
- Fix : hook widgets_init pointait vers ancienne fonction
1.6.0
- Fix: all PHP class names, constants and functions renamed to SAMO_ prefix (4-char prefix — WordPress.org compliance)
- Fix: text domain updated from seo-ai-master to sam-optirank throughout all 487 occurrences
- Fix: all unescaped outputs in tracking view wrapped with esc_html()
- Fix: LocalBusiness JSON-LD now output via wp_json_encode() instead of raw echo
- Fix: JSON_UNESCAPED_SLASHES removed from update_option and update_post_meta calls
- Fix: load_plugin_textdomain() removed (WordPress.org auto-loads since WP 4.6)
- Fix: cluster nav CSS moved to enqueued stylesheet public/css/cluster.css (wp_enqueue compliance)
- Fix: inline styles added directly to HTML elements — guaranteed rendering regardless of theme
- Fix: Chart.js updated to v4.5.1
- Fix: SAM_FILE constant reference corrected to SAMO_PLUGIN_FILE in wp_enqueue_style call
1.5.9
- Fix: inline
<style>tag in tracking view moved to enqueued admin.css (wp_enqueue compliance) - Fix: removed JSON_UNESCAPED_SLASHES from JSON-LD output (security — prevents potential injection)
- Fix: Chart.js updated to v4.4.7
- Improvement: load_plugin_textdomain removed (WordPress.org auto-loads translations since WP 4.6)
- Improvement: External services fully documented in English (including license server)
1.5.8
- Fix: [sam_cluster_links] shortcode now detects satellite context and displays sibling pages + pilier link
- Improvement: complete redesign of the cluster navigation block
1.5.7
- Fix: satellite page CSS now loads via dual detection (meta flag OR content class) — covers pages created before v1.5.5
- Fix: stray tags in AI-generated satellite HTML content
1.5.6
- Fix: satellite CSS not loading — replaced get_the_ID() (returns 0 in wp_enqueue_scripts) with get_queried_object_id() in wp_head hook
1.5.5
- Fix: PHP E_PARSE error on line 675 of class-sam-claude-api.php (missing closing quote in $prompt string)
1.5.0
- New: Semantic Cluster — satellite page generation wizard (SEO AI Master Semantic Cluster)
- New: select a pillar page from analyzed pages, choose 1 to 20 satellite keywords
- New: Claude generates unique content per satellite (H1, 3 H2s, 500–700 words), meta tags, schema.org and contextual links to the pillar page
- New: automatic WordPress draft page creation with all SEO meta injected
- New: automatic internal linking — satellites link to the pillar page, pillarsatellite relationship stored in post_meta
- New: “Cluster SEO” widget (Appearance Widgets) — lists satellites in the footer to ensure Googlebot crawling
- New: [sam_cluster_links] shortcode — place in the pillar page to display its satellite list
1.4.2
- Fix:
<meta name="keywords">tag now includes all registered keywords (focus + primary + long-tail + local), max 20 - Fix:
keywordsfield in Schema.org JSON-LD now dynamically enriched with the full keyword list
1.4.0
- New: “Batch Optimization” wizard — select up to 5 pages, sequential AI analysis, review suggestions, apply in one click