diff --git a/src/wp-admin/js/conditional-options.js b/src/wp-admin/js/conditional-options.js
new file mode 100644
index 0000000..7fae12f
--- /dev/null
+++ b/src/wp-admin/js/conditional-options.js
@@ -0,0 +1,20 @@
+/**
+ * This file will allow usage of the /wp-admin/options.php without hitting the `max_input_vars`
+ *
+ * Options will be saved only if there was a change to the field, which also improves performance.
+ */
+(function( $ ) {
+	$(document).ready( function() {
+		$( 'body.options-php .all-options' ).on( 'change keydown', function(){
+			var $this = $( this );
+
+			// If the field has a name skip it
+			if ( $this.attr( 'name' ) == $this.data( 'name' ) ) {
+				return;
+			}
+
+			// Now apply the actual Name to the field
+			$this.attr( 'name', $this.data( 'name' ) );
+		});
+	});
+})( jQuery );
diff --git a/src/wp-admin/options.php b/src/wp-admin/options.php
index e2bfa90..1ab8e97 100644
--- a/src/wp-admin/options.php
+++ b/src/wp-admin/options.php
@@ -211,8 +211,9 @@ if ( 'update' == $action ) {
 				if ( ! is_array( $value ) )
 					$value = trim( $value );
 				$value = wp_unslash( $value );
+
+				update_option( $option, $value );
 			}
-			update_option( $option, $value );
 		}
 
 		// Switch translation in case WPLANG was changed.
@@ -235,64 +236,72 @@ if ( 'update' == $action ) {
 	/**
 	 * Redirect back to the settings page that was submitted
 	 */
-	$goback = add_query_arg( 'settings-updated', 'true',  wp_get_referer() );
+	$goback = add_query_arg( 'settings-updated', 'true', wp_get_referer() );
 	wp_redirect( $goback );
 	exit;
 }
 
+wp_enqueue_script( 'conditional-options' );
+
 include( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
 <div class="wrap">
-  <h1><?php esc_html_e( 'All Settings' ); ?></h1>
-  <form name="form" action="options.php" method="post" id="all-options">
-  <?php wp_nonce_field('options-options') ?>
-  <input type="hidden" name="action" value="update" />
-  <input type="hidden" name="option_page" value="options" />
-  <table class="form-table">
-<?php
-$options = $wpdb->get_results( "SELECT * FROM $wpdb->options ORDER BY option_name" );
-
-foreach ( (array) $options as $option ) :
-	$disabled = false;
-	if ( $option->option_name == '' )
-		continue;
-	if ( is_serialized( $option->option_value ) ) {
-		if ( is_serialized_string( $option->option_value ) ) {
-			// This is a serialized string, so we should display it.
-			$value = maybe_unserialize( $option->option_value );
-			$options_to_update[] = $option->option_name;
-			$class = 'all-options';
-		} else {
-			$value = 'SERIALIZED DATA';
-			$disabled = true;
-			$class = 'all-options disabled';
-		}
-	} else {
-		$value = $option->option_value;
-		$options_to_update[] = $option->option_name;
-		$class = 'all-options';
-	}
-	$name = esc_attr( $option->option_name );
-	?>
-<tr>
-	<th scope="row"><label for="<?php echo $name ?>"><?php echo esc_html( $option->option_name ); ?></label></th>
-<td>
-<?php if ( strpos( $value, "\n" ) !== false ) : ?>
-	<textarea class="<?php echo $class ?>" name="<?php echo $name ?>" id="<?php echo $name ?>" cols="30" rows="5"><?php
-		echo esc_textarea( $value );
-	?></textarea>
-	<?php else: ?>
-		<input class="regular-text <?php echo $class ?>" type="text" name="<?php echo $name ?>" id="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>"<?php disabled( $disabled, true ) ?> />
-	<?php endif ?></td>
-</tr>
-<?php endforeach; ?>
-  </table>
-
-<input type="hidden" name="page_options" value="<?php echo esc_attr( implode( ',', $options_to_update ) ); ?>" />
-
-<?php submit_button( __( 'Save Changes' ), 'primary', 'Update' ); ?>
-
-  </form>
+	<h1><?php esc_html_e( 'All Settings' ); ?></h1>
+	<form name="form" action="options.php" method="post" id="all-options">
+		<?php wp_nonce_field( 'options-options' ); ?>
+		<input type="hidden" name="action" value="update" />
+		<input type="hidden" name="option_page" value="options" />
+
+		<table class="form-table">
+			<?php
+			$options = $wpdb->get_results( "SELECT * FROM $wpdb->options ORDER BY option_name" );
+
+			foreach ( (array) $options as $option ) :
+			$disabled = false;
+
+			// Leave if the option name is empty
+			if ( $option->option_name == '' ){
+				continue;
+			}
+
+			if ( is_serialized( $option->option_value ) ) {
+				if ( is_serialized_string( $option->option_value ) ) {
+					// This is a serialized string, so we should display it.
+					$value = maybe_unserialize( $option->option_value );
+					$options_to_update[] = $option->option_name;
+					$class = 'all-options';
+				} else {
+					$value = 'SERIALIZED DATA';
+					$disabled = true;
+					$class = 'all-options disabled';
+				}
+			} else {
+				$value = $option->option_value;
+				$options_to_update[] = $option->option_name;
+				$class = 'all-options';
+			}
+			$name = esc_attr( $option->option_name );
+			?>
+			<tr>
+				<th scope="row">
+					<label for="<?php echo $name ?>"><?php echo esc_html( $option->option_name ); ?></label>
+				</th>
+				<td>
+					<?php if ( strpos( $value, "\n" ) !== false ) { ?>
+						<textarea class="<?php echo $class ?>" data-name="<?php echo $name ?>" id="<?php echo $name ?>" cols="30" rows="5"><?php echo esc_textarea( $value ); ?></textarea>
+					<?php } else { ?>
+						<input class="regular-text <?php echo $class ?>" type="text" data-name="<?php echo $name ?>" id="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>"<?php disabled( $disabled, true ) ?> />
+					<?php } ?>
+				</td>
+			</tr>
+			<?php endforeach; ?>
+		</table>
+
+		<input type="hidden" name="page_options" value="<?php echo esc_attr( implode( ',', $options_to_update ) ); ?>" />
+
+		<?php submit_button( __( 'Save Changes' ), 'primary', 'Update' ); ?>
+
+	</form>
 </div>
 
 <?php
diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php
index 2ac34ed..c208b6c 100644
--- a/src/wp-includes/script-loader.php
+++ b/src/wp-includes/script-loader.php
@@ -650,6 +650,8 @@ function wp_default_scripts( &$scripts ) {
 		$scripts->add( 'media-gallery', "/wp-admin/js/media-gallery$suffix.js", array('jquery'), false, 1 );
 
 		$scripts->add( 'svg-painter', '/wp-admin/js/svg-painter.js', array( 'jquery' ), false, 1 );
+
+		$scripts->add( 'conditional-options', '/wp-admin/js/conditional-options.js', array( 'jquery' ), false, 1 );
 	}
 }
 
