diff --git src/wp-admin/includes/user.php src/wp-admin/includes/user.php
index fa868d9..670946b 100644
--- src/wp-admin/includes/user.php
+++ src/wp-admin/includes/user.php
@@ -799,6 +799,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();
@@ -870,6 +871,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();
@@ -1064,7 +1066,15 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 	 * @return array Default sortable columns.
 	 */
 	protected function get_sortable_columns() {
-		return array();
+		// The initial sorting is by 'Requested' (post_date) and descending.
+		// With initial sorting, the first click on 'Requested' should be ascending.
+		// With 'Requester' sorting active, the next click on 'Requested' should be descending.
+		$desc_first = isset( $_GET['orderby'] );
+
+		return array(
+			'email'             => 'requester',
+			'created_timestamp' => array( 'requested', $desc_first ),
+		);
 	}
 
 	/**
@@ -1208,18 +1218,11 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 	 * Prepare items to output.
 	 *
 	 * @since 4.9.6
+	 * @since 4.9.8 Added support for column sorting.
 	 */
 	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(
@@ -1231,6 +1234,19 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 			's'              => isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : '',
 		);
 
+		$orderby_mapping = array(
+			'requester' => 'post_title',
+			'requested' => 'post_date',
+		);
+
+		if ( isset( $_REQUEST['orderby'] ) && isset( $orderby_mapping[ $_REQUEST['orderby'] ] ) ) {
+			$args['orderby'] = $orderby_mapping[ $_REQUEST['orderby'] ];
+		}
+
+		if ( isset( $_REQUEST['order'] ) && in_array( strtoupper( $_REQUEST['order'] ), array( 'ASC', 'DESC' ), true ) ) {
+			$args['order'] = strtoupper( $_REQUEST['order'] );
+		}
+
 		if ( ! empty( $_REQUEST['filter-status'] ) ) {
 			$filter_status       = isset( $_REQUEST['filter-status'] ) ? sanitize_text_field( $_REQUEST['filter-status'] ) : '';
 			$args['post_status'] = $filter_status;
diff --git tests/phpunit/tests/admin/wpPrivacyRequestsTable.php tests/phpunit/tests/admin/wpPrivacyRequestsTable.php
new file mode 100644
index 0000000..a4e9fc1
--- /dev/null
+++ tests/phpunit/tests/admin/wpPrivacyRequestsTable.php
@@ -0,0 +1,154 @@
+<?php
+/**
+ * Test the `WP_Privacy_Requests_Table` class.
+ *
+ * @package WordPress\UnitTests
+ *
+ * @since 4.9.8
+ */
+
+/**
+ * Tests_Admin_WpPrivacyRequestsTable class.
+ *
+ * @group admin
+ * @group privacy
+ *
+ * @since 4.9.8
+ */
+class Tests_Admin_WpPrivacyRequestsTable extends WP_UnitTestCase {
+	/**
+	 * Get instance for mocked class.
+	 *
+	 * @since 4.9.8
+	 *
+	 * @return PHPUnit_Framework_MockObject_MockObject|WP_Privacy_Requests_Table $instance Mocked class instance.
+	 */
+	public function get_mocked_class_instance() {
+		$GLOBALS['hook_suffix'] = 'mocked';
+		$instance               = $this->getMockForAbstractClass( 'WP_Privacy_Requests_Table' );
+		unset( $GLOBALS['hook_suffix'] );
+		return $instance;
+	}
+
+	/**
+	 * Test columns should be sortable.
+	 *
+	 * @since 4.9.8
+	 * @dataProvider data_test_columns_should_be_sortable
+	 * @covers WP_Privacy_Requests_Table::prepare_items()
+	 */
+	public function test_columns_should_be_sortable( $order, $orderby, $search, $expected ) {
+		global $wpdb;
+
+		$table     = $this->get_mocked_class_instance();
+		$this->sql = '';
+
+		$_REQUEST['order']   = $order;
+		$_REQUEST['orderby'] = $orderby;
+		$_REQUEST['s']       = $search;
+
+		add_filter( 'posts_request', array( $this, 'filter_posts_request' ) );
+		$table->prepare_items();
+		remove_filter( 'posts_request', array( $this, 'filter_posts_request' ) );
+
+		unset( $_REQUEST['order'] );
+		unset( $_REQUEST['orderby'] );
+		unset( $_REQUEST['s'] );
+
+		$this->assertContains( "ORDER BY {$wpdb->posts}.{$expected}", $this->sql );
+	}
+
+	/**
+	 * Filter to grab the complete SQL query.
+	 *
+	 * @since 4.9.8
+	 *
+	 * @param string $request The complete SQL query.
+	 */
+	public function filter_posts_request( $request ) {
+		$this->sql = $request;
+		return $request;
+	}
+
+	/**
+	 * Data provider for `test_columns_should_be_sortable()`.
+	 *
+	 * @since 4.9.8
+	 *
+	 * @return array {
+	 *     @type array {
+	 *         @type string Order.
+	 *         @type string Order by.
+	 *         @type string Search term.
+	 *         @type string Expected in SQL query.
+	 *     }
+	 * }
+	 */
+	public function data_test_columns_should_be_sortable() {
+		return array(
+			// Default order (ID) DESC.
+			array(
+				'order'    => null,
+				'orderby'  => null,
+				's'        => null,
+				'expected' => 'post_date DESC',
+			),
+			// Default order (ID) DESC.
+			array(
+				'order'    => '',
+				'orderby'  => '',
+				's'        => '',
+				'expected' => 'post_date DESC',
+			),
+			// Order by requester (post_title) ASC.
+			array(
+				'order'    => 'ASC',
+				'orderby'  => 'requester',
+				's'        => '',
+				'expected' => 'post_title ASC',
+			),
+			// Order by requester (post_title) DESC.
+			array(
+				'order'    => 'DESC',
+				'orderby'  => 'requester',
+				's'        => null,
+				'expected' => 'post_title DESC',
+			),
+			// Order by requested (post_date) ASC.
+			array(
+				'order'    => 'ASC',
+				'orderby'  => 'requested',
+				's'        => null,
+				'expected' => 'post_date ASC',
+			),
+			// Order by requested (post_date) DESC.
+			array(
+				'order'    => 'DESC',
+				'orderby'  => 'requested',
+				's'        => null,
+				'expected' => 'post_date DESC',
+			),
+			// Search and order by relevance.
+			array(
+				'order'    => null,
+				'orderby'  => null,
+				's'        => 'foo',
+				'expected' => 'post_title LIKE',
+			),
+			// Search and order by requester (post_title) ASC.
+			array(
+				'order'    => 'ASC',
+				'orderby'  => 'requester',
+				's'        => 'foo',
+				'expected' => 'post_title ASC',
+			),
+			// Search and order by requested (post_date) ASC.
+			array(
+				'order'    => 'ASC',
+				'orderby'  => 'requested',
+				's'        => 'foo',
+				'expected' => 'post_date ASC',
+			),
+		);
+	}
+}
