diff --git src/wp-admin/includes/class-wp-plugins-list-table.php src/wp-admin/includes/class-wp-plugins-list-table.php
index 6e130f94b4..e8d6741acc 100644
--- src/wp-admin/includes/class-wp-plugins-list-table.php
+++ src/wp-admin/includes/class-wp-plugins-list-table.php
@@ -749,7 +749,12 @@ class WP_Plugins_List_Table extends WP_List_Table {
 			$plugin_name = $plugin_data['Name'];
 		}

-		if ( ! empty( $totals['upgrade'] ) && ! empty( $plugin_data['update'] ) ) {
+
+		$tested_php     = ! empty($plugin_data['requires_php'] );
+		$compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $plugin_data['requires_php'] ) ), $plugin_data['requires_php'], '>=' ) );
+		$can_update     = ! $tested_php || $compatible_php;
+
+		if ( ! empty( $totals['upgrade'] ) && ! empty( $plugin_data['update'] ) && $can_update ) {
 			$class .= ' update';
 		}

@@ -819,6 +824,16 @@ class WP_Plugins_List_Table extends WP_List_Table {
 						);
 					}

+					if ( ! $can_update ) {
+						$plugin_meta[] = __( 'Incompatible with your version of PHP.' ) . '&nbsp;' .
+						/* translators: Link to servehappy page */
+						sprintf(
+							__( '%sLearn more about updating PHP.%s' ),
+							'<a href="https://wordpress.org/support/upgrade-php/">',
+							'</a>'
+						);
+					}
+
 					/**
 					 * Filters the array of row meta for each plugin in the Plugins list table.
 					 *
diff --git src/wp-admin/includes/update.php src/wp-admin/includes/update.php
index d8e1fe84d9..845df7f416 100644
--- src/wp-admin/includes/update.php
+++ src/wp-admin/includes/update.php
@@ -376,6 +376,14 @@ function wp_plugin_update_row( $file, $plugin_data ) {

 	$response = $current->response[ $file ];

+	$tested_php     = ! empty( $response->requires_php );
+	$compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $response->requires_php ) ), $response->requires_php, '>=' ) );
+	$can_update     = ! $tested_php || $compatible_php;
+
+	if ( ! $can_update ) {
+		return false;
+	}
+
 	$plugins_allowedtags = array(
 		'a'       => array(
 			'href'  => array(),
diff --git src/wp-admin/update-core.php src/wp-admin/update-core.php
index 61527bfc82..9863a23637 100644
--- src/wp-admin/update-core.php
+++ src/wp-admin/update-core.php
@@ -287,6 +287,21 @@ foreach ( (array) $plugins as $plugin_file => $plugin_data ) {
 			$compat .= '<br />' . sprintf( __( 'Compatibility with WordPress %1$s: Unknown' ), $core_update_version );
 		}
 	}
+
+	$tested_php     = ! empty( $plugin_data->update->requires_php );
+	$compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $plugin_data->update->requires_php ) ), $plugin_data->update->requires_php, '>=' ) );
+	$can_update     = ! $tested_php || $compatible_php;
+
+	if ( ! $can_update ) {
+		$compat .= '<br>' . __( 'Incompatible with your version of PHP.' ) . '&nbsp;';
+		/* translators: Link to servehappy page */
+		$compat .= sprintf(
+			__( '%sLearn more about updating PHP.%s' ),
+			'<a href="https://wordpress.org/support/upgrade-php/">',
+			'</a>'
+		);
+	}
+
 	// Get the upgrade notice for the new plugin version.
 	if ( isset( $plugin_data->update->upgrade_notice ) ) {
 		$upgrade_notice = '<br />' . strip_tags( $plugin_data->update->upgrade_notice );
@@ -308,6 +323,7 @@ foreach ( (array) $plugins as $plugin_file => $plugin_data ) {
 	?>
 	<tr>
 		<td class="check-column">
+		<?php if ( $can_update ) : ?>
 			<input type="checkbox" name="checked[]" id="<?php echo $checkbox_id; ?>" value="<?php echo esc_attr( $plugin_file ); ?>" />
 			<label for="<?php echo $checkbox_id; ?>" class="screen-reader-text">
 										<?php
@@ -318,6 +334,7 @@ foreach ( (array) $plugins as $plugin_file => $plugin_data ) {
 										);
 				?>
 				</label>
+			<?php endif; ?>
 			</td>
 			<td class="plugin-title"><p>
 				<?php echo $icon; ?>
