Google Indexing API pentru Magento 2
- Compatibilitate
- 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.7, 2.3.6, 2.3.5, 2.3.4
Descriere / Google Indexing API pentru Magento 2
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.
Mai multe informații
| Addtocart Description | DEMOusername: indexing |
|---|---|
| Conformitate cu șablonul | Luma / Blank, KOWAL |
Instrucțiuni de instalare a modulului
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 solicitări. Coada este procesată de cron Magento, iar fiecare solicitare este validată, deduplicată, supusă limitelor și jurnalizată.
Conform documentației Google, Indexing API este destinat oficial în principal paginilor cu date structurate:
JobPosting,BroadcastEventîncorporat înVideoObject.
Utilizarea API pentru produse, categorii, pagini CMS sau articole de blog nu garantează indexarea și nici poziția în rezultatele căutării. Modulul trebuie tratat ca un instrument tehnic pentru trimiterea URL-urilor, nu ca un înlocuitor pentru sitemap-uri XML, canonicale corecte, robots, hreflang, linking intern și calitatea SEO generală.
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, asigură-te că mediul îndeplinește cerințele:
- Magento 2.4.x,
- PHP 8.1 sau mai nou,
- Composer,
- cron Magento funcțional,
- posibilitatea instalării pachetului
google/apiclient, - acces administrativ la Magento,
- proiect Google Cloud cu Indexing API activat,
- proprietate în Google Search Console verificată pentru domeniul magazinului,
- cont 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
Adaugă repository-ul Composer Kowal în proiectul Magento:
Datele de acces la repository-ul Composer, adresa de e-mail a clientului și tokenul de licență, le vei primi prin e-mail după achiziție. Sunt disponibile și în panoul clientului după autentificarea pe kowal.store. Înlocuiește TWOJ_EMAIL_KLIENTA cu adresa de e-mail a contului tău, iar TWOJ_TOKEN cu tokenul primit. Execută comenzile în directorul rădăcină Magento.
composer config repositories.kowal composer https://repo.kowal.storeConfigurează datele de acces la repository-ul Composer Kowal:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'Instalează pachetul:
composer require kowal/module-google-indexing-apiActivează modulul:
bin/magento module:enable Kowal_GoogleIndexingApiExecută actualizarea schemei bazei de date:
bin/magento setup:upgradeCurăță cache-ul:
bin/magento cache:flushÎn modul de producție, execută 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, plasează-l în directorul:
app/code/Kowal/GoogleIndexingApiApoi instalează suplimentar dependența Google API Client în proiectul Magento:
composer require google/apiclient:^2.16Activează modulul și execută 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
Verifică dacă modulul este activ:
bin/magento module:status Kowal_GoogleIndexingApiDupă instalarea corectă, în panoul administrativ 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
- Accesează Google Cloud Console.
- Creează un proiect nou sau selectează un proiect existent utilizat pentru magazin.
- Activează API:
Indexing APIFără API activat, modulul nu va putea trimite corect solicitările.
4.2. Crearea contului de serviciu
- În Google Cloud, accesează
IAM & Admin > Service Accounts. - Creează un cont de serviciu nou.
- Generează o cheie în format JSON.
- Descarcă fișierul JSON și păstrează-l în siguranță.
Modulul necesită ca JSON 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 Google Search Console.
- Selectează proprietatea corespunzătoare domeniului magazinului.
- Asigură-te că proprietatea este verificată.
- Adaugă 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ă contul de serviciu nu va fi proprietar al proprietății Search Console, Google poate returna erori de permisiuni, de exemplu lipsa confirmării proprietății asupra 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.
Astfel poți avea setări separate pentru diferite magazine sau store views, 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 primei configurări setează
Nosau lasăDry Run = Yes, - după teste corecte setează
Yes.
Dry Run
Implicit:
YesMod de testare. Când Dry Run este activat, modulul procesează înregistrările din coadă, salvează statusurile și logurile, dar nu trimite o solicitare reală către Google.
Este cel mai sigur mod pentru prima pornire, testarea configurației și verificarea faptului că URL-urile ajung în coadă conform așteptărilor.
Recomandare:
- efectuează întotdeauna primele teste cu
Dry Run = Yes, - dezactivează
Dry Runnumai după verificarea credentials, allowed hosts, cozii și logurilor.
7. Secțiunea Google Access Credentials
Credentials Source
Implicit:
Encrypted configuration valueStabileș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 sensitive config criptată. |
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 utiliza valoarea criptată în configurație,
- pentru medii cu control al accesului la fișiere, uploadul fișierului JSON poate fi mai comod.
Service Account JSON
Vizibil 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 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ă câmpurile 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 rol informativ și de organizare a configurației, mai ales atunci când magazinul utilizează mai multe medii sau mai multe proiecte Google Cloud.
Recomandare:
- introdu valoarea
project_iddin fișierul JSON, - utilizează proiecte Google Cloud separate pentru mediile de producție și de testare, dacă o astfel de separare este adoptată în proiect.
8. Secțiunea Queue and Limits
Daily Publish Limit
Implicit:
200Stabilește numărul maxim de solicitări publish pe care modulul le poate efectua într-o zi.
Limiterul numără requesturile de tip:
publish,publish_dry_run.
Dacă limita este utilizată, procesorul cozii nu va prelua alte înregistrări pentru trimitere până la următoarea fereastră zilnică.
Recomandare:
- lasă
200dacă proiectul utilizează limita implicită de onboarding Google, - crește valoarea numai dacă proiectul Google Cloud are aprobată o limită mai mare,
- setarea
0blochează trimiterea, deoarece numărul disponibil de sloturi va fi0.
Requests Per Minute Limit
Implicit:
60Stabilește numărul maxim de requesturi publish pe minut.
Modulul compară această valoare cu numărul de requesturi salvate în loguri din ultimul minut. Dacă limita pe minut este utilizată, cron nu va procesa alte înregistrări în rularea respectivă.
Recomandare:
- pentru o implementare tipică, lasă valoarea implicită,
- redu valoarea dacă vrei să încarci API mai conservator,
- nu seta
0, decât dacă vrei să oprești temporar trimiterea.
Cron Batch Size
Implicit:
20Stabilește numărul maxim de înregistrări din coadă procesate într-o singură rulare cron.
Numărul real de înregistrări procesate este limitat și de:
Daily Publish Limit,Requests Per Minute Limit,- numărul de înregistrări pregătite pentru trimitere,
- statusul și data
scheduled_at.
Recomandare:
20este o valoare inițială sigură,- pentru cozi mari, valoarea poate fi crescută, dar numai ținând cont de limitele Google.
Default Indexing Lag (minutes)
Implicit:
15Stabilește întârzierea implicită dintre adăugarea URL-ului în coadă și momentul de la care poate fi trimis.
Întârzierea ajută la:
- limitarea duplicatelor,
- evitarea trimiterii după fiecare modificare minoră,
- oferirea de timp administratorului pentru corectarea conținutului,
- gestionarea mai bună a limitei API.
În implementarea actuală, această setare este utilizată atunci când solicitarea nu are propria întârziere.
Manual Form Indexing Lag (minutes)
Implicit:
15Stabilește întârzierea pentru URL-urile adăugate prin formular:
Google Indexing API > Import URLsDacă administratorul lipește manual o listă de URL-uri, fiecare adresă corectă va fi programată cu această întârziere.
Recomandare:
- setează
0dacă importul manual trebuie să ajungă imediat în coadă, - lasă
15dacă vrei să păstrezi un buffer pentru deduplicare și controlul solicitărilor.
Mass Action Indexing Lag (minutes)
Implicit:
15Stabilește întârzierea pentru URL-urile adăugate prin:
- acțiuni în masă pentru produse,
- acțiuni în masă pentru pagini CMS,
- butoane de solicitare a indexării pe ecranele de editare a produsului, categoriei și paginii CMS.
Recomandare:
- pentru operațiuni în masă, lasă valoarea
15sau una mai mare, - pentru magazine mici și lucru administrativ manual, se poate lua în considerare o valoare mai mică.
Max Attempts
Implicit:
5Stabileș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, atât timp cât 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 utilizează o întârziere progresivă. Multiplicatorul depinde de numărul de încercări și este limitat la maximum 24. Astfel, încercările succesive nu sunt efectuate 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 acceptate:
| Valoare | Semnificație |
|---|---|
manual | URL adăugat manual prin formularul de import. |
product | URL produs. |
category | URL categorie. |
cms_page | URL pagină CMS. |
amasty_blog_post | URL articol Amasty Blog, dacă este utilizat un modul de integrare separat. |
Dacă tipul sursei nu se află pe listă, schedulerul va omite solicitarea și o va marca drept skipped.
Recomandare:
- lasă valorile implicite dacă magazinul utilizează toate sursele standard,
- elimină sursele pe care nu vrei să le permiți în coadă.
Allowed URL Hosts
Implicit:
pusteLista hosturilor URL permise, separate prin virgule.
Exemplu:
example.com,www.example.comDacă lista este completată, modulul va accepta numai adresele care aparțin hosturilor indicate. Dacă URL-ul are un alt host, validarea va returna eroarea:
host_not_allowedRecomandare:
- în producție, completează întotdeauna această listă,
- adaugă toate hosturile utilizate de magazin, de exemplu domeniul principal, versiunea
www, domeniile store view și domeniile lingvistice, - nu adăuga domenii de test în configurația de producție.
Require HTTPS URLs
Implicit:
YesImpune ca adresele URL 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, lasă
Yes, - folosește
Nodoar în medii de testare excepționale.
9. Secțiunea Auto-Indexing
Enable Auto-Indexing
Implicit:
NoCâmpul este pregătit pentru integrări automate de salvare sau ștergere a entităților și pentru provideri suplimentari de URL-uri.
În domeniul actual al modulului sunt disponibile mecanisme manuale și administrative de adăugare a URL-urilor în coadă, printre altele importul URL-urilor, Mass Actions și butoanele de pe formularele de editare.
Recomandare:
- lasă
Nodacă auto-indexing nu a fost implementat în proiect, - activează doar atunci când proiectul include suport pentru evenimente automate ale entităților care folosesc această configurație.
10. Secțiunea Logs
API Log Retention Days
Implicit:
90Stabilește numărul de zile pentru păstrarea logurilor API.
Cronul de curățare a logurilor rulează zilnic la:
03:15Șterge intrările mai vechi decât numărul de zile setat în acest câmp.
Recomandare:
90de zile este o valoare rezonabilă pentru diagnosticare,- la un număr mare de requesturi, retenția poate fi redusă,
- în cazul auditurilor SEO, retenția poate fi mărită, ținând cont de dimensiunea tabelului de loguri.
11. Asistent de instalare și configurare
Asistentul se află în:
Google Indexing API > Setup AssistantScopul său este verificarea rapidă dacă configurația din Magento și Google este pregătită pentru primul test.
11.1. Secțiunea Current Status
Asistentul afișează starea curentă a celor mai importante elemente:
| Câmp | Semnificație |
|---|---|
Module | Indică dacă modulul este activat în configurație. |
Dry Run | Indică dacă este activ modul de testare 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 | Arată lista hosturilor permise în configurație. |
Queue | Arată numărul de înregistrări în statusurile scheduled, pending, retry și failed_permanent. |
Dacă Credentials are statusul Missing or invalid, trebuie să revii la configurație și să corectezi JSON-ul sau fișierul credentials.
Dacă Allowed Hosts arată 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 unui proiect Google Cloud.
- Activarea Indexing API și crearea JSON key 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 folosită,
- Google a emis tokenul OAuth.
Un rezultat negativ poate însemna:
- JSON incorect,
private_keygreșit sau deteriorat,- lipsa unui câmp obligatoriu în JSON,
- problemă de comunicare cu Google,
- utilizarea unei chei care nu este cheia unui cont de serviciu.
Acest test nu confirmă încă faptul că respectivul cont de serviciu are acces de proprietar la domeniu în Search Console. Pentru aceasta este necesar testul URL metadata sau o solicitare reală pentru un URL de test.
11.4. Test URL Metadata
Formularul:
Test URL Metadatapermite introducerea unui URL public dintr-un host permis și efectuarea 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, - cu
Require HTTPS URLsactivat, necesităhttps, - 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 are încă o solicitare anterioară reușită prin Indexing API. Acest lucru nu înseamnă neapărat o configurație greșită. |
| Eroare de validare înainte de request | URL-ul nu îndeplinește condițiile modulului, de exemplu host greșit, lipsă 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ă solicitare publish. Servește la diagnosticarea conexiunii și a statusului URL-ului.
12. Prima pornire pas cu pas
Ordinea recomandată pentru prima pornire:
- Instalează modulul și rulează
setup:upgrade. - În Magento, accesează
Stores > Configuration > Kowal > Google Indexing API. - Setează
Enable = Yes. - Lasă
Dry Run = Yes. - Alege sursa credentials.
- Lipește JSON-ul contului de serviciu sau încarcă fișierul JSON.
- Completează
Google Cloud Project IDcu valoareaproject_iddin JSON. - Completează
Allowed URL Hosts, de exempluexample.com,www.example.com. - Lasă limitele implicite dacă Google nu a aprobat limite mai mari.
- Salvează configurația și curăță cache-ul.
- Accesează
Google Indexing API > Setup Assistant. - Verifică dacă asistentul arată credentials ca pregătite.
- Apasă
Test Google Credentials. - Adaugă service account email ca proprietar în Google Search Console, dacă nu ai făcut deja acest lucru.
- Execută
Test URL Metadatapentru un URL public dintr-un host permis. - Accesează
Google Indexing API > Import URLs. - Adaugă un URL de test cu acțiunea
URL_UPDATED. - Rulează cron Magento:
bin/magento cron:run- Verifică
Google Indexing API > Indexing Queue. - Verifică
Google Indexing API > API Logs. - Dacă totul funcționează corect, dezactivează
Dry Run. - Adaugă din nou un URL de test și verifică răspunsul real Google.
13. Importul URL-urilor din panoul administrativ
Importul manual se află în:
Google Indexing API > Import URLsFormularul conține câmpurile:
| Câmp | Descriere |
|---|---|
Action | Tipul solicitării către Google: adăugare/actualizare sau ștergere. |
Store View | Store view căruia trebuie să îi fie atribuită solicitarea. Este disponibilă și opțiunea globală Use global/no store. |
URLs | Lista URL-urilor 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 șters și poate fi eliminat 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 administrativ.
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, - status,
- prioritate,
- 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 programat, dar așteaptă încă data scheduled_at. |
pending | URL-ul este pregătit pentru procesare de către cron. |
processing | URL-ul este în curs de procesare. |
success | Google a returnat un răspuns de succes. |
retry | A apărut o eroare temporară și înregistrarea așteaptă următoarea încercare. |
failed_permanent | Trimiterea a eșuat 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 programează imediat o nouă încercare. |
Cancel | Setează statusul cancelled și curăță blocarea. |
Atenție: 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ă sarcini cron în grupul default.
Procesarea cozii
kowal_google_indexing_process_queueProgram:
*/5 * * * *Sarcina 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înpending, dacăscheduled_at <= now. - Verifică sloturile disponibile în limitele zilnică ș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_logsProgram:
15 3 * * *Sarcina ș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,
- status HTTP,
- body-ul răspunsului,
- durata requestului,
- data creării logului.
Tipuri de requesturi:
| Tip | Semnificație |
|---|---|
publish | Solicitare 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 de trimitere a URL-urilor din panoul administrativ.
Produse
Pe gridul de produse este disponibilă o acțiune în masă care adaugă URL-urile produselor în coadă.
Modulul omite produsele:
- dezactivate,
- invizibile individual.
URL-urile sunt generate pe baza URL rewrites pentru store view-urile active.
Pagini CMS
Pe 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 de solicitare a indexării pe ecranele de editare:
- produs,
- categorie,
- pagină 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 de producție:
| Câmp | Recomandare |
|---|---|
Enable | Yes după salvarea credentials și allowed hosts. |
Dry Run | Yes pe durata testelor, 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 pentru o implementare prudentă. |
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 frecvente și diagnosticare
Credentials test failed
Verifică:
- dacă JSON-ul este corect,
- dacă JSON-ul provine dintr-un cont de serviciu,
- dacă include
private_keyșiclient_email, - dacă câmpul
typeare valoareaservice_account, - dacă fișierul JSON nu a fost deteriorat în timpul lipirii.
Google returnează o eroare de permisiuni
Verifică:
- 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ă folosești proiectul Google Cloud corect și JSON-ul corect.
URL-ul este respins înainte de trimitere
Verifică 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 și nici https. |
host_not_allowed | Hostul URL-ului nu se află în Allowed URL Hosts. |
Coada nu se procesează
Verifică:
- 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 utilizate,
- dacă
Daily Publish LimitșiRequests Per Minute Limitnu sunt setate la0.
Înregistrările ajung în retry
Verifică:
- statusul HTTP în înregistrarea din coadă,
- 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 numai în proiectele care folosesc amasty/blog și au nevoie de acțiune în masă pentru articolele de blog.