Tengo un plan diseñado para migrar mi sitio de WordPress de más de 30k publicaciones a un sitio personalizado creado por mí. Uno de los principales puntos de conflicto que tengo es el SEO y estoy bastante seguro de que necesito reenviar correctamente todas las URL de mis publicaciones si no quiero diezmar mi SEO en Google (que me está yendo muy bien).
Estructura actual: https://ygoprodeck.com/xyz-rank-up-shark/
Nueva estructura: https://ygoprodeck.com/deck/xyz-rank-up-shark
Esta parte es fácil, ya que puedo crear las nuevas URL utilizando la columna post_name de WordPress en la nueva base de datos y simplemente redirigir las URL antiguas a las nuevas /deck/ URL. Sin embargo, ¿cómo puedo hacer que el reenviador diferencie entre publicaciones y páginas?
Toma este ejemplo:
Estructura actual: https://ygoprodeck.com/ritual-summoning-the-underdogs-greatest-hits/
Nueva estructura: https://ygoprodeck.com/article/ritual-summoning-the-underdogs-greatest-hits/
No estoy completamente seguro de cómo mi reenviado sabrá redirigir a /deck/ o redirigir a /article/ ?
La única solución que se me ocurre es redirigir manualmente cada URL de más de 30k, lo que me parece una tarea monumental.
Algo como esto:
$file = wp_get_upload_dir() . 'rules.txt'; $open = fopen( $file, "a" ); args = array('post_type' => 'post', 'posts_per_page' => -1 ); $posts = new WP_Query($args); if( $posts->have_posts() ){ while( $posts->have_posts() ){ $posts->the_post(); global $post; $permalink = get_permalink($post->ID); //Assuming each post has only 1 category $category = get_the_category($post->ID)[0]->name; $write = fputs( $open, 'Redirect 301 ' . $permalink . ' /' . $category . $permalink. '\n' ); } flocse( $open ); wp_reset_query(); }