diff --git src/wp-admin/includes/user.php src/wp-admin/includes/user.php
index afbc2c8..5e4c575 100644
--- src/wp-admin/includes/user.php
+++ src/wp-admin/includes/user.php
@@ -798,6 +798,7 @@ function _wp_personal_data_export_page() {
 	$requests_table = new WP_Privacy_Data_Export_Requests_Table( array(
 		'plural'   => 'privacy_requests',
 		'singular' => 'privacy_request',
+		'screen'   => 'export_personal_data',
 	) );
 	$requests_table->process_bulk_action();
 	$requests_table->prepare_items();
@@ -869,6 +870,7 @@ function _wp_personal_data_removal_page() {
 	$requests_table = new WP_Privacy_Data_Removal_Requests_Table( array(
 		'plural'   => 'privacy_requests',
 		'singular' => 'privacy_request',
+		'screen'   => 'remove_personal_data',
 	) );
 
 	$requests_table->process_bulk_action();
@@ -983,7 +985,10 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 	 * @return array
 	 */
 	protected function get_sortable_columns() {
-		return array();
+		return array(
+			'email'             => 'requester',
+			'created_timestamp' => 'requested',
+		);
 	}
 
 	/**
@@ -1130,25 +1135,57 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 	public function prepare_items() {
 		global $wpdb;
 
-		$primary               = $this->get_primary_column_name();
-		$this->_column_headers = array(
-			$this->get_columns(),
-			array(),
-			$this->get_sortable_columns(),
-			$primary,
-		);
-
 		$this->items    = array();
 		$posts_per_page = 20;
 		$args           = array(
 			'post_type'      => $this->post_type,
 			'post_name__in'  => array( $this->request_type ),
 			'posts_per_page' => $posts_per_page,
-			'offset'         => isset( $_REQUEST['paged'] ) ? max( 0, absint( $_REQUEST['paged'] ) - 1 ) * $posts_per_page: 0,
 			'post_status'    => 'any',
-			's'              => isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : '',
 		);
 
+		if ( isset( $_REQUEST['paged'] ) && (int) $_REQUEST['paged'] > 0 ) {
+			$args['paged'] = (int) $_REQUEST['paged'];
+		}
+
+		$is_search = false;
+		if ( isset( $_REQUEST['s'] ) && '' !== $_REQUEST['s'] ) {
+			$args['s'] = sanitize_text_field( $_REQUEST['s'] );
+			$is_search = true;
+		}
+
+		$orderby_mapping = array(
+			'requester' => 'title',
+			'requested' => 'post_date_gmt',
+		);
+
+		$orderby = '';
+
+		if ( isset( $_REQUEST['orderby'] ) && isset( $orderby_mapping[ $_REQUEST['orderby'] ] ) ) {
+			$orderby = $orderby_mapping[ $_REQUEST['orderby'] ];
+		} elseif ( ! $is_search ) { // Don't override default search order by fields.
+			$orderby = 'post_date_gmt';
+		}
+
+		if ( $orderby ) {
+			$args['orderby'] = $orderby;
+		}
+
+		$order = '';
+		if ( isset( $_REQUEST['order'] ) && in_array( strtoupper( $_REQUEST['orderby'] ), array( 'ASC', 'DESC' ), true ) ) {
+			$order = strtoupper( $_REQUEST['orderby'] );
+		} elseif ( ! $is_search ) { // Don't override the default search order.
+			if ( 'post_date_gmt' === $orderby ) { // Descending default date order.
+				$order = 'DESC';
+			} else {
+				$order = 'ASC';
+			}
+		}
+
+		if ( $order ) {
+			$args['order'] = $order;
+		}
+
 		if ( ! empty( $_REQUEST['filter-status'] ) ) {
 			$filter_status       = isset( $_REQUEST['filter-status'] ) ? sanitize_text_field( $_REQUEST['filter-status'] ) : '';
 			$args['post_status'] = $filter_status;
