Cuando estás programando sitios webs en los que se requiere un alto nivel de llamas Ajax, hay momentos en los que recargas la página completa o gran parte de ella mediante AJAX pero no deseas mantener las URLs con Hash para su enlace. En HTML5 hay una manera de modificar la URL del navegador, haciendo uso del pushState del historial.

window.history.pushState(state_object, "Título", "/nueva-url");
 
El primer parámetro de state_object es un objeto de javascript que será enviado al evento popstate una vez cambie de estado el navegador.