# DF Smart 404: documentação

> Apresentação O DF Smart 404 transforma a página « página não encontrada » da sua loja num cruzamento de conversão. Quando um visitante aterra num URL quebrado, o módulo analisa…

- Página: <https://www.datafirefly.com/pt/documentation/df404smart/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/df404smart/index.md), [en](https://www.datafirefly.com/en/documentation/df404smart/index.md), [es](https://www.datafirefly.com/es/documentation/df404smart/index.md), [de](https://www.datafirefly.com/de/documentation/df404smart/index.md), [it](https://www.datafirefly.com/it/documentation/df404smart/index.md), [pl](https://www.datafirefly.com/pl/documentation/df404smart/index.md), [nl](https://www.datafirefly.com/nl/documentation/df404smart/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

O DF Smart 404 transforma a página « página não encontrada » da sua loja num cruzamento de conversão. Quando um visitante aterra num URL quebrado, o módulo analisa esse URL, extrai as palavras-chave e mostra os produtos do seu catálogo que melhor correspondem, acompanhados de um formulário de pesquisa já pré-preenchido.

Em paralelo, cada 404 é registado num diário no back-office. Vê exatamente que URLs quebram, quantos visitantes os atingem e de onde vêm. A partir desse diário, um redirecionamento 301 para o produto certo cria-se num clique.

A lista de stopwords usada para extrair as palavras-chave do URL cobre francês, inglês, espanhol, alemão e italiano, mas não o português: em URLs em português, palavras como « para », « com » ou « uma » podem ser tratadas como palavras-chave, o que baixa ligeiramente a pertinência das sugestões. O mecanismo de recurso (mais vendidos, depois produtos recentes) garante mesmo assim que o bloco nunca fica vazio.

### O que o módulo faz

- Injeta um bloco de sugestões de produtos na página 404 do seu tema, sem override de template.
- Pré-preenche o formulário de pesquisa com as palavras-chave humanizadas extraídas do URL quebrado.
- Regista cada 404 com deduplicação, contador de hits, referer e user-agent.
- Cria redirecionamentos 301 ou 302 num clique, com proteção anti-ciclo.
- Aplica esses redirecionamentos antes do dispatch da página.

## Pré-requisitos

- PrestaShop 8.0 a 9.x
- PHP 7.4 ou superior
- Nenhuma dependência externa, sem Composer

## Instalação

1. Vá a **Módulos > Gestor de módulos**.
2. Clique em **Instalar um módulo** e carregue o ficheiro `df404smart-1.0.0.zip`.
3. Clique em **Instalar**.

Na instalação, o módulo cria duas tabelas SQL (diário dos 404 e redirecionamentos), regista três hooks e acrescenta um menu **DF Smart 404** no back-office com dois subseparadores.

O bloco está ativo imediatamente na página 404 com definições por defeito operacionais. Pode testar visitando um URL inexistente da sua loja.

## Configuração

Abra a página **Configurar** do módulo. Mostra primeiro quatro indicadores de acompanhamento e depois o formulário de definições.

### Painel

- **URLs quebrados a corrigir**: número de entradas com estado « nova » no diário.
- **Hits 404 nesses URLs**: soma das visitas aos URLs ainda não tratados.
- **Redirecionamentos ativos**: número de regras de redirecionamento em serviço.
- **Visitas salvas pelos redirecionamentos**: soma dos hits intercetados pelos seus redirecionamentos.

### Definições disponíveis

- **Enriquecer a página 404**: ativa ou desativa a injeção do bloco de sugestões.
- **Mostrar o formulário de pesquisa**: mostra o campo de pesquisa pré-preenchido no bloco.
- **Ativar o motor de redirecionamento**: aplica os redirecionamentos criados a partir do diário. Desmarque esta caixa se já usar um módulo de redirecionamentos de terceiros.
- **Número de sugestões**: entre 0 e 12 produtos apresentados. O valor 0 desativa as sugestões conservando o formulário de pesquisa.
- **Tipo de redirecionamento por defeito**: 301 permanente (recomendado para o SEO) ou 302 temporário.
- **Registar o tráfego dos robôs**: se desativado, os hits provenientes de crawlers conhecidos não são escritos no diário.
- **Retenção do diário (dias)**: as entradas mais antigas são purgadas automaticamente. As regras de redirecionamento nunca são purgadas.
- **Padrões de exclusão**: uma expressão regular sem distinção de maiúsculas por linha. Os URLs correspondentes nunca são registados.

### Padrões de exclusão por defeito

