diff --git a/src/wp-includes/canonical.php b/src/wp-includes/canonical.php
index 12b2445aa1..2e12bd774c 100644
--- a/src/wp-includes/canonical.php
+++ b/src/wp-includes/canonical.php
@@ -317,9 +317,9 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
 				$paged = get_query_var('paged');
 				$redirect['query'] = remove_query_arg( 'paged', $redirect['query'] );
 				if ( !is_feed() ) {
-					if ( $paged > 1 && !is_single() ) {
+					if ( $paged > 1 && !is_singular() ) {
 						$addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit("$wp_rewrite->pagination_base/$paged", 'paged');
-					} elseif ( !is_single() ) {
+					} elseif ( !is_singular() ) {
 						$addl_path = !empty( $addl_path ) ? trailingslashit($addl_path) : '';
 					}
 				} elseif ( $paged > 1 ) {
diff --git a/tests/phpunit/tests/canonical/paged.php b/tests/phpunit/tests/canonical/paged.php
index 8f1dbfdab0..9a8ad7de2c 100644
--- a/tests/phpunit/tests/canonical/paged.php
+++ b/tests/phpunit/tests/canonical/paged.php
@@ -22,4 +22,23 @@ class Tests_Canonical_Paged extends WP_Canonical_UnitTestCase {
 
 		$this->assertCanonical( $paged, $link );
 	}
-}
\ No newline at end of file
+
+	/**
+	 * Ensure paged canonical redirect applies to pages.
+	 *
+	 * @ticket 28081
+	 */
+	function test_page_with_paged_query_var() {
+		$post_id = self::factory()->post->create( array(
+			'post_status'  => 'publish',
+			'post_title'   => 'Alexander Hamilton.',
+			'post_content' => 'My name is Alexander Hamilton.',
+			'post_type'    => 'page',
+		) );
+
+		$link = parse_url( get_permalink( $post_id ), PHP_URL_PATH );
+		$paged = $link . 'page/3/';
+
+		$this->assertCanonical( $paged, $link );
+	}
+}
