PrestaShop Administração & Produtividade

Verificador de Ligações Mortas PrestaShop 8 e 9: Ligações Partidas e Imagens em Falta

Encontre as ligações mortas e as imagens partidas antes dos seus clientes

O módulo percorre as descrições de produtos, as categorias, as páginas CMS, as marcas, os fornecedores e as lojas físicas, extrai cada ligação e cada imagem e verifica depois o seu código HTTP. Verifica também a presença física dos ficheiros de imagem no disco, algo que o front-office nunca assinala. Compatível com PrestaShop 8 e 9, multiloja, 5 idiomas.

At a glance
  • Ligações e imagens analisadas em produtos, categorias, páginas CMS, marcas, fornecedores e lojas físicas
  • Verificação HTTP em paralelo por curl_multi, em HEAD e depois em GET quando o servidor remoto recusa HEAD
  • Verificação em disco dos ficheiros de imagem de produtos, categorias, marcas, fornecedores e ficheiros anexos
  • Scan por lotes controlado em AJAX: sem timeout do PHP, e um scan interrompido retoma onde parou
  • Cada URL partido está ligado aos conteúdos que o utilizam, com botão de edição direto
PrestaShop 8 e 9 PHP 7.4+ Multiloja 5 idiomas Sem Composer
  • Reembolso em 30 dias
  • 12 meses de atualizações
  • Suporte em 24h
www.datafirefly.com/pt/
Relatório de ligações mortas e de imagens em falta no back-office do PrestaShop
v1.0.0 · atualizado 2026-07-27
O que faz

A versão curta.

01

Dois tipos de falha, dois métodos

As ligações e imagens que respondem 404, 410, 500 ou que expiram são detetadas por pedido HTTP. Os ficheiros de imagem referenciados em base de dados mas ausentes do disco são detetados por leitura do sistema de ficheiros: o front-office mostra-os como imagem partida sem nunca devolver um erro aproveitável.

02

Verificação HTTP em paralelo

O curl_multi consulta vários URLs em simultâneo, primeiro em HEAD e depois em GET quando o servidor remoto recusa o método HEAD. Pedidos em simultâneo, tempo de espera, tempo de ligação e user-agent são ajustáveis.

03

Scan por lotes, sem timeout

O scan avança por fatias de alguns segundos controladas em AJAX, com um cursor guardado em base de dados. Um catálogo com várias dezenas de milhares de URLs passa sem tocar no max_execution_time, e um scan interrompido retoma onde parou.

04

Do URL partido ao conteúdo a corrigir

Cada URL está ligado à lista dos conteúdos que o utilizam: tipo de origem, nome do elemento, campo envolvido, idioma e texto da âncora. Um botão abre diretamente a ficha de produto, a categoria ou a página CMS em edição.

05

Eliminação de duplicados de URL

Um URL presente 400 vezes no catálogo é testado uma única vez, e as 400 localizações continuam listadas. Uma ligação de rodapé copiada por todo o lado não faz explodir a duração do scan.

06

Lista de exclusões

Texto simples, carateres universais ou expressões regulares, um padrão por linha. Os domínios de parceiros que bloqueiam robots, os URLs de pré-produção e as ligações em migração saem dos resultados.

A versão longa

Tudo o que quer saber antes de instalar.

Uma análise detalhada de como o Verificador de Ligações Mortas PrestaShop 8 e 9: Ligações Partidas e Imagens em Falta funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.

§ 01

Uma ligação morta custa duas vezes

Custa uma primeira vez em posicionamento: o Google segue as ligações das suas descrições, e uma descrição de produto que aponta para três 404 envia um sinal de conteúdo descuidado. Custa uma segunda vez em conversão, quando um cliente clica no guia de tamanhos a partir de uma ficha de produto e cai numa página de erro no momento exato em que hesitava. O problema é que estas ligações não partem no dia em que as escreve. Partem seis meses depois, quando um parceiro refaz o site ou quando uma página CMS é renomeada, e ninguém dá por isso.

§ 02

Dois problemas distintos, dois métodos de deteção

