Como corrigir o Broken Link Checker no SEOPress
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.
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.
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
- 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 - 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!' - 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 - 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 - 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
<?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' ) );
}














