Google Indexing API voor Magento 2
Hiervoor zijn wijzigingen in het sjabloon nodig
Nee
Kleine wijzigingen
Belangrijke wijzigingen
Kennis van programmeren is vereist
Nee
Basis
Geavanceerd
Moeilijkheden bij de configuratie
Gevolgen voor de prestaties
Compatibilidad con los estándares de Magento
Google sneller informeren over wijzigingen in de winkel
De module Kowal Google Indexing API voor Magento 2 helpt om URL-adressen die zijn toegevoegd, gewijzigd of uit de index moeten worden verwijderd efficiënter bij Google aan te melden. In plaats van uitsluitend te wachten op het standaard opnieuw bezoeken van de pagina door de Google-bot, kan de beheerder geselecteerde adressen doorgeven aan een wachtrij die door Google Indexing API wordt verwerkt.
De oplossing is bijzonder nuttig in winkels waar content, het aanbod, productbeschikbaarheid, CMS-pagina's, landing pages of blogartikelen vaak veranderen. De module ordent het hele proces: verzamelt adressen uit verschillende plaatsen in Magento, controleert ze, verwijdert duplicaten, bewaakt limieten en slaat de communicatiegeschiedenis met Google op.
Google Indexing API is officieel voornamelijk bedoeld voor pagina's met gestructureerde gegevens
JobPostingenBroadcastEvent. Het aanmelden van een URL via de API garandeert geen indexatie, positie in de resultaten of acceptatie van elk adres door Google. De module is een hulpmiddel dat de technische aanmelding van URL's ondersteunt en geen vervanging voor correcte technische SEO, sitemap XML, canonical-tags, robots, hreflang en interne linking.
Belangrijkste voordelen
Betere controle over het aanmelden van adressen
De module geeft de beheerder één plek om URL's te beheren die wachten om naar Google te worden verzonden. Producten, categorieën, CMS-pagina's, handmatige URL-import en toekomstige bronnen kunnen dezelfde wachtrij gebruiken. Daardoor is het niet nodig om aparte integraties voor elk contenttype te bouwen.
Minder handmatig werk na wijzigingen in de winkel
Adressen kunnen rechtstreeks vanuit het Magento-beheerpaneel aan de wachtrij worden toegevoegd. De module biedt mass actions en knoppen op de bewerkingsschermen van geselecteerde entiteiten, zodat de beheerder snel indexatie voor een enkele pagina of een grotere groep adressen kan starten.
Veiliger gebruik van API-limieten
Google Indexing API werkt met limieten. De module houdt rekening met dag- en minuutlimieten, de batchgrootte die door cron wordt verwerkt en de verzendvertraging. Daardoor worden adressen niet chaotisch verzonden en is het eenvoudiger om het risico op onnodig verbruik van de beschikbare limiet te beperken.
Minder duplicaten en herhaalde aanmeldingen
Voordat een adres wordt opgeslagen, normaliseert de module de URL, valideert deze en controleert of hetzelfde adres niet al in de actieve wachtrij staat. Als een soortgelijke aanmelding al bestaat, kan het systeem deze bijwerken of als gededupliceerd markeren. Dit beperkt rommel in de wachtrij en vermindert het aantal onnodige requests naar Google.
Meer transparantie voor het team
Elke aanmelding heeft een status, bron, actie, prioriteit, aantal pogingen, geplande verzenddatum en informatie over de reactie van Google. De beheerder ziet welke adressen wachten, welke correct zijn verzonden, welke opnieuw moeten worden geprobeerd en welke met een permanente fout zijn geëindigd.
Eenvoudigere probleemdiagnose
De module slaat logs op van de communicatie met Google API, inclusief requesttype, endpoint-adres, payload, HTTP-status, inhoud van de reactie en duur. Dit vergemakkelijkt de analyse van fouten aan de kant van configuratie, rechten, limieten of de aangemelde URL's zelf.
Klaar voor de groei van de winkel
De architectuur van de module is gebaseerd op een gemeenschappelijke scheduler en wachtrij. Nieuwe URL-bronnen hoeven niet rechtstreeks met Google te communiceren. Het volstaat dat ze adressen aan de wachtrij doorgeven en de bestaande processor verzorgt validatie, planning, limieten, retries en logging.
Hoe de module in de praktijk werkt
De module werkt als een tussenlaag tussen Magento en Google Indexing API.
- De beheerder of integratie selecteert URL-adressen om aan te melden.
- De module normaliseert en valideert URL's, onder andere op schema, host en toegestane bronnen.
- Correcte adressen komen in een centrale wachtrij terecht met de juiste status, actie en verzenddatum.
- Magento cron haalt periodiek records op die klaar zijn om te worden verwerkt.
- De wachtrijprocessor respecteert limieten, prioriteiten, vertragingen en record locks.
- De module verstuurt de aanmelding naar Google Indexing API of voert verwerking uit in dry-run-modus.
- De reactie van Google wordt opgeslagen bij het wachtrijrecord en in de API-logs.
- Bij tijdelijke fouten kan de module een nieuwe poging met vertraging inplannen.
Daardoor hangt het verzenden van URL's niet af van één enkele klik of van een directe request vanuit het beheerpaneel. Het hele proces is queued, auditbaar en beter bestand tegen tijdelijke API-problemen.
Belangrijkste functies
- centrale URL-wachtrij voor verschillende contentbronnen,
- ondersteuning voor de acties
URL_UPDATEDenURL_DELETED, - handmatige import van meerdere URL's vanuit het beheerpaneel,
- mass actions voor producten en CMS-pagina's,
- knoppen voor indexatie-aanmelding op de bewerkingsschermen van product, categorie en CMS-pagina,
- optionele integratie met Amasty Blog als aparte module,
- normalisatie en validatie van URL-adressen,
- whitelist van toegestane hosts,
- ondersteuning voor store view en identificatie van de bron van de aanmelding,
- deduplicatie van actieve aanmeldingen,
- verzendvertraging, oftewel indexing lag,
- prioriteiten en de actie
Transmit Now, - verwerking via cron,
- controle van dag- en minuutlimieten,
- retry van tijdelijke fouten met vertraging,
- wachtrijstatussen:
scheduled,pending,processing,success,retry,failed_permanent,cancelled, - dry-run-modus voor veilige tests zonder echte requests te verzenden,
- API-logs en logretentie,
- test credentials en metadata in de configuratieassistent.
Voor wie deze module bedoeld is
De module is geschikt voor Magento 2-webshops die:
- hun productaanbod vaak bijwerken,
- veel CMS-pagina's publiceren of wijzigen,
- SEO-activiteiten uitvoeren op meerdere contenttypes,
- controle nodig hebben over welke URL's bij Google zijn aangemeld,
- handmatig beheer van aanmeldingen willen beperken,
- werken in een multistore- of meertalige omgeving,
- een duidelijke audit van requests naar Google nodig hebben.
Deze oplossing is vooral waardevol voor e-commerce-, SEO- en beheerteams die één gezamenlijk en gestructureerd proces willen hebben voor het melden van wijzigingen in de webshop aan Google.
Voorbeeldtoepassingen
Nieuwe of gewijzigde producten
Na het toevoegen van een nieuw product of een belangrijke wijziging van een bestaand product kan de beheerder het adres aan de wachtrij doorgeven. De module zorgt voor het opslaan van de aanmelding, de juiste vertraging, deduplicatie en latere verzending.
Bijwerken van CMS-pagina's en landing pages
Wanneer het marketingteam een nieuwe campagne, promotie of informatiepagina publiceert, kan de URL aan de wachtrij worden toegevoegd zonder handmatig werk buiten Magento.
Adressen opschonen na wijzigingen op de site
De module ondersteunt niet alleen update-aanmeldingen, maar ook de actie URL_DELETED. Daardoor kunt u Google informeren over adressen die uit de index moeten worden verwijderd, mits het scenario in overeenstemming is met de regels voor het gebruik van de API.
Grootschalige SEO-acties
Bij grotere wijzigingen in de webshop, zoals het bijwerken van veel producten, contentmigratie of het vernieuwen van categorieën, kan de beheerder mass actions gebruiken en de voortgang in de wachtrij volgen.
Zakelijk effect
De implementatie van de module geeft het team meer controle over het technisch aanmelden van wijzigingen bij Google. In plaats van verspreide, handmatige en moeilijk verifieerbare acties ontstaat één proces: het adres komt in de wachtrij, doorloopt validatie, wordt met respect voor limieten verzonden en het resultaat is zichtbaar in het beheerpaneel.
De belangrijkste waarde van de module is het structureren van het werk rond indexatie: minder willekeurige requests, minder duplicaten, betere diagnose en duidelijkere verantwoordelijkheid voor wat bij Google is aangemeld.
Google Indexing API voor Magento 2 - installatie en configuratie
1. Belangrijke informatie vóór implementatie
De module integreert Magento 2 met Google Indexing API en maakt het mogelijk URL-adressen toe te voegen aan een centrale aanmeldingswachtrij. De wachtrij wordt verwerkt door Magento cron en elke aanmelding wordt gevalideerd, gededupliceerd, onder limieten geplaatst en gelogd.
Volgens de documentatie van Google is Indexing API officieel in de eerste plaats bedoeld voor pagina's met gestructureerde gegevens:
JobPosting,BroadcastEventingebed inVideoObject.
Het gebruik van de API voor producten, categorieën, CMS-pagina's of blogartikelen garandeert geen indexatie of positie in de zoekresultaten. De module moet worden behandeld als een technisch hulpmiddel voor het aanmelden van URL's en niet als vervanging voor sitemap XML, correcte canonical-tags, robots, hreflang, interne linking en de algemene SEO-kwaliteit.
Officiële Google-materialen:
- https://developers.google.com/search/apis/indexing-api/v3/quickstart
- https://developers.google.com/search/apis/indexing-api/v3/prereqs
- https://developers.google.com/search/apis/indexing-api/v3/using-api
- https://developers.google.com/search/apis/indexing-api/v3/quota-pricing
2. Vereisten
Controleer vóór de installatie of de omgeving aan de vereisten voldoet:
- Magento 2.4.x,
- PHP 8.1 of nieuwer,
- Composer,
- werkende Magento cron,
- mogelijkheid om het pakket
google/apiclientte installeren, - beheerderstoegang tot Magento,
- Google Cloud-project met ingeschakelde Indexing API,
- property in Google Search Console geverifieerd voor het domein van de webshop,
- Google-serviceaccount toegevoegd als eigenaar in Google Search Console.
De module vereist het pakket:
google/apiclient:^2.16Het pakket is gedeclareerd in composer.json van de module, dus Composer zou het automatisch moeten installeren.
3. Installatie van de module
3.1. Installatie via Composer vanuit een VCS-repository
Als de module wordt geïnstalleerd vanuit een private of publieke Git-repository, voeg dan de repository toe aan het Magento-project:
composer config repositories.kowal.google.indexing.api vcs https://github.com/kowalco/google-indexing-apiAls de repository privé is, configureer dan een GitHub-token:
composer config --global --auth github-oauth.github.com Installeer het pakket:
composer require kowal/module-google-indexing-apiActiveer de module:
bin/magento module:enable Kowal_GoogleIndexingApiVoer de update van het databaseschema uit:
bin/magento setup:upgradeLeeg de cache:
bin/magento cache:flushVoer in productiemodus bovendien het volgende uit:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.2. Lokale installatie in app/code
Als de module zonder Composer als lokale code wordt geïnstalleerd, plaats deze dan in de map:
app/code/Kowal/GoogleIndexingApiInstalleer vervolgens de afhankelijkheid Google API Client in het Magento-project:
composer require google/apiclient:^2.16Activeer de module en voer de standaard Magento-commando's uit:
bin/magento module:enable Kowal_GoogleIndexingApibin/magento setup:upgradebin/magento cache:flushVoor productie:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.3. Verificatie van de installatie
Controleer of de module actief is:
bin/magento module:status Kowal_GoogleIndexingApiNa een correcte installatie moeten in het beheerpaneel beschikbaar zijn:
Stores > Configuration > Kowal > Google Indexing API,- beheermenu
Google Indexing API > Indexing Queue, Google Indexing API > Import URLs,Google Indexing API > API Logs,Google Indexing API > Setup Assistant.
In de database moeten de volgende tabellen zijn aangemaakt:
kowal_google_indexing_queue,kowal_google_indexing_api_log.
4. Voorbereiding van Google Cloud en Search Console
4.1. Een Google Cloud-project aanmaken
- Ga naar Google Cloud Console.
- Maak een nieuw project aan of kies een bestaand project dat voor de webshop wordt gebruikt.
- Schakel de API in:
Indexing APIZonder ingeschakelde API kan de module aanmeldingen niet correct verzenden.
4.2. Een serviceaccount aanmaken
- Ga in Google Cloud naar
IAM & Admin > Service Accounts. - Maak een nieuw serviceaccount aan.
- Genereer een sleutel in JSON-formaat.
- Download het JSON-bestand en bewaar het veilig.
De module vereist dat de JSON ten minste de velden bevat:
type,project_id,private_key,client_email.
Het veld type moet de waarde hebben:
service_account4.3. Het serviceaccount als eigenaar toevoegen in Search Console
- Open Google Search Console.
- Selecteer de property die overeenkomt met het domein van de webshop.
- Zorg ervoor dat de property is geverifieerd.
- Voeg het adres
client_emailuit het JSON-bestand toe als eigenaar van de property.
Voorbeeld van een serviceaccountadres:
my-service-account@project-name.iam.gserviceaccount.comAls het serviceaccount geen eigenaar is van de Search Console-property, kan Google rechtenfouten retourneren, bijvoorbeeld een ontbrekende bevestiging van eigendom van de URL.
5. Configuratie van de module in Magento
De configuratie bevindt zich in:
Stores > Configuration > Kowal > Google Indexing APIDe configuratie ondersteunt Magento-scopes:
- Default Config,
- Website,
- Store View.
Daardoor kunnen er aparte instellingen zijn voor verschillende winkels of store views, als het project dat vereist.
6. Sectie General
Enable
Standaard:
NoSchakelt de werking van de module in of uit.
Wanneer het veld de waarde No heeft, verwerkt cron de wachtrij niet. Adressen kunnen in de database bestaan, maar de wachtrijprocessor zal ze niet naar Google verzenden.
Aanbeveling:
- zet tijdens de eerste configuratie
Noof laatDry Run = Yesstaan, - zet na succesvolle tests
Yes.
Dry Run
Standaard:
YesTestmodus. Wanneer Dry Run is ingeschakeld, verwerkt de module wachtrijrecords, slaat statussen en logs op, maar verzendt geen echte aanmelding naar Google.
Dit is de veiligste modus voor de eerste start, configuratietests en controle of URL's zoals verwacht in de wachtrij terechtkomen.
Aanbeveling:
- voer de eerste tests altijd uit met
Dry Run = Yes, - schakel
Dry Runpas uit na controle van credentials, allowed hosts, wachtrij en logs.
7. Sectie Google Access Credentials
Credentials Source
Standaard:
Encrypted configuration valueBepaalt waar de module de JSON van het Google-serviceaccount vandaan haalt.
Beschikbare opties:
| Optie | Technische waarde | Beschrijving |
|---|---|---|
Encrypted configuration value | config | De JSON wordt in de Magento-configuratie geplakt en opgeslagen als een versleutelde sensitive config-waarde. |
Uploaded JSON file | file | De JSON wordt als bestand geüpload en buiten de map pub opgeslagen, in var/google-indexing. |
Aanbeveling:
- voor eenvoudige implementaties kan een versleutelde waarde in de configuratie worden gebruikt,
- voor omgevingen met toegangscontrole tot bestanden kan het uploaden van een JSON-bestand handiger zijn.
Service Account JSON
Zichtbaar wanneer Credentials Source = Encrypted configuration value.
In dit veld moet de volledige inhoud van het JSON-bestand van het Google-serviceaccount worden geplakt.
De module valideert de JSON vóór het opslaan. Gecontroleerd worden:
- correctheid van het JSON-formaat,
- aanwezigheid van de velden
type,project_id,private_key,client_email, - de waarde
type = service_account.
De waarde wordt opgeslagen als versleutelde Magento-configuratie.
Service Account JSON File
Zichtbaar wanneer Credentials Source = Uploaded JSON file.
Maakt het mogelijk een JSON-bestand van het Google-serviceaccount te uploaden.
De module:
- accepteert alleen bestanden met de extensie
.json, - valideert de inhoud van het bestand,
- controleert de vereiste velden
type,project_id,private_key,client_email, - slaat het bestand buiten de publieke map op, in
var/google-indexing, - probeert bestandsrechten op
0600te zetten, als de bestandsdriver dat toestaat.
Het bestand wordt opgeslagen met een naam die afhankelijk is van de configuratiescope, bijvoorbeeld voor de globale scope:
var/google-indexing/service-account-default-0.jsonGoogle Cloud Project ID
Tekstveld voor de identificatie van het Google Cloud-project.
In de huidige implementatie van de module is de hoofdautorisatie gebaseerd op de gegevens uit de JSON van het serviceaccount. Het veld Google Cloud Project ID heeft een informatieve functie en helpt de configuratie te structureren, vooral wanneer de webshop meerdere omgevingen of meerdere Google Cloud-projecten gebruikt.
Aanbeveling:
- voer de waarde
project_iduit het JSON-bestand in, - gebruik aparte Google Cloud-projecten voor productie- en testomgevingen als die scheiding in het project wordt toegepast.
8. Sectie Queue and Limits
Daily Publish Limit
Standaard:
200Bepaalt het maximale aantal publish-aanmeldingen dat de module per dag kan uitvoeren.
De limiter telt requests van het type:
publish,publish_dry_run.
Als de limiet is verbruikt, haalt de wachtrijprocessor geen volgende records meer op om te verzenden tot het volgende dagelijkse venster.
Aanbeveling:
- laat
200staan als het project gebruikmaakt van de standaard onboardinglimiet van Google, - verhoog de waarde alleen wanneer het Google Cloud-project een goedgekeurde hogere limiet heeft,
- de instelling
0blokkeert verzending, omdat het beschikbare aantal slots0zal zijn.
Requests Per Minute Limit
Standaard:
60Bepaalt het maximale aantal publish-requests per minuut.
De module vergelijkt deze waarde met het aantal requests dat in de logs van de laatste minuut is opgeslagen. Als de minuutlimiet is bereikt, verwerkt cron in die run geen volgende records.
Aanbeveling:
- laat voor een typische implementatie de standaardwaarde staan,
- verlaag de waarde als u de API conservatiever wilt belasten,
- stel
0niet in, tenzij u het verzenden tijdelijk wilt stoppen.
Cron Batch Size
Standaard:
20Bepaalt het maximale aantal wachtrijrecords dat in één cron-run wordt verwerkt.
Het werkelijke aantal verwerkte records wordt ook beperkt door:
Daily Publish Limit,Requests Per Minute Limit,- het aantal records dat klaar is om te verzenden,
- de status en datum
scheduled_at.
Aanbeveling:
20is een veilige startwaarde,- bij grote wachtrijen kan de waarde worden verhoogd, maar alleen rekening houdend met de limieten van Google.
Default Indexing Lag (minutes)
Standaard:
15Bepaalt de standaardvertraging tussen het toevoegen van een URL aan de wachtrij en het moment waarop deze kan worden verzonden.
De vertraging helpt om:
- duplicaten te beperken,
- verzending na elke kleine wijziging te vermijden,
- de beheerder tijd te geven om content te corrigeren,
- de API-limiet beter te beheren.
In de huidige implementatie wordt deze instelling gebruikt wanneer de aanmelding geen eigen vertraging heeft.
Manual Form Indexing Lag (minutes)
Standaard:
15Bepaalt de vertraging voor URL's die via het formulier zijn toegevoegd:
Google Indexing API > Import URLsAls de beheerder handmatig een lijst met URL's plakt, wordt elk correct adres met deze vertraging ingepland.
Aanbeveling:
- stel
0in als handmatige import direct in de wachtrij moet komen, - laat
15staan als u een buffer wilt behouden voor deduplicatie en controle van aanmeldingen.
Mass Action Indexing Lag (minutes)
Standaard:
15Bepaalt de vertraging voor URL's die zijn toegevoegd via:
- mass actions voor producten,
- mass actions voor CMS-pagina's,
- knoppen voor indexatie-aanmelding op de bewerkingsschermen van product, categorie en CMS-pagina.
Aanbeveling:
- laat voor bulkbewerkingen de waarde
15of hoger staan, - voor kleine winkels en handmatig beheer kan een lagere waarde worden overwogen.
Max Attempts
Standaard:
5Bepaalt het maximale aantal verzendpogingen voor één wachtrijrecord.
Als Google een tijdelijke fout retourneert, zet de module de status op retry, zolang het aantal pogingen lager is dan Max Attempts. Na overschrijding van de limiet krijgt het record de status failed_permanent.
Fouten die als tijdelijk worden behandeld:
408,409,412,429,500,502,503,504.
Retry Delay (minutes)
Standaard:
15Basisvertraging vóór de volgende verzendpoging na een tijdelijke fout.
Cron gebruikt een oplopende vertraging. De vermenigvuldigingsfactor hangt af van het aantal pogingen en is maximaal begrensd op 24. Daardoor worden volgende pogingen niet te agressief uitgevoerd.
Voorbeeld voor de waarde 15:
| Poging | Geschatte vertraging |
|---|---|
| 1 | 15 minuten |
| 2 | 30 minuten |
| 3 | 60 minuten |
| 4 | 120 minuten |
Allowed Source Types
Standaard:
manual,product,category,cms_page,amasty_blog_postLijst met toegestane brontypen, gescheiden door komma's.
Ondersteunde waarden:
| Waarde | Betekenis |
|---|---|
manual | URL handmatig toegevoegd via het importformulier. |
product | Product-URL. |
category | Categorie-URL. |
cms_page | CMS-pagina-URL. |
amasty_blog_post | URL van een Amasty Blog-artikel, als een aparte integratiemodule wordt gebruikt. |
Als een brontype niet in de lijst staat, slaat de scheduler de aanmelding over en markeert deze als skipped.
Aanbeveling:
- laat de standaardwaarden staan als de webshop alle standaardbronnen gebruikt,
- verwijder bronnen die u niet in de wachtrij wilt toelaten.
Allowed URL Hosts
Standaard:
leegLijst met toegestane URL-hosts, gescheiden door komma's.
Voorbeeld:
example.com,www.example.comAls de lijst is ingevuld, accepteert de module alleen adressen die tot de opgegeven hosts behoren. Als een URL een andere host heeft, retourneert de validatie de fout:
host_not_allowedAanbeveling:
- vul deze lijst in productie altijd in,
- voeg alle hosts toe die door de webshop worden gebruikt, bijvoorbeeld het hoofddomein, de
www-versie, store view-domeinen en taaldomeinen, - voeg geen testdomeinen toe aan de productieconfiguratie.
Require HTTPS URLs
Standaard:
YesForceert dat aangemelde URL-adressen het schema https gebruiken.
Als dit veld is ingeschakeld, wordt een adres met http afgewezen met de fout:
https_requiredAanbeveling:
- laat voor productiewebshops
Yesstaan, - gebruik
Noalleen in uitzonderlijke testomgevingen.
9. Sectie Auto-Indexing
Enable Auto-Indexing
Standaard:
NoDit veld is voorbereid voor automatische integraties voor het opslaan of verwijderen van entiteiten en aanvullende URL-providers.
In de huidige scope van de module zijn handmatige en administratieve mechanismen beschikbaar om URL's aan de wachtrij toe te voegen, waaronder URL-import, Mass Actions en knoppen op bewerkingsformulieren.
Aanbeveling:
- laat
Nostaan als auto-indexing niet in het project is geïmplementeerd, - schakel dit pas in wanneer het project ondersteuning bevat voor automatische entiteitsgebeurtenissen die deze configuratie gebruiken.
10. Sectie Logs
API Log Retention Days
Standaard:
90Bepaalt het aantal dagen dat API-logs worden bewaard.
De cron die logs opschoont, draait dagelijks om:
03:15Hij verwijdert items die ouder zijn dan het aantal dagen dat in dit veld is ingesteld.
Aanbeveling:
90dagen is een redelijke waarde voor diagnose,- bij een groot aantal requests kan de retentie worden verlaagd,
- bij SEO-audits kan de retentie worden verhoogd, rekening houdend met de grootte van de logtabel.
11. Installatie- en configuratieassistent
De assistent bevindt zich in:
Google Indexing API > Setup AssistantHet doel ervan is om snel te controleren of de configuratie aan de Magento- en Google-zijde klaar is voor de eerste test.
11.1. Sectie Current Status
De assistent toont de huidige status van de belangrijkste elementen:
| Veld | Betekenis |
|---|---|
Module | Geeft aan of de module in de configuratie is ingeschakeld. |
Dry Run | Geeft aan of de testmodus zonder echte verzending naar Google actief is. |
Credentials | Toont of de module de Google-credentials kan lezen en parsen. |
Service Account Email | Toont client_email uit de JSON van het serviceaccount. Dit adres moet als eigenaar in Search Console worden toegevoegd. |
Allowed Hosts | Toont de lijst met hosts die in de configuratie zijn toegestaan. |
Queue | Toont het aantal records met de statussen scheduled, pending, retry en failed_permanent. |
Als Credentials de status Missing or invalid heeft, moet u teruggaan naar de configuratie en de JSON of het credentials-bestand corrigeren.
Als Allowed Hosts Not configured toont, beperkt de module geen hosts. Technisch kan dit werken, maar voor productie wordt aanbevolen de hosts van de webshop expliciet in te vullen.
11.2. Sectie Setup Steps
De assistent toont een lijst met stappen die nodig zijn vóór de eerste echte request:
- Een Google Cloud-project aanmaken of kiezen.
- Indexing API inschakelen en een JSON key voor het serviceaccount aanmaken.
- De JSON plakken of het JSON-bestand uploaden in de Magento-configuratie.
- Het service account email toevoegen als eigenaar in Google Search Console.
- Tests uitvoeren en vervolgens één URL importeren met
Dry Runingeschakeld.
De assistent bevat links naar:
- Google Cloud voor Indexing API,
- moduleconfiguratie in Magento,
- Google Search Console.
11.3. Test Google Credentials
De knop:
Test Google Credentialscontroleert of Magento de gegevens van het serviceaccount kan gebruiken om een OAuth-token te verkrijgen voor de scope:
https://www.googleapis.com/auth/indexingEen positief resultaat betekent dat:
- de JSON correct is,
- de private key kan worden gebruikt,
- Google een OAuth-token heeft uitgegeven.
Een negatief resultaat kan betekenen:
- onjuiste JSON,
- onjuiste of beschadigde
private_key, - ontbrekend vereist veld in de JSON,
- probleem met communicatie met Google,
- gebruik van een sleutel die geen serviceaccountsleutel is.
Deze test bevestigt nog niet dat het serviceaccount eigenaarsrechten heeft voor het domein in Search Console. Daarvoor is een URL metadata-test of een echte aanmelding van een test-URL nodig.
11.4. Test URL Metadata
Het formulier:
Test URL Metadatamaakt het mogelijk een publieke URL van een toegestane host in te voeren en een metadata-request uit te voeren naar Google Indexing API.
Vóór het verzenden van de request doet de module het volgende:
- normaliseert de URL,
- controleert of de URL absoluut is,
- controleert het schema
httpofhttps, - vereist bij ingeschakelde
Require HTTPS URLshet schemahttps, - controleert
Allowed URL Hostsals deze zijn geconfigureerd.
Mogelijke resultaten:
| Resultaat | Betekenis |
|---|---|
| Succes HTTP 2xx | Google retourneerde metadata voor de URL. |
| HTTP 404 | Betekent vaak dat de URL nog geen eerdere succesvolle aanmelding via Indexing API heeft gehad. Dit hoeft geen onjuiste configuratie te betekenen. |
| Validatiefout vóór de request | De URL voldoet niet aan de voorwaarden van de module, bijvoorbeeld verkeerde host, geen HTTPS of geen absoluut adres. |
| HTTP-fout anders dan 404 | Controleer het bericht van Google, Search Console-rechten, credentials en limieten. |
De metadata-test maakt geen nieuwe publish-aanmelding aan. Deze dient voor diagnose van de verbinding en de status van de URL.
12. Eerste start stap voor stap
Aanbevolen volgorde voor de eerste start:
- Installeer de module en voer
setup:upgradeuit. - Ga in Magento naar
Stores > Configuration > Kowal > Google Indexing API. - Zet
Enable = Yes. - Laat
Dry Run = Yesstaan. - Kies de bron van de credentials.
- Plak de JSON van het serviceaccount of upload het JSON-bestand.
- Vul
Google Cloud Project IDin met de waardeproject_iduit de JSON. - Vul
Allowed URL Hostsin, bijvoorbeeldexample.com,www.example.com. - Laat de standaardlimieten staan als Google geen hogere limieten heeft goedgekeurd.
- Sla de configuratie op en leeg de cache.
- Ga naar
Google Indexing API > Setup Assistant. - Controleer of de assistent de credentials als gereed toont.
- Klik op
Test Google Credentials. - Voeg het service account email toe als eigenaar in Google Search Console, als dit nog niet is gebeurd.
- Voer
Test URL Metadatauit voor een publieke URL van een toegestane host. - Ga naar
Google Indexing API > Import URLs. - Voeg één test-URL toe met de actie
URL_UPDATED. - Start Magento cron:
bin/magento cron:run- Controleer
Google Indexing API > Indexing Queue. - Controleer
Google Indexing API > API Logs. - Als alles correct werkt, schakel dan
Dry Runuit. - Voeg opnieuw één test-URL toe en controleer de echte reactie van Google.
13. URL-import vanuit het beheerpaneel
Handmatige import bevindt zich in:
Google Indexing API > Import URLsHet formulier bevat de velden:
| Veld | Beschrijving |
|---|---|
Action | Type aanmelding naar Google: toevoegen/bijwerken of verwijderen. |
Store View | Store view waaraan de aanmelding moet worden toegewezen. Er is ook een globale optie Use global/no store beschikbaar. |
URLs | Lijst met absolute URL's, één adres per regel. |
Beschikbare acties:
| Actie in formulier | API-waarde | Betekenis |
|---|---|---|
Submit URLs for indexing | URL_UPDATED | Informeert Google dat de URL is toegevoegd of bijgewerkt. |
Delete URLs from indexing | URL_DELETED | Informeert Google dat de URL is verwijderd en uit de index kan worden verwijderd. |
Na het verzenden van het formulier toont de module een samenvatting:
- toegevoegd,
- bijgewerkt,
- gededupliceerd,
- ongeldig,
- overgeslagen.
De eerste 10 validatiemeldingen worden als notice in het beheerpaneel getoond.
14. Indexatiewachtrij
De wachtrij bevindt zich in:
Google Indexing API > Indexing QueueElk wachtrijrecord bevat onder andere:
- URL,
- URL-hash,
- store ID,
- website ID,
- brontype,
- ID van de bronentiteit,
- herkomst van de request,
- actie
URL_UPDATEDofURL_DELETED, - status,
- prioriteit,
- aantal pogingen,
- maximaal aantal pogingen,
- geplande verzenddatum,
- verwerkingsdatum,
- laatste foutcode,
- laatste foutreden,
- laatste foutmelding,
- reactie van Google,
- informatie
created_by.
Wachtrijstatussen
| Status | Betekenis |
|---|---|
scheduled | De URL is ingepland, maar wacht nog op de datum scheduled_at. |
pending | De URL is klaar om door cron te worden verwerkt. |
processing | De URL wordt momenteel verwerkt. |
success | Google retourneerde een succesvolle reactie. |
retry | Er is een tijdelijke fout opgetreden en het record wacht op een volgende poging. |
failed_permanent | De verzending is permanent mislukt of het maximale aantal pogingen is overschreden. |
cancelled | Het record is handmatig geannuleerd. |
Acties op wachtrijrecords
| Actie | Werking |
|---|---|
Transmit Now | Markeert het record als urgent, vergrendelt het, verzendt het direct via de Google-client en slaat het resultaat op. |
Retry | Stelt het record in op pending, wist de lock en plant direct een nieuwe poging in. |
Cancel | Stelt de status in op cancelled en wist de lock. |
Let op: Transmit Now voert een echte request uit als Dry Run = No. Bij Dry Run = Yes wordt een dry-run-log opgeslagen zonder echte verzending naar Google.
15. Cron
De module voegt twee cron-taken toe in de groep default.
Verwerking van de wachtrij
kowal_google_indexing_process_queueSchema:
*/5 * * * *De taak start de wachtrijprocessor elke 5 minuten.
De processor:
- Controleert of de module is ingeschakeld.
- Geeft oude locks vrij van
processing-records ouder dan 30 minuten. - Verplaatst
scheduled-records naarpendingalsscheduled_at <= now. - Controleert beschikbare slots binnen de dag- en minuutlimieten.
- Haalt
pending- enretry-records op. - Sorteert ze op prioriteit en geplande verzenddatum.
- Verzendt een request naar Google of voert dry-run uit.
- Slaat reactie, status en API-log op.
Logs opschonen
kowal_google_indexing_cleanup_logsSchema:
15 3 * * *De taak verwijdert API-logs die ouder zijn dan het aantal dagen ingesteld in het veld:
API Log Retention Days16. API-logs
De logs zijn beschikbaar in:
Google Indexing API > API LogsEen log bevat:
- ID van het wachtrijrecord,
- store ID,
- requesttype,
- endpoint-URL,
- payload,
- HTTP-status,
- response body,
- duur van de request,
- aanmaakdatum van de log.
Requesttypen:
| Type | Betekenis |
|---|---|
publish | Echte aanmelding van een URL bij Google. |
publish_dry_run | Verwerking in dry-run-modus zonder echte request naar Google. |
metadata | Metadata-test voor een URL. |
17. Mass Actions en beheerdersknoppen
De module voegt mechanismen toe om URL's aan te melden vanuit het beheerpaneel.
Producten
Op het productgrid is een mass action beschikbaar die product-URL's aan de wachtrij toevoegt.
De module slaat producten over die:
- uitgeschakeld zijn,
- niet individueel zichtbaar zijn.
URL's worden gegenereerd op basis van URL rewrites voor actieve store views.
CMS-pagina's
Op het grid van CMS-pagina's is een mass action beschikbaar die pagina-URL's aan de wachtrij toevoegt.
De module slaat inactieve pagina's over.
Als een CMS-pagina aan alle store views is toegewezen, lost de module URL's op voor alle store views.
Product, categorie en CMS-pagina - knoppen op het bewerkingsformulier
De module voegt knoppen toe voor indexatie-aanmelding op de bewerkingsschermen van:
- product,
- categorie,
- CMS-pagina.
De knop lost de URL's van de entiteit op voor de store view en voegt ze aan de wachtrij toe als URL_UPDATED.
18. Aanbevolen startconfiguratie
Voor de eerste productie-implementatie:
| Veld | Aanbeveling |
|---|---|
Enable | Yes na het opslaan van credentials en allowed hosts. |
Dry Run | Yes tijdens tests, daarna No. |
Credentials Source | Encrypted configuration value of Uploaded JSON file, afhankelijk van het projectbeleid. |
Google Cloud Project ID | project_id uit de JSON. |
Daily Publish Limit | 200, tenzij Google een hogere limiet heeft goedgekeurd. |
Requests Per Minute Limit | 60 of minder bij een voorzichtige implementatie. |
Cron Batch Size | 20. |
Default Indexing Lag | 15. |
Manual Form Indexing Lag | 0-15, afhankelijk van de werkwijze van beheerders. |
Mass Action Indexing Lag | 15. |
Max Attempts | 5. |
Retry Delay | 15. |
Allowed Source Types | manual,product,category,cms_page,amasty_blog_post. |
Allowed URL Hosts | Alle productiehosts van de webshop. |
Require HTTPS URLs | Yes. |
Enable Auto-Indexing | No, tenzij het project automatische providers implementeert. |
API Log Retention Days | 90. |
19. Veelvoorkomende problemen en diagnose
Credentials test failed
Controleer:
- of de JSON correct is,
- of de JSON van een serviceaccount afkomstig is,
- of deze
private_keyenclient_emailbevat, - of het veld
typede waardeservice_accountheeft, - of het JSON-bestand niet is beschadigd tijdens het plakken.
Google retourneert een rechtenfout
Controleer:
- of het domein is geverifieerd in Search Console,
- of de
client_emailvan het serviceaccount als eigenaar is toegevoegd, - of de geteste URL tot dezelfde Search Console-property behoort,
- of u het juiste Google Cloud-project en de juiste JSON gebruikt.
URL wordt afgewezen vóór verzending
Controleer het validatiebericht:
| Bericht | Oorzaak |
|---|---|
empty_url | Lege URL. |
url_too_long | URL heeft meer dan 2048 tekens. |
url_not_absolute | URL heeft geen schema of host. |
https_required | HTTPS is verplicht ingeschakeld en de URL gebruikt HTTP. |
invalid_scheme | Het schema is geen http of https. |
host_not_allowed | De host van de URL staat niet in Allowed URL Hosts. |
De wachtrij wordt niet verwerkt
Controleer:
- of
Enable = Yes, - of Magento cron werkt,
- of records de status
pendingofretryhebben, - of
scheduled_atniet in de toekomst ligt, - of dag- of minuutlimieten niet zijn verbruikt,
- of
Daily Publish LimitenRequests Per Minute Limitniet op0staan.
Records gaan naar retry
Controleer:
- de HTTP-status in het wachtrijrecord,
- de API-log,
- de reactie van Google,
- of er geen
429-limiet optreedt, - of er geen tijdelijke
5xx-fouten zijn, - of
Max AttemptsenRetry Delayvolgens verwachting zijn ingesteld.
20. Optionele integratie met Amasty Blog
Integratie met Amasty Blog is voorzien als aparte module:
Kowal_GoogleIndexingApiAmastyBlogPakket:
kowal/module-google-indexing-api-amasty-blogDeze module is niet vereist voor de werking van de hoofdintegratie. Installeer deze alleen in projecten die amasty/blog gebruiken en een mass action voor blogartikelen nodig hebben.
Write Your Own Review





















