Через HTTP(S)-заголовки: и ловите: кто/когда, и контролируйте доступ отображения (только для открытия через обычный браузер!).
JS тут Вам - не товарищ!
Это делается ни в клиентском js, а в проверке заголовка REFERRER на стороне сервера.
Например, $_SERVER["DOCUMENT_REFERRER"] в PHP.
Или правилами mod_rewrite в apache.
Полностью зависит от того, какую цель вы преследуете.
1. Угодить поисковикам - одно.
2. Угодить пользователю - другое.
3. Угодить заказчику - третье.
4. Срубить бобов за 1 час работы и 3 дня отдыха - тоже вариант!))
Практики - тут вообще ни при чём. Они лишь дают понимание процесса, а необходимость их применения - полностью зависит от выбранной вами цели.
function UrlExists(url,alert=false) {
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
if (http.status != 404)
// do something
else {
if (alert) alert(alert);
window.location.reload();
}
}
Отключите полностью кеширование всего сайта сразу после редактирования контента на время жизни кэша.
По истечении этого времени - снова включите кэширование.
Часто редактируете - отключайте или совсем, или точечно: только на изменённых линках.
Сайт простой - сделайте кэширование для всего контента на время самого длительного посещения: оптимально 30 минут.