Google Indexing API para Magento 2
- Compatibilidade
- 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
Descrição / Google Indexing API para Magento 2
MAGENTO 2 · SUBMISSÕES DE URL · FILA · GOOGLE API
Gira as submissões de URL numa única fila Magento.
Kowal Google Indexing API
Recolha endereços a partir do painel e de integrações, controle duplicados, agendamento e limites de envio. Mantenha o histórico das respostas do Google e distinga claramente a aceitação da submissão da indexação da página.
Dry Run · Retry e logs · Âmbito da API definido pelo Google
COMO FUNCIONA NA PRÁTICA
01 · Configura o acesso e o âmbito
Verifica a conta de serviço, os hosts e as Store View permitidas.
02 · Adiciona endereços à fila
Utiliza importação, ações em massa ou botões.
03 · Monitoriza o processamento
O cron trata do envio, dos limites, do resultado e das novas tentativas.
O que ganha a sua loja?
Conheça as funcionalidades, a utilização e as definições do módulo.
Informar o Google mais rapidamente sobre alterações na loja
O módulo Kowal Google Indexing API para Magento 2 ajuda a submeter ao Google, de forma mais eficiente, URLs que foram adicionados, alterados ou que devem ser removidos do índice. Em vez de esperar apenas pela nova visita padrão do robô do Google, o administrador pode enviar os endereços selecionados para uma fila processada pela Google Indexing API.
A solução é especialmente útil em lojas onde os conteúdos, a oferta, a disponibilidade dos produtos, páginas CMS, landing pages ou publicações de blog mudam com frequência. O módulo organiza todo o processo: recolhe endereços de diferentes áreas do Magento, verifica-os, remove duplicados, controla limites e guarda o histórico da comunicação com o Google.
A Google Indexing API destina-se oficialmente a páginas com dados estruturados
JobPostingeBroadcastEvent. A submissão de um URL através da API não garante indexação, posições nos resultados nem a aceitação de todos os endereços pelo Google. O módulo é uma ferramenta de apoio à submissão técnica de URLs, não substituindo SEO técnico correto, sitemap XML, canonicals, robots, hreflang e ligações internas.
Melhor controlo sobre a submissão de endereços
O módulo dá ao administrador um único local para gerir URLs à espera de envio para o Google. Produtos, categorias, páginas CMS, importação manual de URLs e futuras fontes podem utilizar a mesma fila. Assim, não é necessário criar integrações separadas para cada tipo de conteúdo.
Menos trabalho manual após alterações na loja
Os endereços podem ser adicionados à fila diretamente a partir do painel de administração do Magento. O módulo disponibiliza ações em massa e botões nos ecrãs de edição de entidades selecionadas, permitindo ao administrador solicitar rapidamente a indexação de uma página individual ou de um grupo maior de endereços.
Utilização mais segura dos limites da API
A Google Indexing API funciona com limites. O módulo tem em conta limites diários e por minuto, o tamanho do lote processado pelo cron e o atraso no envio. Dessa forma, os endereços não são enviados de forma caótica e é mais fácil reduzir o risco de consumo desnecessário do limite disponível.
Menos duplicados e submissões repetidas
Antes de guardar o endereço, o módulo normaliza o URL, valida-o e verifica se o mesmo endereço já se encontra numa fila ativa. Se já existir uma submissão semelhante, o sistema pode atualizá-la ou assinalá-la como deduplicada. Isto reduz a desorganização na fila e diminui o número de requests desnecessários para o Google.
Maior transparência para a equipa
Cada submissão tem estado, origem, ação, prioridade, número de tentativas, data prevista de envio e informações sobre a resposta do Google. O administrador vê quais os endereços que aguardam, quais foram enviados corretamente, quais requerem nova tentativa e quais terminaram com erro permanente.
Diagnóstico de problemas mais simples
O módulo guarda logs de comunicação com a Google API, incluindo o tipo de request, o endereço do endpoint, o payload, o estado HTTP, o conteúdo da resposta e a duração. Isto facilita a análise de erros relacionados com configuração, permissões, limites ou com os próprios URLs submetidos.
Preparado para o crescimento da loja
A arquitetura do módulo baseia-se num scheduler e numa fila comuns. Novas fontes de URLs não precisam de comunicar diretamente com o Google. Basta que enviem os endereços para a fila, e o processador existente trata da validação, do agendamento, dos limites, das novas tentativas e do registo em logs.
Como o módulo funciona na prática
O módulo funciona como uma camada intermédia entre o Magento e a Google Indexing API.
- O administrador ou uma integração seleciona os URLs a submeter.
- O módulo normaliza e valida os URLs, incluindo esquema, host e fontes permitidas.
- Os endereços corretos entram numa fila central com o estado, a ação e a data de envio adequados.
- O cron do Magento recolhe ciclicamente os registos prontos para processamento.
- O processador da fila respeita limites, prioridades, atrasos e bloqueios de registos.
- O módulo envia a submissão para a Google Indexing API ou executa o processamento em modo dry-run.
- A resposta do Google é guardada no registo da fila e nos logs da API.
- Em caso de erros temporários, o módulo pode agendar uma nova tentativa com atraso.
Assim, o envio de URLs não depende de um clique único nem de um request direto do painel de administração. Todo o processo é colocado em fila, auditável e mais resistente a problemas temporários com a API.
Funcionalidades principais
- fila central de URLs para diferentes fontes de conteúdo,
- suporte para as ações
URL_UPDATEDeURL_DELETED, - importação manual de vários URLs a partir do painel de administração,
- ações em massa para produtos e páginas CMS,
- botões de submissão de indexação nos ecrãs de edição de produto, categoria e página CMS,
- integração opcional com Amasty Blog como módulo separado,
- normalização e validação de URLs,
- whitelist de hosts permitidos,
- suporte de store view e identificação da origem da submissão,
- deduplicação de submissões ativas,
- atraso de envio, ou seja, indexing lag,
- prioridades e ação
Transmit Now, - processamento por cron,
- controlo do limite diário e por minuto,
- nova tentativa de erros temporários com atraso,
- estados da fila:
scheduled,pending,processing,success,retry,failed_permanent,cancelled, - modo dry-run para testes seguros sem enviar requests reais,
- logs da API e retenção de logs,
- test credentials e metadata no assistente de configuração.
Para quem é este módulo
O módulo é indicado para lojas Magento 2 que:
- atualizam frequentemente a oferta de produtos,
- publicam ou alteram muitas páginas CMS,
- desenvolvem ações de SEO em vários tipos de conteúdo,
- precisam de controlo sobre quais URLs foram submetidos ao Google,
- pretendem reduzir a gestão manual de submissões,
- trabalham num ambiente multistore ou multilanguage,
- precisam de uma auditoria clara dos requests para o Google.
Esta solução é especialmente valiosa para equipas de e-commerce, SEO e administração que pretendem ter um processo comum e organizado para submeter alterações da loja ao Google.
Produtos novos ou alterados
Depois de adicionar um novo produto ou de uma alteração importante a um produto existente, o administrador pode enviar o respetivo endereço para a fila. O módulo trata do registo da submissão, do atraso adequado, da deduplicação e do envio posterior.
Atualização de páginas CMS e landing pages
Quando a equipa de marketing publica uma nova campanha, promoção ou página informativa, o URL pode ser adicionado à fila sem trabalho manual fora do Magento.
Organização de endereços após alterações no site
O módulo suporta não só submissões de atualização, mas também a ação URL_DELETED. Assim, é possível transmitir ao Google informação sobre endereços que devem ser removidos do índice, desde que o cenário em causa esteja em conformidade com as regras de utilização da API.
Ações SEO em massa
Em alterações maiores na loja, como atualização de muitos produtos, migração de conteúdos ou renovação de categorias, o administrador pode utilizar ações em massa e acompanhar o progresso na fila.
Impacto no negócio
A implementação do módulo dá à equipa maior controlo sobre a submissão técnica de alterações ao Google. Em vez de ações dispersas, manuais e difíceis de verificar, passa a existir um único processo: o endereço entra na fila, passa por validação, é enviado respeitando os limites e o resultado fica visível no painel de administração.
O principal valor do módulo é organizar o trabalho em torno da indexação: menos requests aleatórios, menos duplicados, melhor diagnóstico e responsabilidade mais clara sobre o que foi submetido ao Google.
Âmbito oficial da Google Indexing API
Segundo a documentação do Google, a API destina-se a páginas com JobPosting ou BroadcastEvent incorporado em VideoObject. Páginas comuns de produtos, categorias, CMS e publicações de blog não pertencem ao âmbito oficialmente suportado, embora o módulo consiga tecnicamente colocar os seus URLs em fila.
A resposta HTTP 200 e o estado success significam que a submissão foi bem-sucedida. Metadata confirma a notificação, não a data de indexação ou remoção da página. Para URL_DELETED, o endereço deve devolver 404/410 ou conter noindex.
Assistente de configuração e primeira execução
Stores → Configuration → Services → Google Indexing API inclui conta de serviço, hosts, Store View, limites e dry-run. Precisa de uma API ativa no Google Cloud, de uma propriedade verificada no Search Console e das permissões adequadas da conta de serviço.
Marketing → Google Indexing API disponibiliza Setup Assistant, Indexing Queue e Import URLs. Comece pelo dry-run e pelos testes de credentials e metadata, verifique o cron e depois ative o envio real para o âmbito correto.
Integração Amasty Blog e novas fontes
O suporte da ação em massa para Amasty Blog é um pacote separado kowal/module-google-indexing-api-amasty-blog. O módulo principal não requer Amasty Blog.
Uma nova fonte pode transmitir URL, ação URL_UPDATED ou URL_DELETED, origem, entidade e store ID através de IndexingRequestSchedulerInterface. A fila comum assume o agendamento, a validação, a deduplicação e as novas tentativas.
Instalação via Composer
Pacote kowal/module-google-indexing-api, módulo Kowal_GoogleIndexingApi. Depois de configurar o acesso ao repositório Kowal, instale o pacote, ative o módulo, atualize o Magento e limpe a cache. Em produção, inclua a compilação e a implementação de conteúdos estáticos de acordo com o processo da loja.
Da configuração ao resultado
1. Configura o acesso e o âmbito
Verifica a conta de serviço, os hosts e as Store View permitidas.
2. Adiciona endereços à fila
Utiliza importação, ações em massa ou botões.
3. Monitoriza o processamento
O cron trata do envio, dos limites, do resultado e das novas tentativas.
Controlo do percurso das submissões
Importa endereços permitidos pelas regras da API e verifica-os primeiro em dry-run. Na fila, valida a origem, a ação e o tempo previsto.
Depois de ativar o envio, analisa a resposta e o retry. O estado success confirma a aceitação do request, não o aparecimento da página nos resultados do Google.
Organize as submissões e o diagnóstico da API
Quer adaptar o módulo à sua loja? Peça a implementação do Kowal Google Indexing API e discuta a configuração ou as extensões necessárias.
Mais informação
| Addtocart Description | DEMOusername: indexing |
|---|---|
| Compatibilidade com o modelo | Luma / Blank, KOWAL |
Manual de instalação do módulo
Google Indexing API para Magento 2 - instalação e configuração
1. Informações importantes antes da implementação
O módulo integra o Magento 2 com a Google Indexing API e permite adicionar URLs a uma fila central de submissões. A fila é processada pelo cron do Magento, e cada submissão é validada, deduplicada, sujeita a limites e registada em logs.
De acordo com a documentação do Google, a Indexing API destina-se oficialmente sobretudo a páginas com dados estruturados:
JobPosting,BroadcastEventincorporado emVideoObject.
A utilização da API para produtos, categorias, páginas CMS ou publicações de blog não garante indexação nem posições nos resultados de pesquisa. O módulo deve ser tratado como uma ferramenta técnica para submissão de URLs, e não como substituto de sitemap XML, canonicals corretos, robots, hreflang, ligações internas e qualidade geral de SEO.
Materiais oficiais do 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. Requisitos
Antes da instalação, certifique-se de que o ambiente cumpre os requisitos:
- Magento 2.4.x,
- PHP 8.1 ou mais recente,
- Composer,
- cron Magento funcional,
- possibilidade de instalar o pacote
google/apiclient, - acesso administrativo ao Magento,
- projeto Google Cloud com Indexing API ativada,
- propriedade no Google Search Console verificada para o domínio da loja,
- conta de serviço Google adicionada como proprietário no Google Search Console.
O módulo requer o pacote:
google/apiclient:^2.16O pacote está declarado no composer.json do módulo, por isso o Composer deverá instalá-lo automaticamente.
3. Instalação do módulo
3.1. Instalação via Composer
Adicione o repositório Composer Kowal ao projeto Magento:
Os dados de acesso ao repositório Composer (endereço de e-mail do cliente e token de licença) serão enviados por e-mail após a compra. Também estão disponíveis no painel do cliente depois de iniciar sessão em kowal.store. Substitua TWOJ_EMAIL_KLIENTA pelo endereço de e-mail da sua conta e TWOJ_TOKEN pelo token recebido. Execute os comandos no diretório raiz do Magento.
composer config repositories.kowal composer https://repo.kowal.storeConfigure os dados de acesso ao repositório Composer Kowal:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'Instale o pacote:
composer require kowal/module-google-indexing-apiAtive o módulo:
bin/magento module:enable Kowal_GoogleIndexingApiExecute a atualização do esquema da base de dados:
bin/magento setup:upgradeLimpe a cache:
bin/magento cache:flushEm modo de produção, execute adicionalmente:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.2. Instalação local em app/code
Se o módulo for instalado sem Composer como código local, coloque-o no diretório:
app/code/Kowal/GoogleIndexingApiEm seguida, instale a dependência Google API Client no projeto Magento:
composer require google/apiclient:^2.16Ative o módulo e execute os comandos padrão do Magento:
bin/magento module:enable Kowal_GoogleIndexingApibin/magento setup:upgradebin/magento cache:flushPara produção:
bin/magento setup:di:compilebin/magento setup:static-content:deploybin/magento cache:flush3.3. Verificação da instalação
Verifique se o módulo está ativo:
bin/magento module:status Kowal_GoogleIndexingApiApós a instalação correta, deverão estar disponíveis no painel de administração:
Stores > Configuration > Kowal > Google Indexing API,- menu administrativo
Google Indexing API > Indexing Queue, Google Indexing API > Import URLs,Google Indexing API > API Logs,Google Indexing API > Setup Assistant.
Na base de dados devem ser criadas as tabelas:
kowal_google_indexing_queue,kowal_google_indexing_api_log.
4. Preparação do Google Cloud e Search Console
4.1. Criação do projeto Google Cloud
- Aceda à Google Cloud Console.
- Crie um novo projeto ou escolha um projeto existente usado para a loja.
- Ative a API:
Indexing APISem a API ativada, o módulo não conseguirá enviar submissões corretamente.
4.2. Criação da conta de serviço
- No Google Cloud, aceda a
IAM & Admin > Service Accounts. - Crie uma nova conta de serviço.
- Gere uma chave em formato JSON.
- Transfira o ficheiro JSON e guarde-o em segurança.
O módulo exige que o JSON contenha, pelo menos, os campos:
type,project_id,private_key,client_email.
O campo type deve ter o valor:
service_account4.3. Adicionar a conta de serviço como proprietário no Search Console
- Abra o Google Search Console.
- Selecione a propriedade correspondente ao domínio da loja.
- Certifique-se de que a propriedade está verificada.
- Adicione o endereço
client_emaildo ficheiro JSON como proprietário da propriedade.
Exemplo de endereço da conta de serviço:
my-service-account@project-name.iam.gserviceaccount.comSe a conta de serviço não for proprietária da propriedade Search Console, o Google poderá devolver erros de permissões, por exemplo falta de confirmação de propriedade do URL.
5. Configuração do módulo no Magento
A configuração encontra-se em:
Stores > Configuration > Kowal > Google Indexing APIA configuração suporta âmbitos Magento:
- Default Config,
- Website,
- Store View.
Assim, é possível ter definições separadas para diferentes lojas ou vistas de loja, se o projeto o exigir.
6. Secção General
Enable
Predefinição:
NoAtiva ou desativa o funcionamento do módulo.
Quando o campo tem o valor No, o cron não processa a fila. Os endereços podem existir na base de dados, mas o processador da fila não os enviará para o Google.
Recomendação:
- durante a primeira configuração, defina
Noou deixeDry Run = Yes, - após testes corretos, defina
Yes.
Dry Run
Predefinição:
YesModo de teste. Quando Dry Run está ativado, o módulo processa registos da fila, guarda estados e logs, mas não envia uma submissão real para o Google.
É o modo mais seguro para a primeira execução, testes de configuração e verificação de que os URLs chegam à fila conforme esperado.
Recomendação:
- execute sempre os primeiros testes com
Dry Run = Yes, - desative
Dry Runapenas depois de verificar credentials, allowed hosts, fila e logs.
7. Secção Google Access Credentials
Credentials Source
Predefinição:
Encrypted configuration valueDefine de onde o módulo obtém o JSON da conta de serviço Google.
Opções disponíveis:
| Opção | Valor técnico | Descrição |
|---|---|---|
Encrypted configuration value | config | O JSON é colado na configuração Magento e guardado como valor sensitive config encriptado. |
Uploaded JSON file | file | O JSON é carregado como ficheiro e guardado fora do diretório pub, em var/google-indexing. |
Recomendação:
- para implementações simples, pode usar o valor encriptado na configuração,
- para ambientes com controlo de acesso a ficheiros, o upload do ficheiro JSON pode ser mais conveniente.
Service Account JSON
Visível quando Credentials Source = Encrypted configuration value.
Neste campo deve colar o conteúdo completo do ficheiro JSON da conta de serviço Google.
O módulo valida o JSON antes de guardar. São verificados:
- correção do formato JSON,
- presença dos campos
type,project_id,private_key,client_email, - valor
type = service_account.
O valor é guardado como configuração Magento encriptada.
Service Account JSON File
Visível quando Credentials Source = Uploaded JSON file.
Permite carregar o ficheiro JSON da conta de serviço Google.
O módulo:
- aceita apenas ficheiros com a extensão
.json, - valida o conteúdo do ficheiro,
- verifica os campos obrigatórios
type,project_id,private_key,client_email, - guarda o ficheiro fora do diretório público, em
var/google-indexing, - tenta definir as permissões do ficheiro para
0600, se o controlador de ficheiros o permitir.
O ficheiro é guardado com um nome dependente do âmbito da configuração, por exemplo para o âmbito global:
var/google-indexing/service-account-default-0.jsonGoogle Cloud Project ID
Campo de texto para o identificador do projeto Google Cloud.
Na implementação atual do módulo, a autorização principal baseia-se nos dados do JSON da conta de serviço. O campo Google Cloud Project ID tem uma função informativa e de organização da configuração, especialmente quando a loja utiliza vários ambientes ou vários projetos Google Cloud.
Recomendação:
- introduza o valor
project_iddo ficheiro JSON, - use projetos Google Cloud separados para ambientes de produção e teste, se essa separação for adotada no projeto.
8. Secção Queue and Limits
Daily Publish Limit
Predefinição:
200Define o número máximo de submissões publish que o módulo pode efetuar por dia.
O limitador conta requests do tipo:
publish,publish_dry_run.
Se o limite for utilizado, o processador da fila não recolherá novos registos para envio até à próxima janela diária.
Recomendação:
- deixe
200se o projeto usar o limite onboarding predefinido do Google, - aumente o valor apenas se o projeto Google Cloud tiver um limite superior aprovado,
- a definição
0bloqueia o envio, porque o número de slots disponíveis será0.
Requests Per Minute Limit
Predefinição:
60Define o número máximo de requests publish por minuto.
O módulo compara este valor com o número de requests guardados nos logs do último minuto. Se o limite por minuto estiver utilizado, o cron não processará mais registos nessa execução.
Recomendação:
- para uma implementação típica, deixe o valor predefinido,
- reduza o valor se pretender uma utilização mais conservadora da API,
- não defina
0, salvo se quiser parar temporariamente o envio.
Cron Batch Size
Predefinição:
20Define o número máximo de registos da fila processados numa única execução do cron.
O número real de registos processados também é limitado por:
Daily Publish Limit,Requests Per Minute Limit,- número de registos prontos para envio,
- estado e data
scheduled_at.
Recomendação:
20é um valor inicial seguro,- em filas grandes, pode aumentar o valor, mas apenas tendo em conta os limites do Google.
Default Indexing Lag (minutes)
Predefinição:
15Define o atraso predefinido entre a adição de um URL à fila e o momento a partir do qual pode ser enviado.
O atraso ajuda a:
- reduzir duplicados,
- evitar envios após cada pequena alteração,
- dar tempo ao administrador para corrigir conteúdos,
- gerir melhor o limite da API.
Na implementação atual, esta definição é usada quando a submissão não tem atraso próprio.
Manual Form Indexing Lag (minutes)
Predefinição:
15Define o atraso para URLs adicionados pelo formulário:
Google Indexing API > Import URLsSe o administrador colar manualmente uma lista de URLs, cada endereço correto será agendado com este atraso.
Recomendação:
- defina
0se a importação manual deve entrar na fila imediatamente, - deixe
15se quiser manter um buffer para deduplicação e controlo de submissões.
Mass Action Indexing Lag (minutes)
Predefinição:
15Define o atraso para URLs adicionados por:
- ações em massa de produtos,
- ações em massa de páginas CMS,
- botões de submissão de indexação nos ecrãs de edição de produto, categoria e página CMS.
Recomendação:
- para operações em massa, deixe o valor
15ou superior, - para lojas pequenas e trabalho administrativo manual, pode considerar um valor mais baixo.
Max Attempts
Predefinição:
5Define o número máximo de tentativas de envio de um registo da fila.
Se o Google devolver um erro temporário, o módulo definirá o estado retry, desde que o número de tentativas seja inferior a Max Attempts. Depois de exceder o limite, o registo receberá o estado failed_permanent.
Erros tratados como temporários:
408,409,412,429,500,502,503,504.
Retry Delay (minutes)
Predefinição:
15Atraso base antes da nova tentativa de envio após erro temporário.
O cron usa um atraso crescente. O multiplicador depende do número de tentativas e é limitado ao máximo a 24. Assim, as tentativas seguintes não são executadas de forma demasiado agressiva.
Exemplo para o valor 15:
| Tentativa | Atraso aproximado |
|---|---|
| 1 | 15 minutos |
| 2 | 30 minutos |
| 3 | 60 minutos |
| 4 | 120 minutos |
Allowed Source Types
Predefinição:
manual,product,category,cms_page,amasty_blog_postLista de tipos de origem permitidos, separados por vírgulas.
Valores suportados:
| Valor | Significado |
|---|---|
manual | URL adicionado manualmente pelo formulário de importação. |
product | URL de produto. |
category | URL de categoria. |
cms_page | URL de página CMS. |
amasty_blog_post | URL de publicação Amasty Blog, se for usado o módulo de integração separado. |
Se o tipo de origem não estiver na lista, o scheduler ignorará a submissão e assinalá-la-á como skipped.
Recomendação:
- deixe os valores predefinidos se a loja usar todas as fontes padrão,
- remova as fontes que não pretende permitir na fila.
Allowed URL Hosts
Predefinição:
pusteLista de hosts de URL permitidos, separados por vírgulas.
Exemplo:
example.com,www.example.comSe a lista estiver preenchida, o módulo aceitará apenas endereços pertencentes aos hosts indicados. Se o URL tiver outro host, a validação devolverá o erro:
host_not_allowedRecomendação:
- em produção, preencha sempre esta lista,
- adicione todos os hosts usados pela loja, por exemplo domínio principal, versão
www, domínios de store view e domínios linguísticos, - não adicione domínios de teste à configuração de produção.
Require HTTPS URLs
Predefinição:
YesObriga os URLs submetidos a usar o esquema https.
Se o campo estiver ativado, um endereço com http será rejeitado com o erro:
https_requiredRecomendação:
- para lojas em produção, deixe
Yes, - use
Noapenas em ambientes de teste excecionais.
9. Secção Auto-Indexing
Enable Auto-Indexing
Predefinição:
NoO campo está preparado para integrações automáticas de gravação ou eliminação de entidades e providers adicionais de URLs.
No âmbito atual do módulo, estão disponíveis mecanismos manuais e administrativos para adicionar URLs à fila, incluindo importação de URLs, Mass Actions e botões em formulários de edição.
Recomendação:
- deixe
Nose o auto-indexing não foi implementado no projeto, - ative apenas quando o projeto incluir suporte para eventos automáticos de entidades que utilizem esta configuração.
10. Secção Logs
API Log Retention Days
Predefinição:
90Define o número de dias de conservação dos logs da API.
O cron de limpeza de logs é executado diariamente às:
03:15Remove entradas mais antigas do que o número de dias definido neste campo.
Recomendação:
90dias é um valor razoável para diagnóstico,- com um grande número de requests, pode reduzir a retenção,
- em auditorias SEO, pode aumentar a retenção, tendo em conta o tamanho da tabela de logs.
11. Assistente de instalação e configuração
O assistente encontra-se em:
Google Indexing API > Setup AssistantO seu objetivo é verificar rapidamente se a configuração do lado do Magento e do Google está pronta para o primeiro teste.
11.1. Secção Current Status
O assistente mostra o estado atual dos elementos mais importantes:
| Campo | Significado |
|---|---|
Module | Informa se o módulo está ativo na configuração. |
Dry Run | Informa se o modo de teste sem envio real para o Google está ativo. |
Credentials | Mostra se o módulo consegue ler e analisar as credentials do Google. |
Service Account Email | Apresenta client_email do JSON da conta de serviço. Este endereço deve ser adicionado como proprietário no Search Console. |
Allowed Hosts | Mostra a lista de hosts permitidos na configuração. |
Queue | Mostra o número de registos nos estados scheduled, pending, retry e failed_permanent. |
Se Credentials tiver o estado Missing or invalid, deve voltar à configuração e corrigir o JSON ou o ficheiro credentials.
Se Allowed Hosts mostrar Not configured, o módulo não limita hosts. Tecnicamente pode funcionar, mas em produção recomenda-se inserir explicitamente os hosts da loja.
11.2. Secção Setup Steps
O assistente apresenta a lista de passos necessários antes do primeiro request real:
- Criar ou escolher o projeto Google Cloud.
- Ativar a Indexing API e criar a JSON key para a conta de serviço.
- Colar o JSON ou carregar o ficheiro JSON na configuração Magento.
- Adicionar o service account email como proprietário no Google Search Console.
- Executar testes e, em seguida, importar um URL com
Dry Runativado.
O assistente inclui links para:
- Google Cloud para Indexing API,
- configuração do módulo no Magento,
- Google Search Console.
11.3. Test Google Credentials
Botão:
Test Google Credentialsverifica se o Magento consegue usar os dados da conta de serviço para obter um token OAuth para o âmbito:
https://www.googleapis.com/auth/indexingUm resultado positivo significa que:
- o JSON está correto,
- a chave privada pode ser usada,
- o Google emitiu um token OAuth.
Um resultado negativo pode significar:
- JSON incorreto,
private_keyincorreta ou danificada,- ausência de um campo obrigatório no JSON,
- problema de comunicação com o Google,
- utilização de uma chave que não é uma chave de conta de serviço.
Este teste ainda não confirma que a conta de serviço tem acesso de proprietário ao domínio no Search Console. Para isso, é necessário o teste URL metadata ou uma submissão real de um URL de teste.
11.4. Test URL Metadata
Formulário:
Test URL Metadatapermite introduzir um URL público de um host permitido e executar um request metadata para a Google Indexing API.
Antes de enviar o request, o módulo:
- normaliza o URL,
- verifica se o URL é absoluto,
- verifica o esquema
httpouhttps, - com
Require HTTPS URLsativado, exigehttps, - verifica
Allowed URL Hosts, se tiver sido configurado.
Resultados possíveis:
| Resultado | Significado |
|---|---|
| Sucesso HTTP 2xx | O Google devolveu metadata para o URL. |
| HTTP 404 | Muitas vezes significa que o URL ainda não teve uma submissão anterior bem-sucedida através da Indexing API. Isto não tem de significar configuração incorreta. |
| Erro de validação antes do request | O URL não cumpre as condições do módulo, por exemplo host errado, falta de HTTPS ou endereço não absoluto. |
| Erro HTTP diferente de 404 | Deve verificar a mensagem do Google, permissões Search Console, credentials e limites. |
O teste metadata não cria uma nova submissão publish. Serve para diagnóstico da ligação e do estado do URL.
12. Primeira execução passo a passo
Ordem recomendada para a primeira execução:
- Instale o módulo e execute
setup:upgrade. - No Magento, aceda a
Stores > Configuration > Kowal > Google Indexing API. - Defina
Enable = Yes. - Deixe
Dry Run = Yes. - Escolha a fonte das credentials.
- Cole o JSON da conta de serviço ou carregue o ficheiro JSON.
- Preencha
Google Cloud Project IDcom o valorproject_iddo JSON. - Preencha
Allowed URL Hosts, por exemploexample.com,www.example.com. - Deixe os limites predefinidos, se o Google não tiver aprovado limites superiores.
- Guarde a configuração e limpe a cache.
- Aceda a
Google Indexing API > Setup Assistant. - Verifique se o assistente mostra credentials como prontas.
- Clique em
Test Google Credentials. - Adicione o service account email como proprietário no Google Search Console, se ainda não o tiver feito.
- Execute
Test URL Metadatapara um URL público de um host permitido. - Aceda a
Google Indexing API > Import URLs. - Adicione um URL de teste com a ação
URL_UPDATED. - Execute o cron Magento:
bin/magento cron:run- Verifique
Google Indexing API > Indexing Queue. - Verifique
Google Indexing API > API Logs. - Se tudo funcionar corretamente, desative
Dry Run. - Adicione novamente um URL de teste e verifique a resposta real do Google.
13. Importação de URLs a partir do painel de administração
A importação manual encontra-se em:
Google Indexing API > Import URLsO formulário contém os campos:
| Campo | Descrição |
|---|---|
Action | Tipo de submissão ao Google: adição/atualização ou remoção. |
Store View | Store view à qual a submissão deve ser atribuída. Também está disponível a opção global Use global/no store. |
URLs | Lista de URLs absolutos, um endereço por linha. |
Ações disponíveis:
| Ação no formulário | Valor API | Significado |
|---|---|---|
Submit URLs for indexing | URL_UPDATED | Informa o Google de que o URL foi adicionado ou atualizado. |
Delete URLs from indexing | URL_DELETED | Informa o Google de que o URL foi removido e pode ser removido do índice. |
Após enviar o formulário, o módulo mostrará um resumo:
- adicionados,
- atualizados,
- deduplicados,
- inválidos,
- ignorados.
As primeiras 10 mensagens de validação são mostradas como notice no painel de administração.
14. Fila de indexação
A fila encontra-se em:
Google Indexing API > Indexing QueueCada registo da fila inclui, entre outros:
- URL,
- hash do URL,
- store ID,
- website ID,
- tipo de origem,
- ID da entidade de origem,
- origem do request,
- ação
URL_UPDATEDouURL_DELETED, - estado,
- prioridade,
- número de tentativas,
- número máximo de tentativas,
- data de envio agendada,
- data de processamento,
- último código de erro,
- último motivo do erro,
- última mensagem de erro,
- resposta do Google,
- informação
created_by.
Estados da fila
| Estado | Significado |
|---|---|
scheduled | O URL está agendado, mas ainda aguarda a data scheduled_at. |
pending | O URL está pronto para ser processado pelo cron. |
processing | O URL está atualmente em processamento. |
success | O Google devolveu uma resposta de sucesso. |
retry | Ocorreu um erro temporário e o registo aguarda a próxima tentativa. |
failed_permanent | O envio terminou de forma permanente ou foi excedido o número máximo de tentativas. |
cancelled | O registo foi cancelado manualmente. |
Ações nos registos da fila
| Ação | Funcionamento |
|---|---|
Transmit Now | Define o registo como urgente, bloqueia-o, envia imediatamente através do cliente Google e guarda o resultado. |
Retry | Define o registo como pending, limpa o bloqueio e agenda nova tentativa imediatamente. |
Cancel | Define o estado cancelled e limpa o bloqueio. |
Atenção: Transmit Now executa um request real se Dry Run = No. Com Dry Run = Yes, será guardado um log dry-run sem envio real para o Google.
15. Cron
O módulo adiciona duas tarefas cron no grupo default.
Processamento da fila
kowal_google_indexing_process_queueAgenda:
*/5 * * * *A tarefa executa o processador da fila a cada 5 minutos.
O processador:
- Verifica se o módulo está ativo.
- Liberta bloqueios antigos de registos
processingcom mais de 30 minutos. - Move registos
scheduledparapendingsescheduled_at <= now. - Verifica os slots disponíveis nos limites diário e por minuto.
- Obtém registos
pendingeretry. - Ordena-os por prioridade e data de envio agendada.
- Envia o request para o Google ou executa dry-run.
- Guarda a resposta, o estado e o log da API.
Limpeza de logs
kowal_google_indexing_cleanup_logsAgenda:
15 3 * * *A tarefa remove logs da API mais antigos do que o número de dias definido no campo:
API Log Retention Days16. Logs da API
Os logs estão disponíveis em:
Google Indexing API > API LogsO log inclui:
- ID do registo da fila,
- store ID,
- tipo de request,
- URL do endpoint,
- payload,
- estado HTTP,
- body da resposta,
- duração do request,
- data de criação do log.
Tipos de requests:
| Tipo | Significado |
|---|---|
publish | Submissão real do URL ao Google. |
publish_dry_run | Processamento em modo dry-run sem request real para o Google. |
metadata | Teste metadata para o URL. |
17. Mass Actions e botões administrativos
O módulo adiciona mecanismos de submissão de URLs a partir do painel de administração.
Produtos
Na grelha de produtos, está disponível uma ação em massa que adiciona URLs de produtos à fila.
O módulo ignora produtos:
- desativados,
- não visíveis individualmente.
Os URLs são gerados com base nos URL rewrites para store view ativas.
Páginas CMS
Na grelha de páginas CMS, está disponível uma ação em massa que adiciona URLs de páginas à fila.
O módulo ignora páginas inativas.
Se uma página CMS estiver atribuída a todas as store view, o módulo resolve URLs para todas as store view.
Produto, categoria e página CMS - botões no formulário de edição
O módulo adiciona botões de submissão de indexação nos ecrãs de edição de:
- produto,
- categoria,
- página CMS.
O botão resolve os URLs da entidade para store view e adiciona-os à fila como URL_UPDATED.
18. Configuração inicial recomendada
Para a primeira implementação em produção:
| Campo | Recomendação |
|---|---|
Enable | Yes depois de guardar credentials e allowed hosts. |
Dry Run | Yes durante os testes, depois No. |
Credentials Source | Encrypted configuration value ou Uploaded JSON file, de acordo com a política do projeto. |
Google Cloud Project ID | project_id do JSON. |
Daily Publish Limit | 200, salvo se o Google tiver aprovado um limite superior. |
Requests Per Minute Limit | 60 ou menos numa implementação cautelosa. |
Cron Batch Size | 20. |
Default Indexing Lag | 15. |
Manual Form Indexing Lag | 0-15, dependendo do modo de trabalho dos administradores. |
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 | Todos os hosts de produção da loja. |
Require HTTPS URLs | Yes. |
Enable Auto-Indexing | No, salvo se o projeto implementar providers automáticos. |
API Log Retention Days | 90. |
19. Problemas comuns e diagnóstico
Credentials test failed
Verifique:
- se o JSON está correto,
- se o JSON vem de uma conta de serviço,
- se contém
private_keyeclient_email, - se o campo
typetem o valorservice_account, - se o ficheiro JSON não foi danificado durante a colagem.
O Google devolve um erro de permissões
Verifique:
- se o domínio está verificado no Search Console,
- se o
client_emailda conta de serviço foi adicionado como proprietário, - se o URL testado pertence à mesma propriedade Search Console,
- se está a usar o projeto Google Cloud correto e o JSON correto.
O URL é rejeitado antes do envio
Verifique a mensagem de validação:
| Mensagem | Causa |
|---|---|
empty_url | URL vazio. |
url_too_long | O URL tem mais de 2048 caracteres. |
url_not_absolute | O URL não tem esquema ou host. |
https_required | A exigência de HTTPS está ativa e o URL usa HTTP. |
invalid_scheme | O esquema não é http nem https. |
host_not_allowed | O host do URL não está em Allowed URL Hosts. |
A fila não está a ser processada
Verifique:
- se
Enable = Yes, - se o cron Magento funciona,
- se os registos têm o estado
pendingouretry, - se
scheduled_atnão está no futuro, - se os limites diários ou por minuto não foram utilizados,
- se
Daily Publish LimiteRequests Per Minute Limitnão estão definidos como0.
Os registos passam para retry
Verifique:
- estado HTTP no registo da fila,
- log da API,
- resposta do Google,
- se não ocorre limite
429, - se não existem erros temporários
5xx, - se
Max AttemptseRetry Delayestão definidos conforme esperado.
20. Integração opcional com Amasty Blog
A integração com Amasty Blog está prevista como módulo separado:
Kowal_GoogleIndexingApiAmastyBlogPacote:
kowal/module-google-indexing-api-amasty-blogEste módulo não é necessário para o funcionamento da integração principal. Deve ser instalado apenas em projetos que utilizem amasty/blog e precisem de uma ação em massa para publicações de blog.