O módulo é fornecido com uma lista de padrões que afastam o ruído gerado pelos scanners de vulnerabilidades e pelos pedidos automatizados: tentativas em wp-admin, wp-login, xmlrpc, phpmyadmin, pastas .git, bem como os recursos estáticos (imagens, folhas de estilo, scripts). Adicione os seus próprios padrões, um por linha. Um padrão inválido é assinalado na gravação, com o número da linha em causa.

## O bloco de sugestões no front-office

### Como os produtos são selecionados

Quando ocorre um 404, o módulo divide os **dois últimos segmentos** do URL em palavras-chave. As stopwords são afastadas em cinco idiomas (francês, inglês, espanhol, alemão, italiano), só são conservados os tokens com pelo menos três caracteres e os identificadores puramente numéricos são excluídos.

Cada token restante é depois confrontado com o catálogo com uma pontuação ponderada:

- correspondência no **link_rewrite** do produto: **4 pontos**
- correspondência no **nome** do produto: **3 pontos**
- correspondência na **referência**: **2 pontos**

Os produtos são classificados por pontuação decrescente, e só são retidos aqueles cuja pontuação é superior a zero.

### O recurso

Se nenhum produto resultar da análise, caso frequente num URL muito curto ou obscuro, o módulo passa automaticamente aos **mais vendidos**. Se estes também estiverem indisponíveis (catálogo novo, estatísticas não calculadas), mostra os **produtos mais recentes**. O visitante vê portanto sempre produtos, nunca um bloco vazio.

### O formulário de pesquisa

O campo de pesquisa é pré-preenchido com a versão humanizada das palavras-chave do URL. Um visitante que chegue a `/sapatilhas-pele-premium-edition` vê já « sapatilhas pele premium edition » no campo.

O formulário aponta para a página de pesquisa nativa do seu tema, com os parâmetros da query string corretamente transmitidos em campos ocultos. Nenhum conflito com um módulo de pesquisa instantânea de terceiros: o módulo não sobrepõe nada, usa o ponto de entrada padrão do PrestaShop.

### Onde o bloco aparece

O módulo deteta a secção de conteúdo da página 404 do seu tema e insere aí o bloco, logo abaixo da mensagem nativa. Se a estrutura do tema for atípica, vários recursos sucessivos garantem que o bloco fica acima do rodapé. Nenhum ficheiro de tema é modificado.

## O diário dos 404

Menu **DF Smart 404 > Diário dos 404**.

### Colunas

- **URL quebrado**: o caminho chamado, normalizado.
- **Hits**: número de visitas a este URL. A lista é ordenada por hits decrescentes por defeito: os URLs mais caros aparecem primeiro.
- **Último referer**: de onde vinha o último visitante (Google, um site de terceiros, uma página interna…).
- **Estado**: Nova, Redirecionada ou Ignorada.
- **Último hit**: data da última visita.

### Deduplicação

A deduplicação assenta num hash do URL, delimitado por loja. Mil visitas ao mesmo URL quebrado produzem **uma única linha com mil hits**, nunca mil linhas. A escrita é feita num único pedido upsert.

### Ações disponíveis em cada linha

- **Redirecionamento automático** (ícone de raio): cria instantaneamente um redirecionamento para o produto mais pertinente, em AJAX, sem sair da página. Esta ação só é proposta se a pontuação de correspondência ultrapassar o limiar de confiança; caso contrário, uma mensagem convida-o a usar o formulário guiado.
- **Criar um redirecionamento**: abre o formulário guiado (ver abaixo).
- **Ignorar**: passa a entrada ao estado « ignorada ». Desaparece dos indicadores de acompanhamento mas continua consultável.
- **Eliminar**: elimina a entrada do diário.

Uma ação em massa de eliminação e uma exportação CSV estão igualmente disponíveis a partir da barra de ferramentas.

## Criar um redirecionamento

### O redirecionamento automático

O botão de raio calcula o melhor produto correspondente ao URL quebrado. Se a pontuação ultrapassar o limiar de confiança interno, o redirecionamento é criado imediatamente com o tipo por defeito configurado, e a entrada do diário passa ao estado « redirecionada ». Uma mensagem de confirmação indica o produto de destino.

O limiar de confiança evita redirecionamentos arriscados. Um URL como `/promo-verao-2024` provavelmente não terá uma correspondência fiável: o módulo recusará o redirecionamento automático e remetê-lo-á para o formulário guiado.

### O formulário guiado

