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.
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.
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.
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.
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.
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.
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.
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.
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.
Ainda não existem avaliações.