1. Формальные рекомендации W3C о последовательности тегов в head: https://www.w3.org/wiki/The_HTML_head_element
2. Конкретные требования W3C по размещению отдельных тегов. Например, размещение charset в первых 1024 байтах: https://www.w3.org/TR/html5/document-metadata.html#charset1024
3. Внешние скрипты/стили блокируют парсинг страницы. Нет ничего хорошего в том, что из-за подвисшей загрузки даже тайтл не сможет отобразиться.
Да, никакого категорического запрета пихать ссылки куда попало нет, но в силу вышеназванных и других факторов сложились определённые best practices традиции, которые процентов на 90 имеют довольно практический смысл, а не просто ради принципа. Например, если title будет перед charset, а между ними какой-то файл затормозит загрузку - title может некоторое время выводиться абракадаброй (пока наконец charset не спрасится). Конечно, это только в том случае, если сервер не передаёт кодировку или передаёт неправильно. Но, если рассчитывать только на сервер, то непонятно зачем вообще этот метатег :)
Вероятно, он туда динамически вставляется после загрузки страницы.
Зачем тогда вы его здесь дважды написали? Не считая слеша на конце (что не критично) с этим тегом всё в полном порядке (если у вас html5) и размещён он именно там, где и должен.
Ну, так уберите слеш. Если у вас html5, то он там не нужен, а если не html5 - тег вообще неправильный.
Тогда в чём проблема? Вы же это для поисковиков делаете, а не для Megaindex. Скажите им, что Гугл всё видит, пусть разбираются, что у них не так с их парсером.
Я же не написал, что это ошибка - я написал, что он не нужен. В html5, в отличии от предшественников (и особенно xhtml) вообще мало что считается именно ошибкой. Но использование закрывающего слеша в одиночных тегах - это привычка с до html5 времён, где отсутствие слеша было именно ошибкой.