Google Indexing API pentru Magento 2
Necesită modificări în șablon
Nu
Modificări minore
Schimbări semnificative
Necesită cunoștințe de programare
Nu
De bază
Avansat
Dificultatea configurării
Impactul asupra performanței
Conformitate cu standardele Magento
Informare mai rapidă a Google despre modificările din magazin
Modulul Kowal Google Indexing API pentru Magento 2 ajută la trimiterea mai eficientă către Google a adreselor URL care au fost adăugate, modificate sau care ar trebui eliminate din index. În loc să aștepte exclusiv revizitarea standard a paginii de către robotul Google, administratorul poate trimite adresele selectate într-o coadă gestionată de Google Indexing API.
Soluția este deosebit de utilă în magazinele în care se modifică frecvent conținutul, oferta, disponibilitatea produselor, paginile CMS, landing pages sau articolele de blog. Modulul organizează întregul proces: colectează adrese din diferite zone Magento, le verifică, elimină duplicatele, controlează limitele și salvează istoricul comunicării cu Google.
Google Indexing API este destinat oficial în principal paginilor cu date structurate
JobPostingșiBroadcastEvent. Trimiterea unui URL prin API nu garantează indexarea, poziția în rezultate sau acceptarea fiecărei adrese de către Google. Modulul este un instrument care susține trimiterea tehnică a URL-urilor, nu un înlocuitor pentru SEO tehnic corect, sitemap XML, canonicale, robots, hreflang și linkuri interne.
Cele mai importante beneficii
Control mai bun asupra trimiterii adreselor
Modulul oferă administratorului un singur loc pentru gestionarea URL-urilor care așteaptă să fie trimise către Google. Produsele, categoriile, paginile CMS, importul manual de URL-uri și sursele viitoare pot utiliza aceeași coadă. Astfel, nu este nevoie să construiți integrări separate pentru fiecare tip de conținut.
Mai puțină muncă manuală după modificările din magazin
Adresele pot fi adăugate în coadă direct din panoul de administrare Magento. Modulul oferă acțiuni în masă și butoane pe ecranele de editare ale entităților selectate, astfel încât administratorul poate solicita rapid indexarea unei singure pagini sau a unui grup mai mare de adrese.
Utilizare mai sigură a limitelor API
Google Indexing API funcționează cu limite. Modulul ia în calcul limitele zilnice și pe minut, dimensiunea pachetului procesat de cron și întârzierea trimiterii. Datorită acestui lucru, adresele nu sunt trimise haotic și este mai ușor să se reducă riscul consumului inutil al limitei disponibile.
Mai puține duplicate și trimiteri repetitive
Înainte de salvarea adresei, modulul normalizează URL-ul, îl validează și verifică dacă aceeași adresă nu așteaptă deja în coada activă. Dacă o trimitere similară există deja, sistemul o poate actualiza sau o poate marca drept deduplicată. Acest lucru reduce dezordinea din coadă și scade numărul de requesturi inutile către Google.
Mai multă transparență pentru echipă
Fiecare trimitere are un status, o sursă, o acțiune, o prioritate, un număr de încercări, termenul trimiterii planificate și informații despre răspunsul Google. Administratorul vede care adrese așteaptă, care au fost trimise corect, care necesită reluare și care s-au încheiat cu o eroare permanentă.
Diagnosticare mai ușoară a problemelor
Modulul salvează logurile comunicării cu Google API, inclusiv tipul requestului, adresa endpointului, payload-ul, statusul HTTP, conținutul răspunsului și durata. Acest lucru facilitează analiza erorilor legate de configurare, permisiuni, limite sau chiar de URL-urile raportate.
Pregătit pentru dezvoltarea magazinului
Arhitectura modulului se bazează pe un scheduler comun și pe o coadă. Noile surse de URL-uri nu trebuie să comunice direct cu Google. Este suficient să trimită adresele în coadă, iar procesorul existent se va ocupa de validare, programare, limite, reluări și logare.
Cum funcționează modulul în practică
Modulul funcționează ca un strat intermediar între Magento și Google Indexing API.
- Administratorul sau integrarea selectează adresele URL pentru trimitere.
- Modulul normalizează și validează URL-urile, inclusiv în privința schemei, hostului și surselor permise.
- Adresele corecte ajung în coada centrală cu statusul, acțiunea și termenul de trimitere corespunzătoare.
- Cron Magento preia periodic înregistrările gata de procesare.
- Procesorul cozii respectă limitele, prioritățile, întârzierile și blocările înregistrărilor.
- Modulul trimite solicitarea către Google Indexing API sau execută procesarea în modul dry-run.
- Răspunsul Google este salvat în înregistrarea din coadă și în logurile API.
- În cazul erorilor temporare, modulul poate programa o nouă încercare cu întârziere.
Datorită acestui lucru, trimiterea URL-urilor nu depinde de un singur clic și nici de un request direct din panoul de administrare. Întregul proces este pus în coadă, auditabil și mai rezistent la probleme temporare ale API-ului.
Funcții principale
- coadă centrală de URL-uri pentru diferite surse de conținut,
- suport pentru acțiunile
URL_UPDATEDșiURL_DELETED, - import manual al mai multor URL-uri din panoul de administrare,
- acțiuni în masă pentru produse și pagini CMS,
- butoane pentru trimiterea indexării pe ecranele de editare ale produsului, categoriei și paginii CMS,
- integrare opțională cu Amasty Blog ca modul separat,
- normalizarea și validarea adreselor URL,
- whitelist pentru hosturile permise,
- suport pentru store view și identificarea sursei trimiterii,
- deduplicarea trimiterilor active,
- întârziere la trimitere, adică indexing lag,
- priorități și acțiunea
Transmit Now, - procesare prin cron,
- controlul limitei zilnice și pe minut,
- reluarea erorilor temporare cu întârziere,
- statusuri ale cozii:
scheduled,pending,processing,success,retry,failed_permanent,cancelled, - mod dry-run pentru teste sigure fără trimiterea de requesturi reale,
- loguri API și retenția logurilor,
- test credentials și metadata în asistentul de configurare.
Pentru cine este acest modul
Modulul este potrivit pentru magazinele Magento 2 care:
- actualizează frecvent oferta de produse,
- publică sau modifică multe pagini CMS,
- desfășoară activități SEO pe mai multe tipuri de conținut,
- au nevoie de control asupra URL-urilor trimise către Google,
- doresc să limiteze gestionarea manuală a trimiterilor,
- lucrează într-un mediu multistore sau multilanguage,
- au nevoie de un audit clar al requesturilor către Google.
Această soluție este deosebit de valoroasă pentru echipele de e-commerce, SEO și administrative care doresc să aibă un proces comun și bine organizat de raportare a modificărilor din magazin către Google.
Exemple de utilizare
Produse noi sau modificate
După adăugarea unui produs nou sau după o modificare importantă a unuia existent, administratorul poate trimite adresa acestuia în coadă. Modulul se ocupă de salvarea trimiterii, de întârzierea potrivită, de deduplicare și de trimiterea ulterioară.
Actualizarea paginilor CMS și landing pages
Atunci când echipa de marketing publică o nouă campanie, promoție sau pagină informativă, URL-ul poate fi adăugat în coadă fără muncă manuală în afara Magento.
Organizarea adreselor după modificările din site
Modulul suportă nu doar trimiterile de actualizare, ci și acțiunea URL_DELETED. Astfel, puteți transmite către Google informații despre adresele care ar trebui eliminate din index, dacă scenariul respectiv este conform cu regulile de utilizare a API-ului.
Acțiuni SEO în masă
În cazul unor modificări mai ample în magazin, precum actualizarea mai multor produse, migrarea conținutului sau reîmprospătarea categoriilor, administratorul poate utiliza acțiuni în masă și poate urmări progresul în coadă.
Efect de business
Implementarea modulului oferă echipei un control mai mare asupra trimiterii tehnice a modificărilor către Google. În locul unor acțiuni dispersate, manuale și dificil de verificat, apare un singur proces: adresa ajunge în coadă, trece prin validare, este trimisă cu respectarea limitelor, iar rezultatul este vizibil în panoul de administrare.
Cea mai importantă valoare a modulului este organizarea muncii în jurul indexării: mai puține requesturi întâmplătoare, mai puține duplicate, o diagnosticare mai bună și o responsabilitate mai clară pentru ceea ce a fost trimis către Google.
Google Indexing API pentru Magento 2 - instalare și configurare
1. Informații importante înainte de implementare
Modulul integrează Magento 2 cu Google Indexing API și permite adăugarea adreselor URL într-o coadă centrală de trimiteri. Coada este procesată de cron Magento, iar fiecare trimitere este validată, deduplicată, supusă limitelor și logată.
Conform documentației Google, Indexing API este destinat oficial în principal paginilor cu date structurate:
JobPosting,BroadcastEventîncorporat înVideoObject.
Utilizarea API-ului pentru produse, categorii, pagini CMS sau articole de blog nu garantează indexarea sau poziția în rezultatele căutării. Modulul trebuie tratat ca un instrument tehnic pentru trimiterea URL-urilor, nu ca un înlocuitor pentru sitemap XML, canonicale corecte, robots, hreflang, linkuri interne și calitatea generală SEO.
Materiale oficiale 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. Cerințe
Înainte de instalare, asigurați-vă că mediul îndeplinește cerințele:
- Magento 2.4.x,
- PHP 8.1 sau mai nou,
- Composer,
- cron Magento funcțional,
- posibilitatea de a instala pachetul
google/apiclient, - acces administrativ la Magento,
- proiect Google Cloud cu Indexing API activat,
- proprietate în Google Search Console verificată pentru domeniul magazinului,
- contul de serviciu Google adăugat ca proprietar în Google Search Console.
Modulul necesită pachetul:
google/apiclient:^2.16Pachetul este declarat în composer.json al modulului, astfel încât Composer ar trebui să îl instaleze automat.
3. Instalarea modulului
3.1. Instalare prin Composer dintr-un repository VCS
Dacă modulul este instalat dintr-un repository Git privat sau public, adăugați repository-ul în proiectul Magento:
composer config repositories.kowal.google.indexing.api vcs https://github.com/kowalco/google-indexing-apiDacă repository-ul este privat, configurați tokenul GitHub:
composer config --global --auth github-oauth.github.com Instalați pachetul:
composer require kowal/module-google-indexing-apiActivați modulul:
bin/magento module:enable Kowal_GoogleIndexingApiExecutați actualizarea schemei bazei de date:
bin/magento setup:upgradeGoliți cache-ul:
bin/magento cache:flushÎn modul producție executați suplimentar:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.2. Instalare locală în app/code
Dacă modulul este instalat fără Composer ca cod local, plasați-l în directorul:
app/code/Kowal/GoogleIndexingApiApoi instalați dependența Google API Client în proiectul Magento:
composer require google/apiclient:^2.16Activați modulul și executați comenzile standard Magento:
bin/magento module:enable Kowal_GoogleIndexingApibin/magento setup:upgradebin/magento cache:flushPentru producție:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.3. Verificarea instalării
Verificați dacă modulul este activ:
bin/magento module:status Kowal_GoogleIndexingApiDupă instalarea corectă, în panoul de administrare ar trebui să fie disponibile:
Stores > Configuration > Kowal > Google Indexing API,- meniul administrativ
Google Indexing API > Indexing Queue, Google Indexing API > Import URLs,Google Indexing API > API Logs,Google Indexing API > Setup Assistant.
În baza de date ar trebui să fie create tabelele:
kowal_google_indexing_queue,kowal_google_indexing_api_log.
4. Pregătirea Google Cloud și Search Console
4.1. Crearea proiectului Google Cloud
- Accesați Google Cloud Console.
- Creați un proiect nou sau selectați un proiect existent utilizat pentru magazin.
- Activați API-ul:
Indexing APIFără API activat, modulul nu va putea trimite corect solicitările.
4.2. Crearea contului de serviciu
- În Google Cloud accesați
IAM & Admin > Service Accounts. - Creați un cont de serviciu nou.
- Generați o cheie în format JSON.
- Descărcați fișierul JSON și păstrați-l în siguranță.
Modulul cere ca JSON-ul să conțină cel puțin câmpurile:
type,project_id,private_key,client_email.
Câmpul type trebuie să aibă valoarea:
service_account4.3. Adăugarea contului de serviciu ca proprietar în Search Console
- Deschideți Google Search Console.
- Selectați proprietatea corespunzătoare domeniului magazinului.
- Asigurați-vă că proprietatea este verificată.
- Adăugați adresa
client_emaildin fișierul JSON ca proprietar al proprietății.
Exemplu de adresă a contului de serviciu:
my-service-account@project-name.iam.gserviceaccount.comDacă acel cont de serviciu nu este proprietarul proprietății din Search Console, Google poate returna erori de permisiuni, de exemplu lipsa confirmării proprietății URL-ului.
5. Configurarea modulului în Magento
Configurația se află în:
Stores > Configuration > Kowal > Google Indexing APIConfigurația suportă scope-urile Magento:
- Default Config,
- Website,
- Store View.
Datorită acestui lucru, puteți avea setări separate pentru magazine sau view-uri diferite, dacă proiectul necesită acest lucru.
6. Secțiunea General
Enable
Implicit:
NoActivează sau dezactivează funcționarea modulului.
Când câmpul are valoarea No, cron nu procesează coada. Adresele pot exista în baza de date, dar procesorul cozii nu le va trimite către Google.
Recomandare:
- în timpul configurării inițiale setați
Nosau lăsațiDry Run = Yes, - după testele reușite setați
Yes.
Dry Run
Implicit:
YesMod de test. Când Dry Run este activat, modulul procesează înregistrările din coadă, salvează statusurile și logurile, dar nu trimite solicitări reale către Google.
Acesta este cel mai sigur mod pentru prima pornire, testele de configurare și verificarea faptului că URL-urile ajung în coadă conform așteptărilor.
Recomandare:
- efectuați întotdeauna primele teste cu
Dry Run = Yes, - dezactivați
Dry Runabia după verificarea credentials, allowed hosts, cozii și logurilor.
7. Secțiunea Google Access Credentials
Credentials Source
Implicit:
Encrypted configuration valueDefinește de unde preia modulul JSON-ul contului de serviciu Google.
Opțiuni disponibile:
| Opțiune | Valoare tehnică | Descriere |
|---|---|---|
Encrypted configuration value | config | JSON-ul este lipit în configurația Magento și salvat ca valoare criptată sensitive config. |
Uploaded JSON file | file | JSON-ul este încărcat ca fișier și salvat în afara directorului pub, în var/google-indexing. |
Recomandare:
- pentru implementări simple se poate folosi valoarea criptată din configurație,
- pentru mediile cu control al accesului la fișiere, încărcarea fișierului JSON poate fi mai convenabilă.
Service Account JSON
Vizibil atunci când Credentials Source = Encrypted configuration value.
În acest câmp trebuie lipit conținutul complet al fișierului JSON al contului de serviciu Google.
Modulul validează JSON-ul înainte de salvare. Sunt verificate:
- corectitudinea formatului JSON,
- prezența câmpurilor
type,project_id,private_key,client_email, - valoarea
type = service_account.
Valoarea este salvată ca configurație Magento criptată.
Service Account JSON File
Vizibil atunci când Credentials Source = Uploaded JSON file.
Permite încărcarea fișierului JSON al contului de serviciu Google.
Modulul:
- acceptă doar fișiere cu extensia
.json, - validează conținutul fișierului,
- verifică prezența câmpurilor obligatorii
type,project_id,private_key,client_email, - salvează fișierul în afara directorului public, în
var/google-indexing, - încearcă să seteze permisiunile fișierului la
0600, dacă driverul de fișiere permite acest lucru.
Fișierul este salvat cu un nume dependent de scope-ul configurației, de exemplu pentru scope-ul global:
var/google-indexing/service-account-default-0.jsonGoogle Cloud Project ID
Câmp text pentru identificatorul proiectului Google Cloud.
În implementarea actuală a modulului, autorizarea principală se bazează pe datele din JSON-ul contului de serviciu. Câmpul Google Cloud Project ID are un rol informativ și ajută la organizarea configurației, mai ales atunci când magazinul folosește mai multe medii sau mai multe proiecte Google Cloud.
Recomandare:
- introduceți valoarea
project_iddin fișierul JSON, - folosiți proiecte Google Cloud separate pentru mediile de producție și de test, dacă această separare este adoptată în proiect.
8. Secțiunea Queue and Limits
Daily Publish Limit
Implicit:
200Definește numărul maxim de trimiteri publish pe care modulul le poate efectua într-o zi.
Limiterul numără requesturile de tip:
publish,publish_dry_run.
Dacă limita este consumată, procesorul cozii nu va prelua alte înregistrări pentru trimitere până la următoarea fereastră zilnică.
Recomandare:
- lăsați
200dacă proiectul utilizează limita implicită de onboarding Google, - măriți valoarea doar atunci când proiectul Google Cloud are aprobată o limită mai mare,
- setarea
0blochează trimiterea, deoarece numărul de sloturi disponibile va fi0.
Requests Per Minute Limit
Implicit:
60Definește numărul maxim de requesturi publish pe minut.
Modulul compară această valoare cu numărul de requesturi salvate în loguri în ultimul minut. Dacă limita pe minut este atinsă, cron nu va procesa alte înregistrări în acea execuție.
Recomandare:
- pentru o implementare tipică, păstrați valoarea implicită,
- reduceți valoarea dacă doriți să încărcați API-ul mai conservator,
- nu setați
0, decât dacă doriți să opriți temporar trimiterea.
Cron Batch Size
Implicit:
20Definește numărul maxim de înregistrări din coadă procesate într-o singură execuție cron.
Numărul real de înregistrări procesate este limitat suplimentar de:
Daily Publish Limit,Requests Per Minute Limit,- numărul de înregistrări gata de trimitere,
- statusul și data
scheduled_at.
Recomandare:
20este o valoare de start sigură,- pentru cozi mari valoarea poate fi crescută, dar numai ținând cont de limitele Google.
Default Indexing Lag (minutes)
Implicit:
15Definește întârzierea implicită dintre adăugarea URL-ului în coadă și momentul din care poate fi trimis.
Întârzierea ajută la:
- reducerea duplicatelor,
- evitarea trimiterii după fiecare schimbare minoră,
- oferirea de timp administratorului pentru corectarea conținutului,
- gestionarea mai bună a limitelor API.
În implementarea actuală, această setare este folosită atunci când trimiterea nu are propria întârziere.
Manual Form Indexing Lag (minutes)
Implicit:
15Definește întârzierea pentru URL-urile adăugate prin formularul:
Google Indexing API > Import URLsDacă administratorul lipește manual o listă de URL-uri, fiecare adresă corectă va fi planificată cu această întârziere.
Recomandare:
- setați
0dacă importul manual trebuie să ajungă imediat în coadă, - lăsați
15dacă doriți să păstrați un buffer pentru deduplicare și controlul trimiterilor.
Mass Action Indexing Lag (minutes)
Implicit:
15Definește întârzierea pentru URL-urile adăugate prin:
- acțiuni în masă pentru produse,
- acțiuni în masă pentru pagini CMS,
- butoanele de trimitere a indexării de pe ecranele de editare ale produsului, categoriei și paginii CMS.
Recomandare:
- pentru operațiuni în masă, păstrați valoarea
15sau una mai mare, - pentru magazine mici și muncă administrativă manuală poate fi luată în calcul o valoare mai mică.
Max Attempts
Implicit:
5Definește numărul maxim de încercări de trimitere a unei singure înregistrări din coadă.
Dacă Google returnează o eroare temporară, modulul va seta statusul retry, dacă numărul de încercări este mai mic decât Max Attempts. După depășirea limitei, înregistrarea va primi statusul failed_permanent.
Erori tratate ca temporare:
408,409,412,429,500,502,503,504.
Retry Delay (minutes)
Implicit:
15Întârzierea de bază înainte de următoarea încercare de trimitere după o eroare temporară.
Cron folosește o întârziere progresivă. Multiplicatorul depinde de numărul de încercări și este limitat la maximum 24. Astfel, încercările succesive nu sunt executate prea agresiv.
Exemplu pentru valoarea 15:
| Încercare | Întârziere aproximativă |
|---|---|
| 1 | 15 minute |
| 2 | 30 minute |
| 3 | 60 minute |
| 4 | 120 minute |
Allowed Source Types
Implicit:
manual,product,category,cms_page,amasty_blog_postLista tipurilor de surse permise, separate prin virgule.
Valori suportate:
| Valoare | Semnificație |
|---|---|
manual | URL adăugat manual prin formularul de import. |
product | URL de produs. |
category | URL de categorie. |
cms_page | URL de pagină CMS. |
amasty_blog_post | URL de articol Amasty Blog, dacă este utilizat modulul separat de integrare. |
Dacă tipul sursei nu se află pe listă, schedulerul va omite trimiterea și o va marca drept skipped.
Recomandare:
- păstrați valorile implicite dacă magazinul folosește toate sursele standard,
- eliminați sursele pe care nu doriți să le permiteți în coadă.
Allowed URL Hosts
Implicit:
golLista hosturilor URL permise, separată prin virgule.
Exemplu:
example.com,www.example.comDacă lista este completată, modulul va accepta doar adresele aparținând hosturilor indicate. Dacă URL-ul are alt host, validarea va returna eroarea:
host_not_allowedRecomandare:
- în producție completați întotdeauna această listă,
- adăugați toate hosturile folosite de magazin, de exemplu domeniul principal, versiunea
www, domeniile store view și domeniile de limbă, - nu adăugați domenii de test în configurația de producție.
Require HTTPS URLs
Implicit:
YesImpune ca URL-urile trimise să folosească schema https.
Dacă acest câmp este activat, o adresă cu http va fi respinsă cu eroarea:
https_requiredRecomandare:
- pentru magazinele de producție păstrați
Yes, - folosiți
Nodoar în medii de test excepționale.
9. Secțiunea Auto-Indexing
Enable Auto-Indexing
Implicit:
NoCâmpul este pregătit pentru integrări automate la salvarea sau ștergerea entităților și pentru provideri suplimentari de URL-uri.
În aria actuală a modulului sunt disponibile mecanisme manuale și administrative de adăugare a URL-urilor în coadă, inclusiv import URL-uri, Mass Actions și butoane în formularele de editare.
Recomandare:
- păstrați
Nodacă auto-indexing nu a fost implementat în proiect, - activați-l doar atunci când proiectul conține suport pentru evenimente automate ale entităților care folosesc această configurație.
10. Secțiunea Logs
API Log Retention Days
Implicit:
90Definește numărul de zile de păstrare a logurilor API.
Cronul care curăță logurile rulează zilnic la:
03:15Elimină intrările mai vechi decât numărul de zile setat în acest câmp.
Recomandare:
90de zile reprezintă o valoare rezonabilă pentru diagnosticare,- în cazul unui număr mare de requesturi, retenția poate fi redusă,
- în audituri SEO, retenția poate fi crescută, ținând cont de dimensiunea tabelului de loguri.
11. Asistentul de instalare și configurare
Asistentul se află în:
Google Indexing API > Setup AssistantScopul lui este verificarea rapidă a faptului că setările din Magento și Google sunt pregătite pentru primul test.
11.1. Secțiunea Current Status
Asistentul afișează starea curentă a celor mai importante elemente:
| Câmp | Semnificație |
|---|---|
Module | Informează dacă modulul este activat în configurație. |
Dry Run | Informează dacă este activ modul de test fără trimitere reală către Google. |
Credentials | Arată dacă modulul poate citi și parsa credentials Google. |
Service Account Email | Afișează client_email din JSON-ul contului de serviciu. Această adresă trebuie adăugată ca proprietar în Search Console. |
Allowed Hosts | Afișează lista hosturilor permise în configurație. |
Queue | Afișează numărul înregistrărilor cu statusurile scheduled, pending, retry și failed_permanent. |
Dacă Credentials are statusul Missing or invalid, trebuie să reveniți la configurare și să corectați JSON-ul sau fișierul credentials.
Dacă Allowed Hosts afișează Not configured, modulul nu limitează hosturile. Tehnic acest lucru poate funcționa, dar în producție este recomandată introducerea explicită a hosturilor magazinului.
11.2. Secțiunea Setup Steps
Asistentul afișează lista pașilor necesari înainte de primul request real:
- Crearea sau selectarea proiectului Google Cloud.
- Activarea Indexing API și crearea unei chei JSON pentru contul de serviciu.
- Lipirea JSON-ului sau încărcarea fișierului JSON în configurația Magento.
- Adăugarea service account email ca proprietar în Google Search Console.
- Rularea testelor, apoi importul unui URL cu
Dry Runactivat.
Asistentul conține linkuri către:
- Google Cloud pentru Indexing API,
- configurația modulului în Magento,
- Google Search Console.
11.3. Test Google Credentials
Butonul:
Test Google Credentialsverifică dacă Magento poate folosi datele contului de serviciu pentru a obține un token OAuth pentru scope-ul:
https://www.googleapis.com/auth/indexingUn rezultat pozitiv înseamnă că:
- JSON-ul este corect,
- cheia privată poate fi utilizată,
- Google a emis tokenul OAuth.
Un rezultat negativ poate însemna:
- JSON incorect,
private_keygreșit sau corupt,- lipsa unui câmp obligatoriu în JSON,
- o problemă de comunicare cu Google,
- utilizarea unei chei care nu aparține unui cont de serviciu.
Acest test nu confirmă încă faptul că respectivul cont de serviciu are drepturi de proprietar asupra domeniului în Search Console. Pentru aceasta este necesar testul URL metadata sau o trimitere reală a unui URL de test.
11.4. Test URL Metadata
Formularul:
Test URL Metadatapermite introducerea unui URL public de pe un host permis și executarea unui request metadata către Google Indexing API.
Înainte de trimiterea requestului, modulul:
- normalizează URL-ul,
- verifică dacă URL-ul este absolut,
- verifică schema
httpsauhttps, - când
Require HTTPS URLseste activat, impunehttps, - verifică
Allowed URL Hosts, dacă au fost configurate.
Rezultate posibile:
| Rezultat | Semnificație |
|---|---|
| Succes HTTP 2xx | Google a returnat metadata pentru URL. |
| HTTP 404 | Adesea înseamnă că URL-ul nu a avut încă o trimitere anterioară reușită prin Indexing API. Acest lucru nu înseamnă neapărat o configurare greșită. |
| Eroare de validare înainte de request | URL-ul nu îndeplinește condițiile modulului, de exemplu host greșit, lipsa HTTPS sau adresă neabsolută. |
| Eroare HTTP diferită de 404 | Trebuie verificat mesajul Google, permisiunile Search Console, credentials și limitele. |
Testul metadata nu creează o nouă trimitere publish. El servește la diagnosticarea conexiunii și a statusului URL-ului.
12. Prima pornire pas cu pas
Ordinea recomandată pentru prima pornire:
- Instalați modulul și rulați
setup:upgrade. - În Magento accesați
Stores > Configuration > Kowal > Google Indexing API. - Setați
Enable = Yes. - Lăsați
Dry Run = Yes. - Selectați sursa credentials.
- Lipiți JSON-ul contului de serviciu sau încărcați fișierul JSON.
- Completați
Google Cloud Project IDcu valoareaproject_iddin JSON. - Completați
Allowed URL Hosts, de exempluexample.com,www.example.com. - Păstrați limitele implicite dacă Google nu a aprobat limite mai mari.
- Salvați configurația și goliți cache-ul.
- Accesați
Google Indexing API > Setup Assistant. - Verificați dacă asistentul afișează credentials ca fiind pregătite.
- Faceți clic pe
Test Google Credentials. - Adăugați service account email ca proprietar în Google Search Console, dacă acest lucru nu a fost făcut deja.
- Executați
Test URL Metadatapentru un URL public de pe un host permis. - Accesați
Google Indexing API > Import URLs. - Adăugați un URL de test cu acțiunea
URL_UPDATED. - Rulați cron Magento:
bin/magento cron:run- Verificați
Google Indexing API > Indexing Queue. - Verificați
Google Indexing API > API Logs. - Dacă totul funcționează corect, dezactivați
Dry Run. - Adăugați din nou un URL de test și verificați răspunsul real Google.
13. Importul URL-urilor din panoul de administrare
Importul manual se află în:
Google Indexing API > Import URLsFormularul conține câmpurile:
| Câmp | Descriere |
|---|---|
Action | Tipul trimiterii către Google: adăugare/actualizare sau ștergere. |
Store View | Store view la care trebuie atribuită trimiterea. Este disponibilă și opțiunea globală Use global/no store. |
URLs | Listă de URL-uri absolute, câte o adresă pe linie. |
Acțiuni disponibile:
| Acțiune în formular | Valoare API | Semnificație |
|---|---|---|
Submit URLs for indexing | URL_UPDATED | Informează Google că URL-ul a fost adăugat sau actualizat. |
Delete URLs from indexing | URL_DELETED | Informează Google că URL-ul a fost eliminat și poate fi scos din index. |
După trimiterea formularului, modulul va afișa un rezumat:
- adăugate,
- actualizate,
- deduplicate,
- incorecte,
- omise.
Primele 10 mesaje de validare sunt afișate ca notice în panoul de administrare.
14. Coada de indexare
Coada se află în:
Google Indexing API > Indexing QueueFiecare înregistrare din coadă conține, printre altele:
- URL,
- hash-ul URL-ului,
- store ID,
- website ID,
- tipul sursei,
- ID-ul entității sursă,
- originea requestului,
- acțiunea
URL_UPDATEDsauURL_DELETED, - statusul,
- prioritatea,
- numărul de încercări,
- numărul maxim de încercări,
- data trimiterii planificate,
- data procesării,
- ultimul cod de eroare,
- ultimul motiv al erorii,
- ultimul mesaj de eroare,
- răspunsul Google,
- informația
created_by.
Statusurile cozii
| Status | Semnificație |
|---|---|
scheduled | URL-ul este planificat, dar încă așteaptă data scheduled_at. |
pending | URL-ul este pregătit pentru procesare de către cron. |
processing | URL-ul este procesat în prezent. |
success | Google a returnat un răspuns de succes. |
retry | A apărut o eroare temporară, iar înregistrarea așteaptă următoarea încercare. |
failed_permanent | Trimiterea s-a încheiat definitiv sau a fost depășit numărul maxim de încercări. |
cancelled | Înregistrarea a fost anulată manual. |
Acțiuni asupra înregistrărilor din coadă
| Acțiune | Funcționare |
|---|---|
Transmit Now | Setează înregistrarea ca urgentă, o blochează, o trimite imediat prin clientul Google și salvează rezultatul. |
Retry | Setează înregistrarea ca pending, curăță blocarea și planifică imediat o nouă încercare. |
Cancel | Setează statusul cancelled și curăță blocarea. |
Notă: Transmit Now execută un request real dacă Dry Run = No. Cu Dry Run = Yes va fi salvat un log dry-run fără trimitere reală către Google.
15. Cron
Modulul adaugă două taskuri cron în grupul default.
Procesarea cozii
kowal_google_indexing_process_queueProgramare:
*/5 * * * *Taskul pornește procesorul cozii la fiecare 5 minute.
Procesorul:
- Verifică dacă modulul este activat.
- Eliberează blocările vechi ale înregistrărilor
processingmai vechi de 30 de minute. - Mută înregistrările
scheduledînpendingdacăscheduled_at <= now. - Verifică sloturile disponibile în limitele zilnice și pe minut.
- Preia înregistrările
pendingșiretry. - Le sortează după prioritate și data trimiterii planificate.
- Trimite requestul către Google sau execută dry-run.
- Salvează răspunsul, statusul și logul API.
Curățarea logurilor
kowal_google_indexing_cleanup_logsProgramare:
15 3 * * *Taskul șterge logurile API mai vechi decât numărul de zile setat în câmpul:
API Log Retention Days16. Loguri API
Logurile sunt disponibile în:
Google Indexing API > API LogsLogul include:
- ID-ul înregistrării din coadă,
- store ID,
- tipul requestului,
- URL-ul endpointului,
- payload-ul,
- statusul HTTP,
- body-ul răspunsului,
- durata requestului,
- data creării logului.
Tipuri de requesturi:
| Tip | Semnificație |
|---|---|
publish | Trimitere reală a URL-ului către Google. |
publish_dry_run | Procesare în modul dry-run fără request real către Google. |
metadata | Test metadata pentru URL. |
17. Mass Actions și butoane administrative
Modulul adaugă mecanisme pentru trimiterea URL-urilor din panoul de administrare.
Produse
În gridul de produse este disponibilă o acțiune în masă care adaugă URL-urile produselor în coadă.
Modulul omite produsele:
- dezactivate,
- care nu sunt vizibile individual.
URL-urile sunt generate pe baza URL rewrites pentru store view-urile active.
Pagini CMS
În gridul paginilor CMS este disponibilă o acțiune în masă care adaugă URL-urile paginilor în coadă.
Modulul omite paginile inactive.
Dacă pagina CMS este atribuită tuturor store view-urilor, modulul rezolvă URL-urile pentru toate store view-urile.
Produs, categorie și pagină CMS - butoane în formularul de editare
Modulul adaugă butoane pentru trimiterea indexării pe ecranele de editare ale:
- produsului,
- categoriei,
- paginii CMS.
Butonul rezolvă URL-urile entității pentru store view și le adaugă în coadă ca URL_UPDATED.
18. Configurație inițială recomandată
Pentru prima implementare în producție:
| Câmp | Recomandare |
|---|---|
Enable | Yes după salvarea credentials și allowed hosts. |
Dry Run | Yes pentru teste, apoi No. |
Credentials Source | Encrypted configuration value sau Uploaded JSON file, conform politicii proiectului. |
Google Cloud Project ID | project_id din JSON. |
Daily Publish Limit | 200, cu excepția cazului în care Google a aprobat o limită mai mare. |
Requests Per Minute Limit | 60 sau mai puțin în cazul unei implementări prudente. |
Cron Batch Size | 20. |
Default Indexing Lag | 15. |
Manual Form Indexing Lag | 0-15, în funcție de modul de lucru al administratorilor. |
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 | Toate hosturile de producție ale magazinului. |
Require HTTPS URLs | Yes. |
Enable Auto-Indexing | No, cu excepția cazului în care proiectul implementează provideri automați. |
API Log Retention Days | 90. |
19. Probleme tipice și diagnosticare
Credentials test failed
Verificați:
- dacă JSON-ul este corect,
- dacă JSON-ul provine dintr-un cont de serviciu,
- dacă acesta conține
private_keyșiclient_email, - dacă câmpul
typeare valoareaservice_account, - dacă fișierul JSON nu a fost corupt în timpul copierii.
Google returnează o eroare de permisiuni
Verificați:
- dacă domeniul este verificat în Search Console,
- dacă
client_emailal contului de serviciu este adăugat ca proprietar, - dacă URL-ul testat aparține aceleiași proprietăți Search Console,
- dacă utilizați proiectul Google Cloud corect și JSON-ul corect.
URL-ul este respins înainte de trimitere
Verificați mesajul de validare:
| Mesaj | Cauză |
|---|---|
empty_url | URL gol. |
url_too_long | URL-ul are mai mult de 2048 de caractere. |
url_not_absolute | URL-ul nu are schemă sau host. |
https_required | Cerința HTTPS este activată, iar URL-ul folosește HTTP. |
invalid_scheme | Schema nu este http sau https. |
host_not_allowed | Hostul URL-ului nu se află în Allowed URL Hosts. |
Coada nu este procesată
Verificați:
- dacă
Enable = Yes, - dacă cron Magento funcționează,
- dacă înregistrările au statusul
pendingsauretry, - dacă
scheduled_atnu este în viitor, - dacă limitele zilnice sau pe minut nu sunt consumate,
- dacă
Daily Publish LimitșiRequests Per Minute Limitnu sunt setate la0.
Înregistrările ajung în retry
Verificați:
- statusul HTTP din înregistrarea cozii,
- logul API,
- răspunsul Google,
- dacă nu apare limita
429, - dacă nu există erori temporare
5xx, - dacă
Max AttemptsșiRetry Delaysunt setate conform așteptărilor.
20. Integrare opțională cu Amasty Blog
Integrarea cu Amasty Blog este prevăzută ca modul separat:
Kowal_GoogleIndexingApiAmastyBlogPachet:
kowal/module-google-indexing-api-amasty-blogAcest modul nu este necesar pentru funcționarea integrării principale. Trebuie instalat doar în proiectele care folosesc amasty/blog și au nevoie de o acțiune în masă pentru articolele de blog.
Write Your Own Review




















