Нет. Это дубли. Если не используете UTM-метки, лучше прямо в движке закрыть (выдавать 404-ую по всем левым адресам).
P.S. Вводную не прочитал. Да, canonical достаточно. Не юзать canonical – это высший пилотаж. Или пофигизм 😀
А что не так? Походу он не вам отвечал.
Кстати, <?= оставили не «по какой-то дикой мысле». Так действительно «красивей писать» (и быстрее). Это уже не всегда коротким тегом считают. Часто просто говорят «короткая форма echo».
У нас делают так:
<?php echo $x; ?>
Но конкретно echo в короткой форме так:
<?= $x ?>
Раскройте сетку – разместите страницу в одном месте. Страницу сделайте 404-ой. Все ссылки на нее – JS-овскими.
P.S. В смысле делаете разными значение a href и реальный адрес цели или вообще не используете тег a.
Сам пых – FastCGI-приложение, причем он обычно работает, как модуль Апача. Скармливать ему на прямую обработку .html/.htm – полнейший отстой.
На всех страницах одинаковый тайтл и т.п.? 😀 Инклудить статик не надо. А если это шаблонные файлы, используйте расширение .php, чтобы не путать со статиком.
Лучше постепенно переделать статический сайт под что-нибудь более вменяемое, например G-Drive. Меньше 100 строк кода. Можно добавлять любые поля помимо name и content. В адресах .html – легко. Просто делаете слаг с .html и готово: g09.ru/index.html
P.S. Под капотом:
INSERT INTO `site_categories` (`id`, `name`, `content`, `module`, `bits`) VALUES('index.html', 'Иллюзия присутствия', '<p>Такого файла не существует. Вам это только кажется )))</p>', '', 0);
Минимум служебных полей: id, bits и необязательное поле module. И это основная таблица. «Из коробки» поддерживается двухуровневая иерархия адресов/таблиц. На втором уровне обязательным является только поле id.
Я о простых фронтах, которые тем не менее нагружены достаточным функционалом, чтобы делать несложные сайты без дописывания или с мин. дописыванием кода.
Это понятно. Я об этом написал в первую очередь. Но вдруг у ТСа там какая-нибудь жесть под капотом, которую проще выкинуть, чем переписать.