long delay before loading website because of wp_footer()

To debug a hook look into the associated actions and filters. They are listed in $GLOBALS['wp_filter'].

Sample plugin for debugging

<?php # -*- coding: utf-8 -*-
/**
 * Plugin Name: T5 Debug Hook
 * Description: Adds a list of registered filters and action for a hook. Call a page with <code>?hook=NAME</code> to see it.
 */

add_action( 'shutdown', 't5_debug_hook' );

function t5_debug_hook()
{
    if ( ! isset ( $_GET['hook'] ) or ! current_user_can( 'update_core') )
    {
        return;
    }

    $f = $GLOBALS['wp_filter'];

    if ( ! isset ( $f[ $_GET['hook'] ] ) )
    {
        print 'Nothing found for ' . esc_html( $_GET['hook'] );
        return;
    }

    print '<pre>' . esc_html( var_export( $f[ $_GET['hook'] ], TRUE ) ) . '</pre>';
}

Sample output for example.com/?hook=wp_footer

array (
  20 => 
  array (
    'wp_print_footer_scripts' => 
    array (
      'function' => 'wp_print_footer_scripts',
      'accepted_args' => 1,
    ),
  ),
  1000 => 
  array (
    'wp_admin_bar_render' => 
    array (
      'function' => 'wp_admin_bar_render',
      'accepted_args' => 1,
    ),
  ),
)

The numbers (20 and 1000 here) stand for the priority or the order of execution.

Now you can deactivate single actions and filters until you find the slowest.

remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 );

… will deactivate the last function.

Your site is rendering fine for me, so I guess it is the admin bar or a script loaded for logged in users only.