Mostra o URL quebrado, o seu número de hits e depois a lista dos produtos sugeridos classificados por pontuação. Cada sugestão é um botão de opção, estando a primeira pré-selecionada. Um campo **URL personalizado** permite introduzir qualquer destino: uma categoria, uma página CMS, um URL externo.

Escolhe depois o tipo de redirecionamento (301 ou 302) e valida. O módulo verifica que o destino não está vazio, que não aponta para o próprio URL de origem (proteção anti-ciclo) e que não existe já um redirecionamento para essa origem.

## Gerir os redirecionamentos

Menu **DF Smart 404 > Redirecionamentos 404**.

Este ecrã oferece um CRUD completo sobre as suas regras de redirecionamento:

- **URL de origem**: o caminho quebrado (ex. `/antiga-categoria/antigo-produto`).
- **URL de destino**: caminho ou URL completo para onde redirecionar.
- **Tipo**: 301 (permanente) ou 302 (temporário).
- **Hits**: número de visitas intercetadas por esta regra. É a sua medida direta das visitas salvas.
- **Ativo**: interruptor para desativar uma regra sem a eliminar.

Aplicam-se as mesmas validações que no formulário guiado: origem não vazia, sem ciclo, sem duplicado de origem (o identificador atual é excluído do controlo em edição).

### Funcionamento do motor

Os redirecionamentos são avaliados antes do dispatch da página, a montante do controlador front. O caminho chamado é normalizado e depois um lookup indexado no seu hash procura uma regra ativa para a loja atual. Se uma regra corresponder, o contador de hits é incrementado e o redirecionamento é emitido com o código HTTP configurado.

## Desempenho

- O diário só escreve em caso de 404 real, num único pedido upsert.
- O motor de redirecionamento faz um lookup indexado num hash: custo negligenciável, mesmo com centenas de regras.
- A purga das entradas antigas é desencadeada aleatoriamente em cerca de 1 % dos hits, para nunca bloquear um pedido de visitante.
- Os hits provenientes de robôs podem ser excluídos da escrita, o que reduz ainda mais a carga nas lojas muito rastreadas.

## Multiloja

Todos os dados do módulo são delimitados por identificador de loja: o diário, os redirecionamentos e as sugestões. Cada loja dispõe do seu próprio diário, das suas próprias regras e da sua própria configuração. Um URL quebrado na loja A não aparece no diário da loja B.

## RGPD

O diário regista o URL quebrado, o referer e o user-agent. **Não é guardado nenhum endereço IP**, não é recolhido nenhum dado nominativo. A retenção é configurável e a purga automática. O módulo não envia nenhum dado para um serviço externo.

## Desinstalação

A desinstalação elimina as duas tabelas do módulo (diário dos 404 e redirecionamentos), os separadores do back-office e a configuração. **Os redirecionamentos criados serão perdidos.** É pedida uma confirmação antes da operação.

Se prevê reinstalar o módulo ou migrar, exporte primeiro os seus redirecionamentos em CSV a partir do ecrã de gestão.

## Resolução de problemas

### O bloco não aparece na página 404

- Verifique que a definição **Enriquecer a página 404** está ativada.
- Limpe a cache do PrestaShop (**Parâmetros avançados > Desempenho > Limpar a cache**).
- Certifique-se de que o tema usa o controlador `pagenotfound` padrão.

### O bloco aparece sob o rodapé

Este caso é tratado desde a versão 1.0.0: o módulo visa a secção de conteúdo e não a etiqueta de fecho do contentor principal. Se ainda encontrar este comportamento, limpe a cache Smarty e comunique a estrutura do seu tema ao suporte.

### Nenhum produto é sugerido

- Verifique que o **Número de sugestões** não está definido em 0.
- Num catálogo novo sem histórico de vendas, o recurso aos mais vendidos está vazio: o módulo passa então aos produtos recentes. Certifique-se de que tem pelo menos um produto ativo e visível.

### O redirecionamento automático recusa-se a criar

É o comportamento esperado quando a pontuação de correspondência é demasiado baixa. Use o formulário guiado, que mostra as sugestões mesmo abaixo do limiar e permite introduzir um destino personalizado.

### Um redirecionamento não se aplica

- Verifique que a definição **Ativar o motor de redirecionamento** está marcada.
- Verifique que a regra está **ativa** no ecrã de gestão.
- Verifique que a regra pertence à loja certa em contexto multiloja.
- Se estiver instalado outro módulo de redirecionamentos, pode intercetar o pedido a montante.

## Suporte

12 meses de atualizações e 12 meses de suporte por e-mail estão incluídos na sua licença. O código-fonte PHP completo é fornecido, sem ofuscação.
