Predictive SEO: volledige gids
Google Search Console koppelen, de AI-provider configureren, de voorspellingsmotor begrijpen en de gedetecteerde seizoenskansen benutten.
Overzicht
DataFirefly Predictive SEO koppelt uw PrestaShop aan Google Search Console, past een ingebouwde ML-voorspellingsmotor toe op de zoekgeschiedenis en identificeert automatisch de komende seizoenspieken. Voor elke gedetecteerde kans kunt u met één klik een gestructureerde contentbrief genereren via Mistral, OpenAI of Claude.
Vereisten
- PrestaShop 8.0+ of PrestaShop 9.x
- Minimaal PHP 8.1
- MySQL 5.7+ of MariaDB 10.3+
- Een Google-account met toegang tot de Search Console-property van de winkel
- Een API-sleutel van een AI-provider (Mistral, OpenAI of Anthropic; Mistral standaard, ongeveer 0,002 € per brief)
- Minimaal 60 tot 90 dagen GSC-geschiedenis voor betrouwbare voorspellingen
Installatie
Installatie vanuit de ZIP
- Download de ZIP
dfpredictiveseo.zipvanuit uw DataFirefly-klantzone. - Ga in de PrestaShop back-office naar Modules → Modulebeheer.
- Klik op Een module uploaden en sleep de ZIP erin.
- De module installeert automatisch, maakt de 7 tabellen
dfpseo_*aan, registreert de 6 tabbladen onder IMPROVE en genereert een uniek crontoken. - Na de installatie vindt u de module in het menu Verbeteren → Predictive SEO.
upgrade-X.Y.Z.php automatisch. Gegevens en configuratie blijven behouden.Databaseschema
De installatie maakt 7 tabellen aan met het voorvoegsel dfpseo_:
dfpseo_keyword: gevolgde zoekwoorden vanuit GSCdfpseo_history: dagelijkse geschiedenis (vertoningen, klikken, CTR, positie)dfpseo_forecast: dagelijkse voorspellingen met betrouwbaarheidsintervallendfpseo_opportunity: gedetecteerde seizoenskansendfpseo_recommendation: door AI gegenereerde contentbriefsdfpseo_seasonality: seizoensindexen (weekdag × maand) per zoekwoorddfpseo_sync_log: logboek van de GSC-synchronisaties
Configuratie Google Search Console
De module gebruikt het standaard OAuth2-protocol. U maakt een OAuth Client aan in Google Cloud, plakt de gegevens in de instellingen en start de autorisatieflow via de knop Verbinden.
Stap 1: een Google Cloud-project aanmaken
- Ga naar console.cloud.google.com en log in met het Google-account dat toegang heeft tot uw Search Console-property.
- Klik op de projectkiezer linksboven en dan op Nieuw project.
- Noem het bijvoorbeeld DataFirefly Predictive SEO en maak het aan.
Stap 2: de Search Console API activeren
- Ga in het linkermenu naar APIs & Services → Bibliotheek.
- Zoek Search Console API en klik op Inschakelen.
Stap 3: het OAuth-toestemmingsscherm configureren
- Ga naar APIs & Services → OAuth-toestemmingsscherm.
- Gebruikerstype: Extern.
- Vul de appnaam, het support-e-mailadres en het geautoriseerde domein (uw winkel) in.
- Voeg bij Bereiken
https://www.googleapis.com/auth/webmasters.readonlytoe (alleen-lezen Search Console). - Voeg in testmodus uw e-mailadres toe bij Testgebruikers. U kunt later naar productie overschakelen zonder de module aan te passen.
Stap 4: de OAuth-client aanmaken
- Ga naar APIs & Services → Inloggegevens.
- Klik op Inloggegevens maken → OAuth-client-ID.
- Toepassingstype: Webtoepassing.
- Naam: vrij te kiezen (bijvoorbeeld Predictive SEO Production).
- Geautoriseerde redirect-URI: kopieer de URI die in de module-instellingen wordt getoond (Improve → Predictive SEO → Instellingen → Google Search Console → Redirect-URI). Formaat:
https://uw-winkel.com/module/dfpredictiveseo/settings/oauth_callback. - Klik op Maken: Google toont de
client_iden declient_secret.
Stap 5: de module verbinden
- Plak in de Predictive SEO-instellingen de
client_iden declient_secret. - Sla op.
- Klik op Verbinden met Google Search Console.
- U wordt doorgestuurd naar de Google-toestemmingspagina. Geef alleen-lezen-toegang.
- Terug in de back-office heeft de module het versleutelde
refresh_tokenopgeslagen en is ze klaar om te synchroniseren. - Selecteer vervolgens de te volgen Search Console-property in de dropdown (de module detecteert ze automatisch na de verbinding).
redirect_uri_mismatch.Configuratie van de AI-provider
De module ondersteunt 3 AI-providers om de contentbriefs te genereren. U hebt er slechts één nodig en u levert uw eigen API-sleutel van de gekozen provider: DataFirefly rekent geen enkele commissie op het gebruik.
Mistral (standaard, aanbevolen)
- Model:
mistral-small-latest - Indicatieve kostprijs: ongeveer 0,002 € per gegenereerde brief
- Sleutel aanmaken: console.mistral.ai → API Keys
- Plak de sleutel in Instellingen → AI-provider → Mistral API-sleutel
OpenAI
- Model:
gpt-4o-mini - Indicatieve kostprijs: ongeveer 0,005 € per brief
- Sleutel aanmaken: platform.openai.com → API keys
- Plak de sleutel in Instellingen → AI-provider → OpenAI API-sleutel
Anthropic (Claude)
- Model:
claude-3-5-haiku-latest - Indicatieve kostprijs: ongeveer 0,004 € per brief
- Sleutel aanmaken: console.anthropic.com → API Keys
- Plak de sleutel in Instellingen → AI-provider → Anthropic API-sleutel
Selecteer daarna de actieve provider in de dropdown Actieve AI-provider. Verandert u van provider, dan worden reeds gegenereerde briefs niet automatisch opnieuw gegenereerd.
Gegevenssynchronisatie
Eerste synchronisatie
Start na de GSC-verbinding een eerste handmatige synchronisatie: Instellingen → Synchronisatie starten. De module haalt de geschiedenis van de laatste 90 dagen op voor de geselecteerde property, tot 250.000 regels per sync, met de dimensies datum × zoekopdracht × pagina. De eerste sync kan 30 seconden tot 2 minuten duren, afhankelijk van het volume.
Dagelijkse cron
Stel voor automatische synchronisaties een dagelijkse cron in (aanbevolen: vroeg in de ochtend, 4-6 uur) die het beveiligde endpoint van de module aanroept.
De exacte URL en het token staan in Instellingen → Cron. Generiek formaat:
https://uw-winkel.com/module/dfpredictiveseo/cron/sync?token=UW_GEGENEREERDE_TOKEN
Voorbeeld van een crontabregel (Unix-cron):
0 5 * * * curl -s "https://uw-winkel.com/module/dfpredictiveseo/cron/sync?token=UW_TOKEN" > /dev/null 2>&1
DFPSEO_CRON_TOKEN). Is het gecompromitteerd, dan kunt u het regenereren via Instellingen → Crontoken regenereren.Pijplijn van een synchronisatie
Elke sync voert achtereenvolgens uit:
- GSC-pull over de laatste 90 glijdende dagen (dimensies datum/query/pagina)
- Invoegen/bijwerken in
dfpseo_keywordendfpseo_history - Herberekening van de seizoensindexen (per zoekwoord met voldoende geschiedenis)
- Generatie van de forecasts over de ingestelde horizon
- Detectie van kansen in het toekomstige venster
- Log in
dfpseo_sync_log
Dashboard
Het dashboard (Improve → Predictive SEO → Dashboard) bundelt de kernindicatoren:
- 4 KPI-kaarten: gevolgde zoekwoorden, komende kansen, voorspelde klikken over 14 dagen, laatste GSC-sync
- Hoofdgrafiek: geaggregeerde historische curve (90 dagen) + forecast (ingestelde horizon, standaard 30 dagen), met 95 %-betrouwbaarheidsband
- Topkansen: de 10 volgende seizoenspieken gesorteerd op score
- Synclogboek: de 5 laatste synchronisaties met hun status
Verbindingsstatus
Twee badges bovenaan het dashboard tonen de staat van de integraties: GSC verbonden (groen/rood) en AI-provider geconfigureerd (groen/rood). Is een van beide rood, volg dan de directe link naar de bijbehorende instellingen.
Zoekwoorden en voorspellingen
Zoekwoordenlijst
Het tabblad Zoekwoorden toont de native PrestaShop-grid met alle gesynchroniseerde zoekopdrachten. Kolommen: zoekopdracht, landingspagina, vertoningen 30 d, klikken 30 d, CTR, gemiddelde positie, laatste update. U kunt filteren, sorteren en exporteren.
Detailweergave per zoekwoord
Een klik op een zoekwoord opent zijn fiche:
- Individuele historische curve + eigen forecast
- 95 %-betrouwbaarheidsinterval rond de voorspelling
- Seizoensheatmap 12 × 7 (maand × weekdag)
- Berekende seizoensindexen
- Lijst van kansen gekoppeld aan dit zoekwoord
Seizoensheatmap
De heatmap visualiseert de multiplicatieve seizoensindexen. Lezing:
- Cel op 1,00 → gemiddeld verkeer op deze combinatie maand × dag
- Cel op 1,50 → verkeer 50 % boven het gemiddelde (seizoenspiek)
- Cel op 0,60 → verkeer 40 % onder het gemiddelde (dal)
De cellen kleuren van lichtblauw (dal) naar diepblauw en roodoranje (piek). Eén blik volstaat om de te benutten weken te spotten.
Seizoenskansen
Automatische detectie
Een kans wordt gedetecteerd wanneer, binnen een toekomstig venster van 14 dagen (instelbaar via DFPSEO_OPPORTUNITY_LOOKAHEAD_DAYS):
- De voorspelling de baseline van het zoekwoord × 1,25 overschrijdt (piekdrempel)
- EN de seizoensindex van de combinatie maand × dag hoger is dan 1,10
Aaneengesloten pieken (gat ≤ 2 dagen) worden samengevoegd tot één kans die het volledige venster dekt.
Kansscore
De score combineert drie factoren:
score = verwachte_klikken × lift × betrouwbaarheid
verwachte_klikken: som van de voorspelde klikken over het vensterlift: verhouding piek / baselinebetrouwbaarheid: breedte van het voorspellingsinterval (hoe smaller het interval, hoe hoger de score)
Een score > 80 wijst op een kans met hoog potentieel en sterk seizoenssignaal. Een score 40-80 duidt op een gematigde kans. Onder 40 is het signaal te zwak of te onzeker om prioritaire actie te rechtvaardigen.
Kansworkflow
Elke kans heeft een status:
- Nieuw: net gedetecteerd, in afwachting van een beslissing
- In behandeling: er is een brief gegenereerd, redactioneel werk loopt
- Behandeld: content gepubliceerd, kans benut
- Genegeerd: beslissing om niet te behandelen (vals positief, buiten de strategie)
AI-aanbevelingen
Een brief genereren
Klik vanuit eender welke kans op Brief genereren. De module stuurt een verzoek naar de actieve AI-provider met de context van het zoekwoord (volume, seizoensgebondenheid, huidige positie, betrokken pagina) en ontvangt een gestructureerde JSON-brief met:
- summary: strategische samenvatting van de brief
- meta_description: kant-en-klare SEO-metabeschrijving (150-160 tekens)
- search_intent: dominante zoekintentie (informationeel / transactioneel / navigationeel / commercieel)
- outline: gedetailleerd h1/h2/h3-plan van het artikel of de pagina
- keywords_to_include: op te nemen semantische zoekwoorden
- internal_links: suggesties voor interne links naar andere pagina’s van de site
- rationale: strategische onderbouwing van de aanbeveling
De generatie duurt 1 tot 3 seconden, afhankelijk van de provider.
Goedkeuringsworkflow
Elke brief doorloopt de statussen:
- Pending: gegenereerd, in afwachting van review
- Approved: goedgekeurd voor redactie
- Published: content online gezet (handmatig te markeren)
- Rejected: geweigerd (brief van slechte kwaliteit of naast de kwestie)
- Draft: in bewerking
De workflow laat u een helder spoor bijhouden van wat is behandeld.
Technische architectuur
Stack
- PSR-4-architectuur, namespace
DfPredictiveSeo→src/ - Symfony-controllers die
FrameworkBundleAdminControlleruitbreiden - Doctrine DBAL-repositories (geen ObjectModel)
- GSC rechtstreeks in REST benaderd via cURL + OAuth2 (geen
google/apiclient, om licht te blijven) - Geen enkele verplichte Composer-afhankelijkheid bij de installatie (ingebouwde PSR-4-autoloader)
ML-pijplijn
- Multiplicatieve seizoensdecompositie: weekdag- en maandindexen berekend via een gecentreerd voortschrijdend gemiddelde van 28 dagen en een getrimd gemiddelde van 10 %
- OLS-regressie op
log(vertoningen+1)om de log-lineaire trend te modelleren - Forecast:
exp(voorspelling_log) × seizoensindex_dag × seizoensindex_maand - 95 %-intervallen: Student-benadering op de residuele fout van de regressie, geleidelijk breder met de horizon
Cron-endpoint
Het endpoint is publiek maar beschermd door een token. Voorbeeld in PHP voor een programmatische aanroep:
$token = 'uw_cron_token';
$url = 'https://uw-winkel.com/module/dfpredictiveseo/cron/sync?token=' . $token;
$response = file_get_contents($url);
$data = json_decode($response, true);
// $data['status'] = 'ok' | 'error'
// $data['keywords_synced'] = aantal bijgewerkte zoekwoorden
// $data['opportunities_detected'] = aantal nieuw gedetecteerde kansen
Configuratievariabelen
De module bewaart 18 configuratiesleutels in de tabel ps_configuration:
DFPSEO_GSC_CLIENT_ID,DFPSEO_GSC_CLIENT_SECRET,DFPSEO_GSC_REFRESH_TOKEN(versleuteld),DFPSEO_GSC_PROPERTYDFPSEO_AI_PROVIDER,DFPSEO_AI_MISTRAL_KEY,DFPSEO_AI_OPENAI_KEY,DFPSEO_AI_ANTHROPIC_KEYDFPSEO_FORECAST_HORIZON_DAYS(standaard: 30)DFPSEO_OPPORTUNITY_LOOKAHEAD_DAYS(standaard: 14)DFPSEO_PEAK_THRESHOLD(standaard: 1.25)DFPSEO_SEASONAL_THRESHOLD(standaard: 1.10)DFPSEO_CRON_TOKEN(gegenereerd bij de installatie)DFPSEO_LAST_SYNC,DFPSEO_LAST_FORECAST
Probleemoplossing
Fout redirect_uri_mismatch bij de GSC-verbinding
De redirect-URI in Google Cloud komt niet exact overeen met die welke de module verwacht. Controleer:
- Protocol:
https://en niethttp:// - Geen trailing slash:
...oauth_callbacken niet...oauth_callback/ - Subdomein:
www.of niet, afhankelijk van uw winkel, moet matchen
De GSC-sync levert geen enkel zoekwoord op
- Controleer of de geselecteerde property in de instellingen wel degene is die SEO-verkeer ontvangt (en geen lege domain property)
- Controleer of het verbonden Google-account eigenaar of geautoriseerde gebruiker is op die property
- De property moet minstens enkele dagen geïndexeerde geschiedenis hebben (Google Search Console publiceert de gegevens met 2-3 dagen vertraging)
De voorspellingen lijken weinig betrouwbaar
- Controleer of u minstens 60-90 dagen geschiedenis hebt. Daaronder kunnen de seizoensindexen niet correct worden geschat
- Voor grillige zoekwoorden (weinig signaal, veel ruis) wordt de breedte van het 95 %-interval bewust vergroot: de module toont expliciet een lage betrouwbaarheid
- Voor preciezere voorspellingen over langere horizonten (60-90 dagen) wacht u tot u 6-12 maanden geschiedenis hebt opgebouwd. De motor verbetert met de tijd
Het cron-endpoint geeft een 403-fout terug
Het token in de querystring komt niet overeen met DFPSEO_CRON_TOKEN. Controleer de exacte waarde in Instellingen → Cron. Regenereer bij twijfel het token en werk uw crontab bij.
De AI-brief wordt niet gegenereerd
- Controleer of u een geldige API-sleutel voor de geselecteerde actieve provider hebt geplakt
- Controleer uw saldo op de console van de provider (Mistral, OpenAI of Anthropic)
- Geeft de provider een rate-limit-fout terug, wacht dan enkele minuten en probeer opnieuw
- Gegenereerde briefs worden opgeslagen in
dfpseo_recommendation; bij een fout wordt die ook in deze tabel gelogd met de statuserror
FAQ
Werkt de module zonder Google Search Console?
Nee, GSC is de primaire gegevensbron. De module heeft minimaal 60 tot 90 dagen geschiedenis nodig om betrouwbare voorspellingen te maken en de seizoensgebondenheid te berekenen. Is uw winkel net gelanceerd, wacht dan tot u minstens 2 maanden geïndexeerde gegevens hebt voordat u de module installeert.
Hoeveel kost een AI-brief?
Dat hangt af van de gekozen provider. Met Mistral (standaard) rekent u ongeveer 0,002 € per brief. OpenAI GPT-4o-mini rond de 0,005 €. Claude Haiku rond de 0,004 €. U levert uw eigen API-sleutel en betaalt rechtstreeks aan de provider: DataFirefly rekent geen commissie.
Hoeveel zoekwoorden kan de module volgen?
Er is geen hard gecodeerde limiet. Een standaardsync haalt tot 250.000 regels (datum × query × pagina) per aanroep op, wat vrijwel alle winkels dekt. Daarboven verhoogt u het PHP-geheugen dat aan de cronworker is toegewezen.
Is de module compatibel met andere SEO-modules?
Ja, Predictive SEO schrijft nooit naar productpagina’s of meta’s: ze leest alleen GSC en produceert aanbevelingen. Ze is volledig compatibel met alle bestaande SEO-modules (van DataFirefly of derden).
Worden mijn GSC-gegevens bij DataFirefly opgeslagen?
Nee. Alle gegevens blijven op uw server, in uw PrestaShop-database. De module roept de Google API rechtstreeks aan met uw OAuth-gegevens, en de AI-providers rechtstreeks met uw API-sleutel. Geen enkel gegeven passeert langs de servers van DataFirefly.
Welke voorspellingshorizon is het betrouwbaarst?
De horizon 7-14 dagen is zeer betrouwbaar (smal 95 %-interval). De horizon 30-60 dagen is indicatief (verbreed interval). Boven 90 dagen worden de voorspellingen weinig bruikbaar voor operationele beslissingen: de module berekent ze wel maar toont een lage betrouwbaarheid.