Como corrigir o feed RSS com erro no WordPress
O que é o feed RSS com erro?
O feed RSS com erro no WordPress é a falha em que a URL do feed (por exemplo, seudominio.com/feed) deixa de retornar um XML válido. Em vez da lista de posts, o navegador mostra uma mensagem como erro de análise de XML apontando a linha 1. O WordPress gera o feed como um documento XML puro, e qualquer caractere enviado antes da declaração do XML (um espaço, uma linha em branco ou um aviso de PHP) invalida o arquivo inteiro, porque a primeira linha precisa ser exatamente a declaração do XML.
Como identificar
- Ao abrir seudominio.com/feed, o navegador mostra “XML Parsing Error: XML or text declaration not at start of entity” na linha 1.
- O validador oficial responde “This feed does not validate” e aponta espaço em branco antes da declaração do XML.
- Plugins de e-mail, agregadores e o Mailchimp param de puxar os posts novos do feed sem aviso.
- Ao ver o código-fonte do feed, há uma linha em branco ou um aviso de PHP (Warning/Notice) antes da tag de abertura do XML.
Como prevenir
- Não use a tag de fechamento de PHP no final de functions.php e wp-config.php para evitar espaço em branco depois dela
- Salve todos os arquivos PHP em UTF-8 sem BOM, já que a marca invisível conta como saída antes do XML
- Valide o feed no validador do W3C após instalar plugins novos, que podem injetar saída ou gerar avisos de PHP
Causa
- Há um espaço ou linha em branco depois do fechamento de PHP (a tag de fechamento) no functions.php do tema, que é enviado antes do XML.
- O wp-config.php ou um plugin tem caracteres após o fechamento de PHP, e esse texto vaza para o início de toda resposta, inclusive o feed.
- Um aviso de PHP (Warning ou Notice) de um plugin desatualizado é impresso na tela e aparece antes da declaração do XML do feed.
- Um plugin de SEO ou de cache injeta HTML ou um comentário no topo da saída, quebrando o formato XML esperado pelo feed.
- O arquivo functions.php foi salvo com codificação que adiciona um BOM (marca de ordem de byte) no início, contando como caractere antes do XML.
Como resolver
- Valide o feed e localize o erro: abra o feed em seudominio.com/feed e use o validador oficial do W3C. A mensagem aponta se há espaço em branco antes do XML e em qual byte, o que confirma que é saída extra e não corrupção de dados.
- Revise o final do functions.php: via FTP, abra o functions.php do tema ativo. Se houver a tag de fechamento de PHP no fim do arquivo, remova-a junto com qualquer espaço ou linha em branco depois dela. Um arquivo só de PHP não precisa de tag de fechamento.
- Confira o wp-config.php: verifique se o wp-config.php termina sem espaço ou texto após o fechamento de PHP. Qualquer caractere depois dele é enviado antes do XML e quebra o feed.
- Isole o plugin culpado: se os arquivos estão limpos, desative os plugins e reabra o feed. Quando ele voltar a validar, reative um por vez até o erro retornar, identificando o plugin que injeta saída ou gera o aviso de PHP.
- Salve os arquivos sem BOM: se editou functions.php ou wp-config.php, salve em UTF-8 sem BOM. Editores comuns adicionam essa marca invisível no início, que conta como caractere antes do XML e mantém o feed quebrado.
// mu-plugin (wp-content/mu-plugins/sem-saida-feed.php): captura saida indevida antes do feed
// Use APENAS para diagnostico: descobre o arquivo que imprime algo cedo demais
add_action( 'init', function () {
if ( is_feed() && headers_sent( $arquivo, $linha ) ) {
error_log( sprintf(
'Feed RSS quebrado: saida iniciada em %s na linha %d',
$arquivo,
$linha
) );
}
}, 1 );














