Como crear un sitemap.xml para WordPress sin plugins
Actualizado: 17 de noviembre del 2022
Por: Norfi Carrodeguas
Por: Norfi Carrodeguas
Código para un Mapa del sitio del blog, para enviar a Google y otros buscadores, que se genera y actualiza automáticamente con cada publicación.
Todos los blogs y sitios web de internet requieren de un archivo sitemap.xml, en el que se listan todas las paginas, que se necesitan indexar por Google y otros buscadores.
WordPress no crea este tipo de archivo.
Generalmente lo crean manualmente algunos usuarios, pero la gran mayoría instalando plugins.
No obstante la tarea de generarlo y actualizarlo, es bastante sencilla usando un script que se puede agregar al archivo de configuración del sitio.
Para los que desean en lo posible prescindir de los plugins, en este artículo explico cómo crear el generador de sitemap, que uso en este blog.
Código para generar el sitemap.xml
El sitemap.xml es un archivo de texto plano en formato XML, en el que se listan las páginas de un sitio, con datos como la ruta de cada una, su fecha de publicación y de actualización.El generador que comparto escribe un nuevo sitemap en la carpeta raíz del sitio, cada vez que se crea una nueva publicación ya sea una entrada o una pagina
Para crearlo agrega el siguiente código al archivo function.php situado en la carpeta Child del tema activo.
Si aún no la has creado, lee como hacerlo en otra publicación.
add_action( 'publish_post', 'itsg_create_sitemap' );
add_action( 'publish_page', 'itsg_create_sitemap' );
function itsg_create_sitemap() {
$postsForSitemap = get_posts(array(
'numberposts' => -1,
'orderby' => 'modified',
'post_type' => array( 'post', 'page' ),
'order' => 'DESC'
));
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">';
foreach( $postsForSitemap as $post ) {
setup_postdata( $post );
$postdate = explode( " ", $post->post_modified );
$sitemap .= '<url>'.
'<loc>' . get_permalink( $post->ID ) . '</loc>' .
'<lastmod>' . $postdate[0] . '</lastmod>' .
'</url>';
}
$sitemap .= '</urlset>';
$fp = fopen( ABSPATH . 'sitemap.xml', 'w' );
fwrite( $fp, $sitemap );
fclose( $fp );
}
Es opcional cambiarle el nombre al archivo creado, modificando la línea 22.Probar y enviar el sitemap.xml a Google
Después de comprobar que el sitemap.xml se crea correctamente después de cada publicación, debemos de probarlo y enviarlo a Google.Para eso necesitamos poseer una cuenta en Search Console de Google, si no es así crear una nueva.
Después de eso accede a Panel de Sitemaps en Rastreo y presiona el botón “Añadir” o probar sitemap.
Introduce la dirección del archivo y presiona “Probar”.
En caso de que la prueba se exitosa vuelve atrás y presiona “Enviar”.
Es todo.
No se necesita ninguna otra acción, los buscadores revisarán regularmente el archivo en busca de nuevas páginas en él listadas.
Agregar el sitemap.xml al archivo Robots.txt
El último paso necesario es agregar la ruta o dirección del sitemap.xml al archivo Robots.txt del sitio, para asegurar que los robots lo encuentren e indexen correctamente las páginas en él listadas.Un archivo Robots.txt posee el siguiente formato:
# Google AdSense
User-agent: Mediapartners-Google
Disallow:
# global
User-agent: *
Sitemap: https://norfipc.com/sitemap.xml
Después de crearlo no es necesaria ninguna acción.Solo está destinado a los bots que acceden al sitio.
Lee más información detallada: Como crear un archivo Robots.txt
Errores al crear el archivo sitemap.xml
El único error que puede causar que no se escriba el archivo sitemap.xml correctamente, se puede deber a que no se cuenta con los permisos necesarios en la carpeta raíz del blog.Esto sucede en algunas instalaciones.
Para solucionarlo debemos permitir que el usuario Apache cuente con permisos de escritura.
En WordPress el directorio raíz y todas las subcarpetas deben de poseer el permiso 755, pero hay que agregarle también “www-data”.
Para eso introduce en la consola la siguiente instrucción o agrégala manualmente mediante CPanel.
chown -R www-data:www-data /home/cuenta/public_html/
Sustituye los datos de tu blog.Más información
Como crear un Sitemap o Mapa del sitioComo crear un archivo Robots.txt
Otras páginas relacionadas
✓ Como modificar y personalizar mi tema de WordPress✓ Como usar y configurar WordPress sin plugins
✓ Convertir los enlaces externos en NoFollow en WordPress
✓ Validar archivos sitemap.xml o de fuentes RSS
Comparte
Facebook
Twitter