Установить каноникал правильно.
<link rel="canonical" href="https://nasobe.ru/?spa">
О_о: поисковики сначало индексирует заголовок страницы и когда бекенд отдаёт отрисовку, то именно она и остается. А яваскрипт вообще не читается роботом поисковика, потому что робот поисковика опознает только отданную страницу с сервера и нет никаких данных о выполнении JS. Посмотреть как будет отображаться заголовок при обходе поисковиком: https://bertal.ru/
Таким образом чтобы указать канонический адрес страницы, нужно отдавать его бэкендом. И если конструировать яваскриптом.
document.querySelector("link[rel=canonical]").setAttribute("href", 'https://nasobe.ru/blozhik/'+window.location.search);
Необходимо удалить каноникал, оставить пустое значение, потому что перезатирать яваскриптом канонический адрес не выйдет. Робот поисковика не выполняет яваскрипт. И первым делом отрисуется то что указано хедере, но и яваскрипт попадает в хедер, если тег каноникал оставить пустым. Хотя в заголовках этого не видно, но в вебмастере временами материализуется адрес указанный яваскриптом. Видимо совершенно случайно. Как это происходит и кто может знать, наверняка? Остаётся загадкой! Запутанной, остросюжетной завесой форсмажорных догадок, ... с элементами катастрофы, авиационной, с участием инопланетян…
ChikChicly SpaceHands ForsmaZhorovich
to list