Normalmente uso esto:
Código HTML:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo footer</title>
<meta charset="UTF-8">
<style>
* {
box-sizing: border-box;
}
html,body {height:100%;padding:0;margin:0}
.contenedor {background-color:#CCC;min-height: 100%;padding-bottom:50px}
#footer {
background-color:#F00;
position:relative;
height:50px;
margin-top:-50px;
}
</style>
</head>
<body>
<div class="contenedor">Contenido</div>
<div id="footer">Pie de página</div>
</body>
</html>
Obligamos a que el cuerpo del documento sea el 100% de la página y creamos una capa que también tenga como mínimo la altura de la página. Luego añadimos el footer con la altura necesaria y lo subimos con margin-top para que parezca que siempre está abajo sin que salga la barra de deslizamiento vertical si el contenido es muy poco. Prueba a ver y nos cuentas
Un saludo