Улучшить можно много где.
1)
$name = strip_tags($_POST['name']);
$pass = strip_tags($_POST['password']);
Эти строки лишние, просто пишите:
$stmt->execute(array(':name' => $_POST['name']));
2)
$stmt = $pdo->prepare("SELECT name, password FROM users WHERE name = :name");
Зачем вы достаёте из базы name? Если $_POST['name'] неверный, то запрос в любом случае не найдёт ничего.
3) Конечный закрывающий php тег (?>) рекомендуется убирать, если файл не содержит больше кода
4) Если пользователь с именем $_POST['name'] не будет найден, вот этот код
$hash = $result['password'];
сгенерирует предупреждение, т.к. $result не будет содержать password