I have a WordPress site which syndicates content from a number of sources and auto creates categories and tags.

I have converted a large number of categories to tags which now leaves a ton of categories showing 404's. I started manually redirecting these but as expected this is a huge task.

I'm trying to find a way to use htaccess redirects, which can

  1. detect all category 404s
  2. redirect those to their /tag/tagterm/ equavalent

so all 404'ing /category/catterm to be redirected to /tag/tagterm equavalent

Any ideas?


Heree's a code solution, not htaccess. This first checks if current query is for a category page, then checks category existence, and if category not exists but a tag with the same name, it redirects to the tag page.

add_action('parse_request', 'wpse_parse_request');
function wpse_parse_request( $r ){
    if( isset($r->query_vars['category_name']) )
        $cat = get_term_by('slug', $r->query_vars['category_name'], 'category');
        if( !isset($cat->term_id) )
            $tag = get_term_by('slug', $r->query_vars['category_name'], 'post_tag');
            $link = get_term_link($tag);
            if( !is_wp_error($link) )
  • Thanks so much for this shazzad, does this go in my functions.php file? Will it remove the pages being flagged as 404 from the google bot's perspective? – user2410690 Mar 6 '14 at 15:57
  • Yes, these could go to functions.php file. And it should handle the googlebot's 404 for future crawl, as we are redirecting with 301 (wp_redirect function use 301 by default) status header, what means moved permanently. – Shazzad Mar 6 '14 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.