Facepalm. Внимательно прочитайте ваше предложение:
Вы хотели эту банальщину написать или все же неправильно выразились?
Очевидно данный "токен" берет адрес из текущего запроса. Вам же нужно сформировать основной (канонический) адрес страницы. Программно это обычно делается через именованный маршрут и/или жесткое кодирование в соответствующем контроллере. Средствами шаблонизатора тоже можно обращаться к функциям маршрутизатора, но здесь нужно учитывать, что редактируемый шаблон может быть общим для разных типов страниц (т.к. метатеги размещаются внутри head).
Я Drupal не использую, но попробуйте совет от Гугла - отфильтровать допустимые параметры: [current-page:url-with-query:with-some-parameters:param1,param2,…]
Еще есть [current-page:url:absolute], но он скорее всего тоже будет брать адрес из запроса (с добавлением имени схемы и хоста).
Так это сильно недоделанный canonical, как Фокси написал.
С другой стороны понятно, что индексирование и "каноникализация" - это не одно и то же. Хочешь выпадения из индекса, используй 404 (410), 301 или noindex.
Для справки. Размещение метатега canonical немного проще в реализации для естественных дублей, т.к. canonical размещается и на канонической, и на ее дублях (т.е. содержимое естественных дублей может полностью совпадать), а для реализации noindex и т.п. программный код должен содержать ветвление.
Не пишите о том, о чем имеете отдаленное представление.
Хотя пользователю WP это простительно. Наверное, думаете, что везде такой дрянной код, раз даже такая распространенная система, как WP, настолько уродлива изнутри.
canonical на всех страницах начинает вести только на первую страницу
/stihi?page=211 - каноникал - /stihi
Для Яндекса это допустимо, особенно если вы дублируете описание списка на каждой странице списка.
Но в общем, конечно, нужно исправлять.
Как я написал в первом сообщении, "у Drupal-а достаточно развитой фрэймворк". 😉
Программисты решают такие вопросы достаточно просто. А вот простые вебмастеры "затыкают" подобные проблемы метатегом canonical и т.п.