Getting admin notices to appear after page refresh

You should use set_transient this is stored and will show up after the page reloads as it is like cookies on the server side.

function SITE_profile_update_notice() {
// Add this to your code where you want to the transient to fire  after function
set_transient( 'fx-admin-notice-panel', true, 5 );
}

/* Add admin notice */
add_action( 'admin_notices', 'fx_admin_notice_example_notice' );


/** Admin Notice on Activation. @since 0.1.0 */
function fx_admin_notice_example_notice(){

    /* Check transient, if available display notice */
    if( get_transient( 'fx-admin-notice-panel' ) ){
        ?>
        <div class="updated notice is-dismissible">
            <div class="notice"><p>Good Job!</p></div>
        </div>
        <?php
        /* Delete transient, only display this notice once. */
        delete_transient( 'fx-admin-notice-panel' );
    }
}

This page might be perfect for your needs http://revelationconcept.com/wordpress-send-admin-notification-user-updates-profile/