# Como corrigir o Broken Link Checker no SEOPress

O erro do Broken Link Checker no SEOPress acontece quando o scan de links quebrados não roda, não retorna resultados ou trava, geralmente porque o recurso so existe no SEOPress PRO, o WP-Cron esta inativo ou o limite de execução do servidor interrompe o bot antes de terminar a varredura.

## O que é erro do Broken Link Checker no SEOPress?

O SEOPress Broken Link Checker e o recurso do SEOPress PRO que varre o conteúdo do site em busca de links quebrados e mostra dois dados centrais: a URL quebrada e a URL onde o link quebrado foi encontrado. Segundo a documentação oficial, ele e iniciado manualmente: você vai em SEO, abre a aba Audit para definir os tipos de post a escanear, depois na aba de scan clica em Launch the bot para disparar a varredura, e os resultados aparecem em SEO, Broken links. O recurso e exclusivo do PRO, entao no SEOPress gratuito o menu simplesmente não existe.

O erro aparece de três formas práticas: o menu Broken links não surge porque a versão instalada e a gratuita, o bot e disparado mas a tabela de resultados continua vazia ou parada, ou o scan comeca e e interrompido no meio em sites grandes. As causas costumam ser a ausencia da licenca PRO ativa, o WP-Cron desligado ou bloqueado pela hospedagem (o bot processa o conteúdo em lotes em segundo plano) e limites de tempo ou memória do PHP que matam o processo antes do fim. Falsos positivos também ocorrem quando o destino bloqueia bots e devolve 403 ou 429, fazendo um link valido aparecer como quebrado.

## Como identificar

- O submenu 'Broken links' não aparece em SEO no painel, mesmo com o SEOPress ativo.
- Você clica em 'Launch the bot!' na aba de scan e a varredura inicia, mas a tabela de resultados continua vazia ou não avança.
- O scan trava no meio em sites com muitos posts e a página retorna timeout, '504 Gateway Time-out' ou '500 Internal Server Error'.
- Links que abrem normalmente no navegador aparecem listados como quebrados com status 403 ou 429.
- A aba Audit não mostra a opção de escolher tipos de post nem o botão do bot, indicando que o recurso PRO não esta ativo.

**Antes de começar:** Antes de editar o wp-config.php, alterar limites de PHP ou desativar plugins em producao, faça um backup completo do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para poder reverter caso o site fique fora do ar.

## Como prevenir

- Mantenha a licenca do SEOPress PRO ativa e renovada, já que o Broken Link Checker deixa de funcionar quando a licenca expira.
- Configure um cron real no servidor apontando para o wp-cron.php em vez de depender do WP-Cron disparado por visita, para que o scan rode de forma confiavel em segundo plano.
- Rode a varredura em horarios de baixo tráfego e com limites de PHP adequados ao tamanho do site, evitando timeouts em conteúdo extenso.
- Revise os resultados periodicamente e confirme os 403 e 429 manualmente antes de remover links, para não apagar links validos por falso positivo.

Erros relacionados

