Google Indexing API per Magento 2
Notifica più rapida a Google delle modifiche nel negozio
Il modulo Kowal Google Indexing API per Magento 2 aiuta a segnalare a Google in modo più efficiente gli URL che sono stati aggiunti, modificati oppure che dovrebbero essere rimossi dall indice. Invece di attendere esclusivamente una normale nuova scansione della pagina da parte del crawler di Google, l amministratore può inviare gli indirizzi selezionati a una coda gestita da Google Indexing API.
La soluzione è particolarmente utile nei negozi in cui cambiano spesso contenuti, offerta, disponibilità dei prodotti, pagine CMS, landing pages oppure articoli del blog. Il modulo organizza l intero processo: raccoglie gli indirizzi da diversi punti di Magento, li verifica, rimuove i duplicati, controlla i limiti e salva lo storico della comunicazione con Google.
Google Indexing API è ufficialmente destinata soprattutto alle pagine con dati strutturati
JobPostingeBroadcastEvent. La segnalazione di un URL tramite API non garantisce l indicizzazione, la posizione nei risultati né l accettazione di ogni indirizzo da parte di Google. Il modulo è uno strumento di supporto per la segnalazione tecnica degli URL e non un sostituto di un corretto SEO tecnico, sitemap XML, canonical, robots, hreflang e linking interno.
Vantaggi principali
Maggiore controllo sulla segnalazione degli indirizzi
Il modulo offre all amministratore un unico punto da cui gestire gli URL in attesa di invio a Google. Prodotti, categorie, pagine CMS, importazione manuale di URL e fonti future possono utilizzare la stessa coda. In questo modo non è necessario creare integrazioni separate per ogni tipo di contenuto.
Meno lavoro manuale dopo le modifiche nel negozio
Gli indirizzi possono essere aggiunti alla coda direttamente dal pannello di amministrazione di Magento. Il modulo mette a disposizione azioni massive e pulsanti nelle schermate di modifica di entità selezionate, così l amministratore può richiedere rapidamente l indicizzazione di una singola pagina o di un gruppo più ampio di indirizzi.
Utilizzo più sicuro dei limiti API
Google Indexing API funziona con dei limiti. Il modulo tiene conto dei limiti giornalieri e al minuto, della dimensione del batch elaborato dal cron e del ritardo di invio. In questo modo gli indirizzi non vengono inviati in modo caotico ed è più facile ridurre il rischio di consumo inutile del limite disponibile.
Meno duplicati e segnalazioni ripetute
Prima di salvare un indirizzo, il modulo normalizza l URL, lo valida e verifica se lo stesso indirizzo è già in attesa nella coda attiva. Se esiste già una segnalazione simile, il sistema può aggiornarla oppure contrassegnarla come deduplicata. Questo riduce il disordine nella coda e diminuisce il numero di request inutili verso Google.
Maggiore trasparenza per il team
Ogni segnalazione ha uno stato, una fonte, un azione, una priorità, un numero di tentativi, una data di invio pianificata e informazioni sulla risposta di Google. L amministratore vede quali indirizzi sono in attesa, quali sono stati inviati correttamente, quali richiedono un nuovo tentativo e quali si sono conclusi con un errore permanente.
Diagnostica dei problemi più semplice
Il modulo salva i log della comunicazione con Google API, inclusi il tipo di request, l indirizzo dell endpoint, il payload, lo stato HTTP, il contenuto della risposta e la durata. Questo facilita l analisi degli errori lato configurazione, autorizzazioni, limiti oppure degli stessi URL segnalati.
Prontezza per la crescita del negozio
L architettura del modulo si basa su uno scheduler e una coda condivisi. Le nuove fonti di URL non devono comunicare direttamente con Google. È sufficiente che inviino gli indirizzi alla coda, e il processore esistente si occuperà di validazione, pianificazione, limiti, nuovi tentativi e logging.
Come funziona il modulo nella pratica
Il modulo agisce come livello intermedio tra Magento e Google Indexing API.
- L amministratore oppure un integrazione seleziona gli URL da segnalare.
- Il modulo normalizza e valida gli URL, tra l altro in base a schema, host e fonti consentite.
- Gli indirizzi corretti finiscono nella coda centrale con stato, azione e data di invio appropriati.
- Il cron di Magento recupera periodicamente i record pronti per l elaborazione.
- Il processore della coda rispetta limiti, priorità, ritardi e lock dei record.
- Il modulo invia la segnalazione a Google Indexing API oppure esegue l elaborazione in modalità dry-run.
- La risposta di Google viene salvata nel record della coda e nei log API.
- In caso di errori temporanei, il modulo può pianificare un nuovo tentativo con ritardo.
In questo modo l invio degli URL non dipende da un singolo clic né da una request diretta dal pannello di amministrazione. L intero processo è messo in coda, auditabile e più resistente a problemi temporanei dell API.
Funzionalità principali
- coda centrale di URL per diverse fonti di contenuto,
- supporto delle azioni
URL_UPDATEDeURL_DELETED, - importazione manuale di molti URL dal pannello di amministrazione,
- azioni massive per prodotti e pagine CMS,
- pulsanti per richiedere l indicizzazione nelle schermate di modifica di prodotto, categoria e pagina CMS,
- integrazione opzionale con Amasty Blog come modulo separato,
- normalizzazione e validazione degli URL,
- whitelist degli host consentiti,
- supporto per store view e identificazione della fonte della segnalazione,
- deduplicazione delle segnalazioni attive,
- ritardo di invio, cioè indexing lag,
- priorità e azione
Transmit Now, - elaborazione tramite cron,
- controllo del limite giornaliero e al minuto,
- nuovi tentativi per errori temporanei con ritardo,
- stati della coda:
scheduled,pending,processing,success,retry,failed_permanent,cancelled, - modalità dry-run per test sicuri senza inviare request reali,
- log API e retention dei log,
- test credentials e metadata nell assistente di configurazione.
Per chi è questo modulo
Il modulo è adatto ai negozi Magento 2 che:
- aggiornano spesso l offerta prodotti,
- pubblicano o modificano molte pagine CMS,
- svolgono attività SEO su diversi tipi di contenuto,
- hanno bisogno di controllare quali URL sono stati segnalati a Google,
- vogliono limitare la gestione manuale delle segnalazioni,
- lavorano in un ambiente multistore o multilingua,
- necessitano di un audit chiaro delle request verso Google.
Questa soluzione è particolarmente preziosa per i team e-commerce, SEO e amministrativi che desiderano avere un processo condiviso e ordinato per segnalare a Google le modifiche del negozio.
Esempi di utilizzo
Prodotti nuovi o modificati
Dopo aver aggiunto un nuovo prodotto oppure aver apportato una modifica importante a uno esistente, l amministratore può inviare il suo indirizzo alla coda. Il modulo si occuperà della registrazione della segnalazione, del ritardo corretto, della deduplicazione e dell invio successivo.
Aggiornamento di pagine CMS e landing pages
Quando il team marketing pubblica una nuova campagna, promozione oppure una pagina informativa, l URL può essere aggiunto alla coda senza lavoro manuale al di fuori di Magento.
Organizzazione degli indirizzi dopo modifiche nel sito
Il modulo supporta non solo le segnalazioni di aggiornamento, ma anche l azione URL_DELETED. In questo modo è possibile trasmettere a Google informazioni sugli indirizzi che dovrebbero essere rimossi dall indice, purché il relativo scenario sia conforme alle regole di utilizzo dell API.
Attività SEO massive
In caso di modifiche più ampie nel negozio, come l aggiornamento di molti prodotti, la migrazione di contenuti oppure il refresh delle categorie, l amministratore può usare le azioni massive e monitorare l avanzamento nella coda.
Impatto sul business
L implementazione del modulo offre al team un maggiore controllo sulla segnalazione tecnica delle modifiche a Google. Invece di attività sparse, manuali e difficili da verificare, si crea un unico processo: l indirizzo entra nella coda, passa la validazione, viene inviato nel rispetto dei limiti e il risultato è visibile nel pannello di amministrazione.
Il valore principale del modulo è l organizzazione del lavoro legato all indicizzazione: meno request casuali, meno duplicati, diagnostica migliore e una responsabilità più chiara su ciò che è stato segnalato a Google.
Google Indexing API per Magento 2 - installazione e configurazione
1. Informazioni importanti prima dell implementazione
Il modulo integra Magento 2 con Google Indexing API e consente di aggiungere URL alla coda centrale delle segnalazioni. La coda viene elaborata dal cron di Magento e ogni segnalazione viene validata, deduplicata, soggetta a limiti e registrata nei log.
Secondo la documentazione di Google, Indexing API è ufficialmente destinata principalmente alle pagine con dati strutturati:
JobPosting,BroadcastEventincorporato inVideoObject.
L utilizzo dell API per prodotti, categorie, pagine CMS o articoli del blog non garantisce l indicizzazione né la posizione nei risultati di ricerca. Il modulo deve essere considerato uno strumento tecnico per la segnalazione degli URL, e non un sostituto di sitemap XML, canonical corretti, robots, hreflang, linking interno e qualità SEO generale.
Materiali ufficiali Google:
- 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. Requisiti
Prima dell installazione assicurati che l ambiente soddisfi i requisiti:
- Magento 2.4.x,
- PHP 8.1 o successivo,
- Composer,
- cron di Magento funzionante,
- possibilità di installare il pacchetto
google/apiclient, - accesso amministrativo a Magento,
- progetto Google Cloud con Indexing API abilitata,
- property in Google Search Console verificata per il dominio del negozio,
- account di servizio Google aggiunto come proprietario in Google Search Console.
Il modulo richiede il pacchetto:
google/apiclient:^2.16Il pacchetto è dichiarato nel composer.json del modulo, quindi Composer dovrebbe installarlo automaticamente.
3. Installazione del modulo
3.1. Installazione tramite Composer da repository VCS
Se il modulo viene installato da un repository Git privato o pubblico, aggiungi il repository al progetto Magento:
composer config repositories.kowal.google.indexing.api vcs https://github.com/kowalco/google-indexing-apiSe il repository è privato, configura il token GitHub:
composer config --global --auth github-oauth.github.com Installa il pacchetto:
composer require kowal/module-google-indexing-apiAbilita il modulo:
bin/magento module:enable Kowal_GoogleIndexingApiEsegui l aggiornamento dello schema del database:
bin/magento setup:upgradeSvuota la cache:
bin/magento cache:flushIn modalità produzione esegui inoltre:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.2. Installazione locale in app/code
Se il modulo viene installato senza Composer come codice locale, posizionalo nella directory:
app/code/Kowal/GoogleIndexingApiSuccessivamente installa la dipendenza Google API Client nel progetto Magento:
composer require google/apiclient:^2.16Abilita il modulo ed esegui i comandi standard di Magento:
bin/magento module:enable Kowal_GoogleIndexingApibin/magento setup:upgradebin/magento cache:flushPer la produzione:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.3. Verifica dell installazione
Controlla che il modulo sia attivo:
bin/magento module:status Kowal_GoogleIndexingApiDopo una corretta installazione nel pannello di amministrazione dovrebbero essere disponibili:
Stores > Configuration > Kowal > Google Indexing API,- menu amministrativo
Google Indexing API > Indexing Queue, Google Indexing API > Import URLs,Google Indexing API > API Logs,Google Indexing API > Setup Assistant.
Nel database dovrebbero essere create le tabelle:
kowal_google_indexing_queue,kowal_google_indexing_api_log.
4. Preparazione di Google Cloud e Search Console
4.1. Creazione del progetto Google Cloud
- Vai a Google Cloud Console.
- Crea un nuovo progetto oppure seleziona un progetto esistente usato per il negozio.
- Abilita l API:
Indexing APISenza API abilitata il modulo non potrà inviare correttamente le segnalazioni.
4.2. Creazione dell account di servizio
- In Google Cloud vai in
IAM & Admin > Service Accounts. - Crea un nuovo account di servizio.
- Genera una chiave in formato JSON.
- Scarica il file JSON e conservalo in modo sicuro.
Il modulo richiede che il JSON contenga almeno i campi:
type,project_id,private_key,client_email.
Il campo type deve avere il valore:
service_account4.3. Aggiunta dell account di servizio come proprietario in Search Console
- Apri Google Search Console.
- Seleziona la property corrispondente al dominio del negozio.
- Assicurati che la property sia verificata.
- Aggiungi l indirizzo
client_emaildel file JSON come proprietario della property.
Esempio di indirizzo dell account di servizio:
my-service-account@project-name.iam.gserviceaccount.comSe l account di servizio non sarà proprietario della property in Search Console, Google potrebbe restituire errori di autorizzazione, ad esempio la mancanza di conferma della proprietà dell URL.
5. Configurazione del modulo in Magento
La configurazione si trova in:
Stores > Configuration > Kowal > Google Indexing APILa configurazione supporta gli scope di Magento:
- Default Config,
- Website,
- Store View.
In questo modo è possibile avere impostazioni separate per diversi negozi o store view, se il progetto lo richiede.
6. Sezione General
Enable
Predefinito:
NoAbilita o disabilita il funzionamento del modulo.
Quando il campo ha valore No, il cron non elabora la coda. Gli indirizzi possono esistere nel database, ma il processore della coda non li invierà a Google.
Raccomandazione:
- durante la prima configurazione imposta
Nooppure lasciaDry Run = Yes, - dopo test corretti imposta
Yes.
Dry Run
Predefinito:
YesModalità di test. Quando Dry Run è abilitato, il modulo elabora i record della coda, salva stati e log, ma non invia una segnalazione reale a Google.
È la modalità più sicura per il primo avvio, i test di configurazione e la verifica che gli URL entrino nella coda come previsto.
Raccomandazione:
- esegui sempre i primi test con
Dry Run = Yes, - disattiva
Dry Runsolo dopo aver verificato credentials, allowed hosts, coda e log.
7. Sezione Google Access Credentials
Credentials Source
Predefinito:
Encrypted configuration valueDefinisce da dove il modulo recupera il JSON dell account di servizio Google.
Opzioni disponibili:
| Opzione | Valore tecnico | Descrizione |
|---|---|---|
Encrypted configuration value | config | Il JSON viene incollato nella configurazione di Magento e salvato come valore cifrato di sensitive config. |
Uploaded JSON file | file | Il JSON viene caricato come file e salvato fuori dalla directory pub, in var/google-indexing. |
Raccomandazione:
- per implementazioni semplici si può usare il valore cifrato in configurazione,
- per ambienti con controllo di accesso ai file può essere più comodo l upload del file JSON.
Service Account JSON
Visibile quando Credentials Source = Encrypted configuration value.
In questo campo va incollato l intero contenuto del file JSON dell account di servizio Google.
Il modulo valida il JSON prima del salvataggio. Vengono verificati:
- correttezza del formato JSON,
- presenza dei campi
type,project_id,private_key,client_email, - valore
type = service_account.
Il valore viene salvato come configurazione cifrata di Magento.
Service Account JSON File
Visibile quando Credentials Source = Uploaded JSON file.
Consente di caricare il file JSON dell account di servizio Google.
Il modulo:
- accetta solo file con estensione
.json, - valida il contenuto del file,
- verifica i campi richiesti
type,project_id,private_key,client_email, - salva il file fuori dalla directory pubblica, in
var/google-indexing, - prova a impostare i permessi del file su
0600, se il driver del file system lo consente.
Il file viene salvato con un nome dipendente dallo scope di configurazione, ad esempio per lo scope globale:
var/google-indexing/service-account-default-0.jsonGoogle Cloud Project ID
Campo di testo per l identificatore del progetto Google Cloud.
Nell implementazione attuale del modulo l autorizzazione principale si basa sui dati del JSON dell account di servizio. Il campo Google Cloud Project ID ha funzione informativa e di organizzazione della configurazione, soprattutto quando il negozio utilizza più ambienti o più progetti Google Cloud.
Raccomandazione:
- inserisci il valore
project_iddel file JSON, - usa progetti Google Cloud separati per ambienti di produzione e test, se tale separazione è prevista nel progetto.
8. Sezione Queue and Limits
Daily Publish Limit
Predefinito:
200Definisce il numero massimo di segnalazioni publish che il modulo può eseguire in un giorno.
Il limiter conta le request di tipo:
publish,publish_dry_run.
Se il limite viene raggiunto, il processore della coda non preleverà ulteriori record da inviare fino alla successiva finestra giornaliera.
Raccomandazione:
- lascia
200se il progetto utilizza il limite onboarding predefinito di Google, - aumenta il valore solo se il progetto Google Cloud ha un limite superiore approvato,
- l impostazione
0blocca l invio, perché il numero di slot disponibili sarà0.
Requests Per Minute Limit
Predefinito:
60Definisce il numero massimo di request publish al minuto.
Il modulo confronta questo valore con il numero di request salvate nei log nell ultimo minuto. Se il limite al minuto è stato raggiunto, il cron non elaborerà altri record in quella esecuzione.
Raccomandazione:
- per un implementazione tipica lascia il valore predefinito,
- riduci il valore se vuoi caricare l API in modo più conservativo,
- non impostare
0, a meno che tu non voglia fermare temporaneamente l invio.
Cron Batch Size
Predefinito:
20Definisce il numero massimo di record della coda elaborati in una singola esecuzione del cron.
Il numero reale di record elaborati è limitato anche da:
Daily Publish Limit,Requests Per Minute Limit,- numero di record pronti per l invio,
- stato e data di
scheduled_at.
Raccomandazione:
20è un valore iniziale sicuro,- con code grandi si può aumentare il valore, ma solo tenendo conto dei limiti di Google.
Default Indexing Lag (minutes)
Predefinito:
15Definisce il ritardo predefinito tra l aggiunta di un URL alla coda e il momento a partire dal quale può essere inviato.
Il ritardo aiuta a:
- ridurre i duplicati,
- evitare l invio dopo ogni piccola modifica,
- dare all amministratore il tempo di correggere i contenuti,
- gestire meglio il limite API.
Nell implementazione attuale questa impostazione viene usata quando la segnalazione non ha un proprio ritardo.
Manual Form Indexing Lag (minutes)
Predefinito:
15Definisce il ritardo per gli URL aggiunti tramite il modulo:
Google Indexing API > Import URLsSe l amministratore incolla manualmente un elenco di URL, ogni indirizzo valido verrà pianificato con questo ritardo.
Raccomandazione:
- imposta
0se l importazione manuale deve entrare immediatamente nella coda, - lascia
15se vuoi mantenere un buffer per deduplicazione e controllo delle segnalazioni.
Mass Action Indexing Lag (minutes)
Predefinito:
15Definisce il ritardo per gli URL aggiunti tramite:
- azioni massive sui prodotti,
- azioni massive sulle pagine CMS,
- pulsanti di richiesta indicizzazione nelle schermate di modifica di prodotto, categoria e pagina CMS.
Raccomandazione:
- per operazioni massive lascia il valore
15o superiore, - per piccoli negozi e lavoro amministrativo manuale si può valutare un valore inferiore.
Max Attempts
Predefinito:
5Definisce il numero massimo di tentativi di invio di un singolo record della coda.
Se Google restituisce un errore temporaneo, il modulo imposterà lo stato retry, purché il numero di tentativi sia inferiore a Max Attempts. Dopo aver superato il limite, il record riceverà lo stato failed_permanent.
Errori considerati temporanei:
408,409,412,429,500,502,503,504.
Retry Delay (minutes)
Predefinito:
15Ritardo di base prima del tentativo successivo di invio dopo un errore temporaneo.
Il cron usa un ritardo crescente. Il moltiplicatore dipende dal numero di tentativi ed è limitato a un massimo di 24. In questo modo i tentativi successivi non vengono eseguiti in modo troppo aggressivo.
Esempio per il valore 15:
| Tentativo | Ritardo approssimativo |
|---|---|
| 1 | 15 minuti |
| 2 | 30 minuti |
| 3 | 60 minuti |
| 4 | 120 minuti |
Allowed Source Types
Predefinito:
manual,product,category,cms_page,amasty_blog_postElenco dei tipi di fonte consentiti, separati da virgola.
Valori supportati:
| Valore | Significato |
|---|---|
manual | URL aggiunto manualmente tramite il modulo di importazione. |
product | URL del prodotto. |
category | URL della categoria. |
cms_page | URL della pagina CMS. |
amasty_blog_post | URL del post Amasty Blog, se viene usato un modulo di integrazione separato. |
Se il tipo di fonte non si trova nell elenco, lo scheduler salterà la segnalazione e la contrassegnerà come skipped.
Raccomandazione:
- lascia i valori predefiniti se il negozio usa tutte le fonti standard,
- rimuovi le fonti che non vuoi ammettere nella coda.
Allowed URL Hosts
Predefinito:
vuotoElenco degli host URL consentiti, separati da virgola.
Esempio:
example.com,www.example.comSe l elenco è compilato, il modulo accetterà solo gli indirizzi appartenenti agli host indicati. Se l URL ha un host diverso, la validazione restituirà l errore:
host_not_allowedRaccomandazione:
- in produzione compila sempre questo elenco,
- aggiungi tutti gli host usati dal negozio, ad esempio dominio principale, versione
www, domini store view e domini linguistici, - non aggiungere domini di test alla configurazione di produzione.
Require HTTPS URLs
Predefinito:
YesImpone che gli URL segnalati usino lo schema https.
Se il campo è abilitato, un indirizzo con http verrà rifiutato con l errore:
https_requiredRaccomandazione:
- per i negozi di produzione lascia
Yes, - usa
Nosolo in ambienti di test eccezionali.
9. Sezione Auto-Indexing
Enable Auto-Indexing
Predefinito:
NoIl campo è predisposto per integrazioni automatiche di salvataggio o rimozione delle entità e di provider URL aggiuntivi.
Nell attuale ambito del modulo sono disponibili meccanismi manuali e amministrativi per aggiungere URL alla coda, tra cui importazione URL, Mass Actions e pulsanti nei moduli di modifica.
Raccomandazione:
- lascia
Nose l auto-indexing non è stato implementato nel progetto, - abilitalo solo quando il progetto include la gestione di eventi automatici delle entità che usa questa configurazione.
10. Sezione Logs
API Log Retention Days
Predefinito:
90Definisce il numero di giorni di conservazione dei log API.
Il cron di pulizia dei log viene eseguito ogni giorno alle:
03:15Rimuove le voci più vecchie del numero di giorni impostato in questo campo.
Raccomandazione:
90giorni sono un valore diagnostico ragionevole,- con un numero elevato di request si può ridurre la retention,
- in caso di audit SEO si può aumentare la retention, ricordando la dimensione della tabella dei log.
11. Assistente di installazione e configurazione
L assistente si trova in:
Google Indexing API > Setup AssistantIl suo scopo è verificare rapidamente se la configurazione lato Magento e Google è pronta per il primo test.
11.1. Sezione Current Status
L assistente mostra lo stato corrente degli elementi più importanti:
| Campo | Significato |
|---|---|
Module | Indica se il modulo è abilitato nella configurazione. |
Dry Run | Indica se è attiva la modalità di test senza invio reale a Google. |
Credentials | Mostra se il modulo riesce a leggere e fare il parsing delle credentials Google. |
Service Account Email | Visualizza il client_email del JSON dell account di servizio. Questo indirizzo deve essere aggiunto come proprietario in Search Console. |
Allowed Hosts | Mostra l elenco degli host consentiti nella configurazione. |
Queue | Mostra il numero di record con stato scheduled, pending, retry e failed_permanent. |
Se Credentials ha stato Missing or invalid, è necessario tornare alla configurazione e correggere il JSON o il file credentials.
Se Allowed Hosts mostra Not configured, il modulo non limita gli host. Tecnicamente può funzionare, ma in produzione è consigliato inserire esplicitamente gli host del negozio.
11.2. Sezione Setup Steps
L assistente visualizza l elenco dei passaggi necessari prima della prima request reale:
- Creazione o selezione del progetto Google Cloud.
- Abilitazione di Indexing API e creazione della JSON key per l account di servizio.
- Incollare il JSON oppure caricare il file JSON nella configurazione di Magento.
- Aggiungere l email del service account come proprietario in Google Search Console.
- Eseguire i test, quindi importare un URL con
Dry Runabilitato.
L assistente contiene link a:
- Google Cloud per Indexing API,
- configurazione del modulo in Magento,
- Google Search Console.
11.3. Test Google Credentials
Pulsante:
Test Google Credentialsverifica se Magento è in grado di usare i dati dell account di servizio per ottenere un token OAuth per lo scope:
https://www.googleapis.com/auth/indexingUn risultato positivo significa che:
- il JSON è corretto,
- la chiave privata può essere usata,
- Google ha emesso un token OAuth.
Un risultato negativo può indicare:
- JSON non corretto,
private_keyerrata o danneggiata,- campo richiesto mancante nel JSON,
- problema di comunicazione con Google,
- uso di una chiave che non è una chiave di account di servizio.
Questo test non conferma ancora che l account di servizio abbia accesso proprietario al dominio in Search Console. Per questo è necessario un test URL metadata oppure una reale segnalazione di un URL di prova.
11.4. Test URL Metadata
Modulo:
Test URL Metadataconsente di inserire un URL pubblico di un host consentito ed eseguire una request metadata a Google Indexing API.
Prima di inviare la request il modulo:
- normalizza l URL,
- verifica che l URL sia assoluto,
- controlla lo schema
httpoppurehttps, - con
Require HTTPS URLsabilitato richiedehttps, - verifica
Allowed URL Hosts, se sono stati configurati.
Possibili risultati:
| Risultato | Significato |
|---|---|
| Successo HTTP 2xx | Google ha restituito i metadata per l URL. |
| HTTP 404 | Spesso significa che l URL non ha ancora avuto una precedente segnalazione riuscita tramite Indexing API. Questo non significa necessariamente una configurazione errata. |
| Errore di validazione prima della request | L URL non soddisfa i requisiti del modulo, per esempio host errato, mancanza di HTTPS oppure indirizzo non assoluto. |
| Errore HTTP diverso da 404 | È necessario controllare il messaggio di Google, i permessi Search Console, le credentials e i limiti. |
Il test metadata non crea una nuova segnalazione publish. Serve per la diagnostica della connessione e dello stato dell URL.
12. Primo avvio passo dopo passo
Ordine consigliato per il primo avvio:
- Installa il modulo ed esegui
setup:upgrade. - In Magento vai in
Stores > Configuration > Kowal > Google Indexing API. - Imposta
Enable = Yes. - Lascia
Dry Run = Yes. - Seleziona la fonte delle credentials.
- Incolla il JSON dell account di servizio oppure carica il file JSON.
- Compila
Google Cloud Project IDcon il valoreproject_iddel JSON. - Compila
Allowed URL Hosts, ad esempioexample.com,www.example.com. - Lascia i limiti predefiniti se Google non ha approvato limiti superiori.
- Salva la configurazione e svuota la cache.
- Vai in
Google Indexing API > Setup Assistant. - Controlla che l assistente mostri le credentials come pronte.
- Fai clic su
Test Google Credentials. - Aggiungi l email del service account come proprietario in Google Search Console, se non è già stato fatto.
- Esegui
Test URL Metadataper un URL pubblico di un host consentito. - Vai in
Google Indexing API > Import URLs. - Aggiungi un URL di test con azione
URL_UPDATED. - Esegui il cron di Magento:
bin/magento cron:run- Controlla
Google Indexing API > Indexing Queue. - Controlla
Google Indexing API > API Logs. - Se tutto funziona correttamente, disattiva
Dry Run. - Aggiungi di nuovo un URL di test e controlla la risposta reale di Google.
13. Importazione URL dal pannello di amministrazione
L importazione manuale si trova in:
Google Indexing API > Import URLsIl modulo contiene i campi:
| Campo | Descrizione |
|---|---|
Action | Tipo di segnalazione a Google: aggiunta/aggiornamento oppure rimozione. |
Store View | Store view a cui deve essere associata la segnalazione. È disponibile anche l opzione globale Use global/no store. |
URLs | Elenco di URL assoluti, uno per riga. |
Azioni disponibili:
| Azione nel modulo | Valore API | Significato |
|---|---|---|
Submit URLs for indexing | URL_UPDATED | Informa Google che l URL è stato aggiunto oppure aggiornato. |
Delete URLs from indexing | URL_DELETED | Informa Google che l URL è stato rimosso e può essere eliminato dall indice. |
Dopo l invio del modulo, il modulo mostrerà un riepilogo:
- aggiunti,
- aggiornati,
- deduplicati,
- non validi,
- saltati.
I primi 10 messaggi di validazione vengono mostrati come notice nel pannello di amministrazione.
14. Coda di indicizzazione
La coda si trova in:
Google Indexing API > Indexing QueueOgni record della coda contiene tra l altro:
- URL,
- hash dell URL,
- store ID,
- website ID,
- tipo di fonte,
- ID dell entità sorgente,
- origine della request,
- azione
URL_UPDATEDoppureURL_DELETED, - stato,
- priorità,
- numero di tentativi,
- numero massimo di tentativi,
- data di invio pianificata,
- data di elaborazione,
- ultimo codice di errore,
- ultimo motivo dell errore,
- ultimo messaggio di errore,
- risposta di Google,
- informazione
created_by.
Stati della coda
| Stato | Significato |
|---|---|
scheduled | L URL è pianificato, ma attende ancora la data scheduled_at. |
pending | L URL è pronto per essere elaborato dal cron. |
processing | L URL è attualmente in elaborazione. |
success | Google ha restituito una risposta di successo. |
retry | Si è verificato un errore temporaneo e il record è in attesa del tentativo successivo. |
failed_permanent | L invio è terminato in modo permanente oppure è stato superato il numero massimo di tentativi. |
cancelled | Il record è stato annullato manualmente. |
Azioni sui record della coda
| Azione | Operazione |
|---|---|
Transmit Now | Imposta il record come urgente, lo blocca, lo invia immediatamente tramite il client Google e salva il risultato. |
Retry | Imposta il record come pending, rimuove il lock e pianifica un nuovo tentativo immediato. |
Cancel | Imposta lo stato cancelled e rimuove il lock. |
Nota: Transmit Now esegue una request reale se Dry Run = No. Con Dry Run = Yes verrà salvato un log dry-run senza invio reale a Google.
15. Cron
Il modulo aggiunge due task cron nel gruppo default.
Elaborazione della coda
kowal_google_indexing_process_queuePianificazione:
*/5 * * * *Il task avvia il processore della coda ogni 5 minuti.
Il processore:
- Controlla se il modulo è abilitato.
- Rilascia i vecchi lock dei record
processingpiù vecchi di 30 minuti. - Sposta i record
scheduledinpendingsescheduled_at <= now. - Controlla gli slot disponibili nei limiti giornalieri e al minuto.
- Recupera i record
pendingeretry. - Li ordina in base a priorità e data di invio pianificata.
- Invia la request a Google oppure esegue il dry-run.
- Salva risposta, stato e log API.
Pulizia dei log
kowal_google_indexing_cleanup_logsPianificazione:
15 3 * * *Il task elimina i log API più vecchi del numero di giorni impostato nel campo:
API Log Retention Days16. Log API
I log sono disponibili in:
Google Indexing API > API LogsIl log include:
- ID del record della coda,
- store ID,
- tipo di request,
- URL dell endpoint,
- payload,
- stato HTTP,
- body della risposta,
- durata della request,
- data di creazione del log.
Tipi di request:
| Tipo | Significato |
|---|---|
publish | Segnalazione reale dell URL a Google. |
publish_dry_run | Elaborazione in modalità dry-run senza request reale verso Google. |
metadata | Test metadata per l URL. |
17. Mass Actions e pulsanti amministrativi
Il modulo aggiunge meccanismi per segnalare URL dal pannello di amministrazione.
Prodotti
Nella griglia prodotti è disponibile un azione massiva che aggiunge gli URL dei prodotti alla coda.
Il modulo salta i prodotti:
- disabilitati,
- non visibili individualmente.
Gli URL vengono generati sulla base degli URL rewrite per gli store view attivi.
Pagine CMS
Nella griglia delle pagine CMS è disponibile un azione massiva che aggiunge gli URL delle pagine alla coda.
Il modulo salta le pagine non attive.
Se una pagina CMS è assegnata a tutti gli store view, il modulo risolve gli URL per tutti gli store view.
Prodotto, categoria e pagina CMS - pulsanti nel modulo di modifica
Il modulo aggiunge pulsanti per richiedere l indicizzazione nelle schermate di modifica di:
- prodotto,
- categoria,
- pagina CMS.
Il pulsante risolve gli URL dell entità per gli store view e li aggiunge alla coda come URL_UPDATED.
18. Configurazione iniziale consigliata
Per la prima implementazione in produzione:
| Campo | Raccomandazione |
|---|---|
Enable | Yes dopo aver salvato credentials e allowed hosts. |
Dry Run | Yes durante i test, poi No. |
Credentials Source | Encrypted configuration value oppure Uploaded JSON file, in base alla policy del progetto. |
Google Cloud Project ID | project_id del JSON. |
Daily Publish Limit | 200, a meno che Google non abbia approvato un limite superiore. |
Requests Per Minute Limit | 60 oppure meno in caso di implementazione prudente. |
Cron Batch Size | 20. |
Default Indexing Lag | 15. |
Manual Form Indexing Lag | 0-15, in base al modo di lavorare degli amministratori. |
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 | Tutti gli host di produzione del negozio. |
Require HTTPS URLs | Yes. |
Enable Auto-Indexing | No, a meno che il progetto non implementi provider automatici. |
API Log Retention Days | 90. |
19. Problemi comuni e diagnostica
Credentials test failed
Controlla:
- se il JSON è corretto,
- se il JSON proviene da un account di servizio,
- se contiene
private_keyeclient_email, - se il campo
typeha valoreservice_account, - se il file JSON non è stato danneggiato durante l incollaggio.
Google restituisce un errore di autorizzazione
Controlla:
- se il dominio è verificato in Search Console,
- se il
client_emaildell account di servizio è stato aggiunto come proprietario, - se l URL testato appartiene alla stessa property Search Console,
- se stai usando il progetto Google Cloud corretto e il JSON corretto.
L URL viene rifiutato prima dell invio
Controlla il messaggio di validazione:
| Messaggio | Causa |
|---|---|
empty_url | URL vuoto. |
url_too_long | L URL ha più di 2048 caratteri. |
url_not_absolute | L URL non ha schema o host. |
https_required | Il requisito HTTPS è attivo e l URL usa HTTP. |
invalid_scheme | Lo schema non è http né https. |
host_not_allowed | L host dell URL non è presente in Allowed URL Hosts. |
La coda non viene elaborata
Controlla:
- se
Enable = Yes, - se il cron di Magento funziona,
- se i record hanno stato
pendingoppureretry, - se
scheduled_atnon è nel futuro, - se i limiti giornalieri o al minuto non sono stati raggiunti,
- se
Daily Publish LimiteRequests Per Minute Limitnon sono impostati su0.
I record finiscono in retry
Controlla:
- lo stato HTTP nel record della coda,
- il log API,
- la risposta di Google,
- se è presente il limite
429, - se ci sono errori temporanei
5xx, - se
Max AttemptseRetry Delaysono impostati come previsto.
20. Integrazione opzionale con Amasty Blog
L integrazione con Amasty Blog è prevista come modulo separato:
Kowal_GoogleIndexingApiAmastyBlogPacchetto:
kowal/module-google-indexing-api-amasty-blogQuesto modulo non è richiesto per il funzionamento dell integrazione principale. Va installato solo nei progetti che usano amasty/blog e hanno bisogno di un azione massiva per gli articoli del blog.
Write Your Own Review



















