Wordpress - Do I need both jquery.js and jquery-migrate.min.js?
As stated in the official blog of jQuery. Note that WordPress is mentioned in the quote.
jQuery Migrate 1.4.1 released, and the path to jQuery 3.0
Version 1.4.1 of the jQuery Migrate plugin has been released. It has only a few changes but the most important of them fixes a problem with unquoted selectors that seems to be very common in some WordPress themes. In most cases Migrate can automatically fix this problem when it is used with jQuery 1.12.x or 2.2.x, although it may not be able to repair some complex selectors. The good news is that all the cases of unquoted selectors reported in WordPress themes appear to be fixable by this version of Migrate!
A quick answer to your question; yes you can remove the jQuery migration script and if you don't see any unwanted behavior after the removal of the script, then it's safe to say that you can completely remove the reference migration script.
Can be read in here
Yes you can remove JQuery Migrate to speed up the loading of your page on the client side.
What is jQuery Migrate?
The jQuery Migrate module (jquery-migrate.min.js) is a javascript library that allows you to preserve the compatibility of your jQuery code developed for versions of jQuery older than 1.9. JQuery Migrate also allows developers to detect deprecated code that is no longer supported by the latest jQuery libraries and to adapt it according to the newest versions of jQuery 1.9 and higher.
PHP code to disable jQuery Migrate in WordPress
This is the code I'm using for my clients and it is the right way to remove it properly on the client side without affecting any other components in the WordPress Dashboard. Grab this code and paste it in your functions.php file to remove the JQuery:
/**
* Disable jQuery Migrate in WordPress.
*
* @author Guy Dumais.
* @link https://en.guydumais.digital/disable-jquery-migrate-in-wordpress/
*/
add_filter( 'wp_default_scripts', $af = static function( &$scripts) {
if(!is_admin()) {
$scripts->remove( 'jquery');
$scripts->add( 'jquery', false, array( 'jquery-core' ), '1.12.4' );
}
}, PHP_INT_MAX );
unset( $af );
Hope this helps!