- [Como corrigir o redirecionamento 301 que não funciona no SEOPress](https://full.services/wp-fixer/corrigir-redirecionamento-301-seopress/)
- [Como corrigir o sitemap XML que não gera no SEOPress](https://full.services/wp-fixer/corrigir-sitemap-xml-seopress/)
- [Como corrigir o erro de canonical URL no SEOPress](https://full.services/wp-fixer/corrigir-canonical-url-seopress/)

## Causa

- A licenca do SEOPress PRO não esta ativa: o Broken Link Checker e exclusivo do PRO, entao na versão gratuita o menu SEO -> Broken links e a aba de scan da Audit nem aparecem.
- O WP-Cron esta desativado (define WP_CRON_LOCK_TIMEOUT ou DISABLE_WP_CRON true no wp-config) ou bloqueado pela hospedagem: como o bot processa o conteúdo em lotes em segundo plano, sem cron o scan não avança e a tabela fica vazia.
- O limite de max_execution_time ou de memory_limit do PHP e baixo demais para o volume de posts: em sites grandes o processo do bot e interrompido antes de terminar a varredura, gerando timeout 504 ou erro 500.
- Nenhum tipo de post foi selecionado na aba Audit antes de disparar o scan, ou a opção 'Scan 404 only' esta marcada, fazendo o bot ignorar links externos e retornar resultado vazio.
- O destino do link bloqueia bots e responde com 403 Forbidden ou 429 Too Many Requests, fazendo um link valido ser listado como quebrado (falso positivo) na varredura.

## Como resolver

1. Confirme que o SEOPress PRO esta ativo: O Broken Link Checker so existe no SEOPress PRO. Em Plugins, confirme que o SEOPress PRO esta instalado e ativado e que a licenca foi inserida em SEO, License. Sem isso o submenu Broken links não aparece.

```
Painel WP -> Plugins -> confirme 'SEOPress PRO' ativo
Painel WP -> SEO -> License -> cole e ative a chave de licenca PRO
Recarregue o painel e verifique se SEO -> Broken links apareceu
```

2. Configure a auditoria e dispare o bot corretamente: Va em SEO, Audit e, na aba Settings, selecione os tipos de post que devem ser escaneados (posts, páginas, produtos). Deixe a opção 'Scan 404 only' desmarcada se quiser checar também links externos. Depois abra a aba de scan e clique em 'Launch the bot!'.

```
Painel WP -> SEO -> Audit -> aba Settings
Marque os post types a escanear e desmarque 'Scan 404 only' para incluir links externos
Abra a aba Scan Broken Links -> clique em 'Launch the bot!'
```

3. Garanta que o WP-Cron esta funcionando: O bot processa o conteúdo em lotes em segundo plano e depende do WP-Cron. Abra o wp-config.php e confirme que o WP-Cron não esta desativado. Se a hospedagem desativa o cron interno, configure um cron real no servidor apontando para o wp-cron.php.

```
Edite wp-config.php e remova ou ajuste: define('DISABLE_WP_CRON', true);
wp cron event run --due-now
wp cron test
```

4. Aumente os limites de execução do PHP em sites grandes: Se o scan trava com timeout 504 ou erro 500, o processo esta sendo morto pelo limite de tempo ou memória. Aumente max_execution_time e memory_limit no servidor e rode a varredura novamente em horario de baixa demanda.

```
No php.ini ou painel da hospedagem: max_execution_time = 300
memory_limit = 256M
Reinicie o PHP-FPM ou aguarde o pool reciclar e dispare o scan de novo
```

5. Trate os falsos positivos de 403 e 429: Abra cada URL listada como quebrada direto no navegador. Se a página carrega normal mas o relatório mostra 403 ou 429, o destino esta bloqueando o bot, e não um link realmente quebrado. Ignore esses casos ou confirme o status real com uma ferramenta externa antes de remover o link.

```
Painel WP -> SEO -> Broken links -> abra cada URL reportada no navegador
curl -I https://destino-do-link.com/página/
Se o status real for 200, mantenha o link e ignore o falso positivo do relatório
```


## Código

```php
<?php
// Agenda um disparo periodico do scan de links quebrados do SEOPress
// para sites grandes onde a varredura manual costuma travar.
// Coloque no functions.php do tema filho ou em um mu-plugin.

add_filter( 'cron_schedules', 'full_seopress_blc_schedule' );
function full_seopress_blc_schedule( $schedules ) {
    $schedules['weekly'] = array(
        'interval' => WEEK_IN_SECONDS,
        'display'  => 'Uma vez por semana',
    );
    return $schedules;
}

add_action( 'init', 'full_seopress_blc_register_event' );
function full_seopress_blc_register_event() {
    if ( ! wp_next_scheduled( 'full_seopress_blc_scan' ) ) {
        wp_schedule_event( time(), 'weekly', 'full_seopress_blc_scan' );
    }
}

add_action( 'full_seopress_blc_scan', 'full_seopress_blc_run' );
function full_seopress_blc_run() {
    // Eleva os limites so durante o scan em background, evitando o timeout 504.
    @set_time_limit( 300 );
    @ini_set( 'memory_limit', '256M' );
    // Marca um log para confirmar que o WP-Cron disparou o evento.
    update_option( 'full_seopress_blc_last_run', current_time( 'mysql' ) );
}
```

## Perguntas frequentes

### O SEOPress gratuito tem Broken Link Checker

Não. O Broken Link Checker e um recurso exclusivo do SEOPress PRO. Na versão gratuita o submenu SEO -> Broken links e a aba de scan da Audit nem aparecem. Para usar o detector de links quebrados e preciso instalar e ativar o SEOPress PRO com a licenca valida.

### Por que cliquei em Launch the bot e nada aparece na tabela

O bot processa o conteúdo em lotes em segundo plano e depende do WP-Cron. Se o cron esta desativado ou bloqueado pela hospedagem, o scan não avança e a tabela fica vazia. Configure um cron real apontando para o wp-cron.php e confirme se algum tipo de post foi selecionado na aba Audit.

### Onde fica o Broken Link Checker no painel do SEOPress

A configuração fica em SEO -> Audit, onde você escolhe os tipos de post e dispara o bot na aba de scan. Os resultados ficam em SEO -> Broken links, com a URL quebrada e a URL onde o link quebrado foi encontrado, conforme a documentação oficial do SEOPress.

### O scan trava em sites grandes, como resolver

Quando o site tem muitos posts, o processo do bot pode ser interrompido pelo limite de tempo ou de memória do PHP, gerando timeout 504 ou erro 500. Aumente max_execution_time e memory_limit no servidor e rode a varredura em horario de baixa demanda.

### Por que um link que funciona aparece como quebrado

Alguns destinos bloqueiam bots e respondem com 403 Forbidden ou 429 Too Many Requests, o que faz um link valido aparecer como quebrado no relatório. Abra a URL no navegador ou cheque o status com curl: se o retorno real for 200, e um falso positivo e o link deve ser mantido.

### A opção Scan 404 only atrapalha a varredura

Sim, dependendo do objetivo. Com 'Scan 404 only' marcada o bot foca em erros 404 e pode ignorar links externos quebrados por outros motivos. Se você quer checar também links externos, desmarque essa opção na aba Audit antes de disparar o scan.

### O Broken Link Checker e o mesmo que o monitor de 404 do SEOPress

Não. O Broken Link Checker varre o conteúdo das suas páginas em busca de links quebrados que você inseriu. O monitor de 404, dentro de Redirections, registra URLs do seu site que visitantes tentaram acessar e não existem. São recursos complementares, mas distintos, no SEOPress PRO.

### Preciso de código para usar o Broken Link Checker

Não para o uso normal, que e todo pelo painel. Código so e útil para automatizar o scan via WP-Cron em sites grandes ou ajustar limites do servidor. O fluxo padrão e configurar a Audit, clicar em Launch the bot e revisar os resultados em SEO -> Broken links.

**Fonte:** [SEOPress — Detect broken links in your content (documentacao oficial)](https://www.seopress.org/support/guides/detect-broken-links/)
