Stop Crawlers Paging Endlessly Through Old Archives
Returns a "not found" page for archive pages beyond page 50 (such as /page/873/) for logged-out visitors, which keeps bots from hammering your database with very slow deep pagination queries.
Opens WPIDE on
Code
// Highest archive page number served to logged-out visitors.
$wpide_max_page = 50;
add_action( 'template_redirect', function () use ( $wpide_max_page ) {
global $wp_query;
if ( is_user_logged_in() || ! is_paged() || (int) get_query_var( 'paged' ) <= $wpide_max_page ) {
return;
}
$wp_query->set_404();
status_header( 404 );
nocache_headers();
}, 1 );
Notes
Visitors can still reach old posts through search, categories and the sitemap; raise $wpide_max_page if your archives are browsed that deep on purpose.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.