Uma ligação morta deteta-se por pedido HTTP: o módulo chama o URL e lê o código de retorno. Um ficheiro de imagem em falta não se deteta assim. Quando uma imagem de produto está referenciada na tabela image mas o ficheiro desapareceu da pasta img/p, o pedido HTTP pode muito bem devolver uma página de substituição em 200. Por isso, o módulo vai ler diretamente o sistema de ficheiros para cada imagem de produto, categoria, marca, fornecedor e loja física, bem como para os ficheiros anexos. É a única forma de encontrar as imagens que aparecem como quadrado vazio sem que nada chegue aos logs.

§ 03

O que o módulo lê no seu catálogo

Descrições e descrições curtas dos produtos, mensagens de disponibilidade, descrições de categorias e de categorias CMS, conteúdo das páginas CMS, descrições de marcas, de fornecedores e de lojas físicas, e os blocos de ligações do rodapé geridos pelo ps_linklist. Em cada um destes campos, extrai as ligações a href, as imagens img src com as suas variantes de lazy loading e os seus srcset, bem como as etiquetas source, video, audio, iframe, embed, object, link e script, e as imagens de fundo declaradas em estilo inline. Os mailto, tel, âncoras isoladas e data URI são postos de lado à partida, tal como os restos de Smarty ou de shortcode que por vezes ficam numa descrição copiada e colada.

§ 04

Como o scan aguenta um catálogo grande

O scan decorre em duas fases. A recolha percorre os conteúdos e extrai os URLs. A verificação consulta-os. Cada fase avança por lotes de alguns segundos controlados em AJAX a partir do navegador, com um cursor guardado em base de dados depois de cada lote. Nada depende do max_execution_time, e fechar o separador a meio não perde o trabalho já feito. Duas otimizações fazem o resto: os URLs são desduplicados por impressão durante o scan, pelo que um URL presente 400 vezes só é testado uma vez, e os URLs locais que apontam para um ficheiro estático presente no disco são validados por leitura do sistema de ficheiros, sem qualquer pedido de rede.

§ 05

Do resultado à correção

Uma tabela de resultados ordenada por gravidade lista cada URL com o seu estado, o seu código HTTP, a sua mensagem de erro, o eventual destino de redirecionamento e o número de utilizações. Abrir uma linha mostra a lista das localizações: o tipo de origem, o nome do elemento, o campo envolvido, o idioma e o texto da âncora. Cada localização tem o seu botão de edição, que abre a ficha de produto, a categoria ou a página CMS no sítio certo. Também pode voltar a verificar um URL isolado depois da correção, sem relançar o scan completo.

§ 06

O que querem dizer os estados

Um estado válido cobre as respostas 2xx e os ficheiros locais presentes no disco. Um aviso cobre os redirecionamentos, os códigos 401 e 403 e os 429 de limitação de débito: o recurso existe, mas há algo que merece uma vista de olhos. Um estado morto cobre os 404, 410, os restantes 4xx, os 5xx, os tempos de espera ultrapassados, os erros de DNS e as ligações recusadas. Os estados ignorado e não testado correspondem às suas exclusões e às categorias de URL que desativou nas definições.

§ 07

Excluir o que não deve aparecer

Muitos domínios respondem 403 aos robots sem que a ligação esteja partida, em particular atrás de uma firewall aplicacional. O módulo já os classifica como aviso e não como ligação morta, mas pode ir mais longe com uma lista de exclusões: um padrão por linha, em texto simples para uma correspondência numa subcadeia, com carateres universais, ou em expressão regular com um prefixo. Um URL também pode ser colocado na lista de ignorados com um clique a partir da tabela, o que o retira dos resultados dos scans seguintes.

§ 08

Instalação e desinstalação

Sem dependências externas, sem Composer e sem alterações ao tema. Carregue o ZIP através do gestor de módulos e instale: são criadas quatro tabelas e aparece um separador em Catálogo. O módulo não acrescenta qualquer hook no front-office e não toca na apresentação da loja, trabalhando apenas a partir do back-office. Na desinstalação, as quatro tabelas, o separador e a configuração são eliminados.