Переименование якоря без поломки внешних ссылок

На качественном сайте внешние ссылки продолжают работать и спустя многие годы, даже если исходные URL-адреса изменились, например, из-за полного изменения схемы URL-адресов на всём сайте, замены мнемо­нического фрагмента «человеко­читаемого» URL-адреса отдельной страницы на более удачный или перемещения страницы в другой раздел.

Для веб-страницы или файла это решается внешним перенаправлением (редиректом) с прежнего адреса на новый с помощью HTTP-заголовка ответа сервера Location в сочетании с HTTP-статусом 301 Moved Permanently.

Но что делать, если адрес изменился из-за переименования якоря (хэша)? Якоря основаны на использовании идентификаторов (атрибутов id) элементов. Например, переход по ссылке #h-foo автоматически прокрутит страницу к элементу с идентификатором h-foo, если такой элемент есть на странице.

В атрибут id можно поместить только один идентификатор. Поэтому при изменении идентификатора сохранить работоспособность старых ссылок можно созданием пустого семантически нейтрального элемента SPAN с прежним идентификатором и вставкой его в начало исходного элемента:

Было:
<h2 id="h-foo">Example</h2>
Стало:
<h2 id="h-bar"><span id="h-foo"></span>Example</h2>

Благодаря этому ссылки на прежний якорь — #h-foo — останутся работоспособными.