This works for me with no 404s
<?php
$args = array (
'posts_per_page' => 5 ,
'paged' => $paged,
'ignore_sticky_posts' => true
);
$blog_query = new WP_Query($args);
if ( $blog_query->max_num_pages > 1 ) {
next_posts_link('← Older posts', $blog_query->max_num_pages);
previous_posts_link('Newer posts →', $blog_query->max_num_pages);
}
while ( $blog_query->have_posts() ) {
$blog_query->the_post();
// STUFF
}
if ( $blog_query->max_num_pages > 1 ) {
next_posts_link('← Older posts', $blog_query->max_num_pages);
previous_posts_link('Newer posts →', $blog_query->max_num_pages);
}
wp_reset_query();
?>
I can see the need for a secondary loop if you want to not use category pages or want there to be editable content on the page or a title different than the category name.