Tendo sido baixado mais de 1 milhão de vezes, o plugin WordPress SEO por Yoast é, de longe, o melhor e mais completo plugin de SEO para o WordPress. Embora não nos tenha dado nenhum problema no passado, para alguns usuários tem sido uma dor. Recentemente, um de nossos clientes encontrou a questão de obter um erro 404 para seus sitemaps gerados pelo plugin SEO WordPress da Yoast. Depois de tentar algumas coisas, conseguimos descobrir a solução. Neste artigo, mostraremos como corrigir o erro do sitemap 404 no plugin SEO WordPress pela Yoast.
Atualização: é importante que você entenda que esse problema é provavelmente causado por uma função de tema ou um plugin mal codificado. O plugin do Yoast funciona bem em nossos sites. Só queria ser muito claro sobre isso.
A primeira coisa que você deve tentar é abrir seu arquivo .htaccess (você pode realmente fazer isso com o plugin WordPress SEO> Editar arquivos) e simplesmente adicionar o seguinte código lá:
# WordPress SEO - XML Sitemap Rewrite FixRewriteEngine On RewriteBase / RewriteRule ^ sitemap_index.xml $ /index.php?sitemap=1 [L] RewriteRule ^ ([^ /] +?) - sitemap ([0-9] +) ?. xml $ /index.php?sitemap=$1&sitemap_n=$2 [L] # END WordPress SEO - XML Sitemap Reescreva Fix
Para a maioria das pessoas isso corrigiu o problema. Alguém relatou que, enquanto este código corrigia o problema, a página ainda estava enviando o cabeçalho da resposta 404, o que significava que a ferramenta Google Webmasters não conseguia encontrá-lo. Bem no caso do nosso cliente, a solução acima não corrigiu o problema.
Embora não preferisse, não tínhamos escolha senão editar os principais arquivos de plugin para corrigir o problema. Como sugerido por hadjedj.vincent, nós editamos o class-sitemaps.php localizado em “/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php”.
Você precisa olhar para o código init () da função e fazer essa seção ficar assim:
/ ** * Inicializar sitemaps. Adicionar regras de reescrita do sitemap e consultar var * / function init () { global $ wp_rewrite; $ GLOBALS ['wp'] -> add_query_var ('sitemap'); $ GLOBALS ['wp'] -> add_query_var ('sitemap_n'); add_rewrite_rule ('sitemap_index.xml $', 'index.php' sitemap = 1 ',' top '); add_rewrite_rule ('([^ /] +?) - sitemap ([0-9] +) ?. xml $', 'index.php? sitemap = $ matches [1] & sitemap_n = $ matches [2]', 'top '); $ wp_rewrite-> flush_rules (); }
Basicamente, o que estamos fazendo é adicionar o $ wp_rewrite global; antes de tudo o que já existe e adicionando flush_rules após o código. Ao adicionar isso no plugin, parece corrigir o problema 404 no site do nosso cliente. Não temos ideia de porque o Yoast não está fazendo isso por padrão , mas parece que alguns usuários estão tendo esse problema do sitemap 404. Esta questão é explicada nos comentários.
Atualizar: Como alguns de nossos usuários relataram que, depois de aplicar a correção acima, eles ainda precisavam desmarcar a opção do sitemap no plugin SEO do Yoast e salvar suas configurações. Depois disso, re-verificar a opção do sitemap corrigiu o erro para eles.
Se você estivesse procurando essa questão, esperamos que essa correção o tenha ajudado.