# Поломки в broken/: номер | файл | ожидаемый код check_hreflang.py | описание
BREAK-04 | html_head.html | BAD_CODE | en-UK вместо en-GB (страница /en/)
BREAK-16 | html_head.html | X_DEFAULT_MULTI | на /en/ два x-default с разными URL
BREAK-01 | html_head.html | NO_SELF | /en-gb/ не перечисляет себя
BREAK-17 | html_head.html | TRAILING_SLASH | /en-gb/ ссылается на /de-de без слэша
BREAK-03 | html_head.html | NOT_ABSOLUTE | /de-de/ ссылается на /ru/ относительным URL
BREAK-10 | html_head.html | CANONICAL_OTHER_LANG | canonical немецкой страницы ведёт на английскую
BREAK-02 | html_head.html | NO_RETURN | /en-gb/ ссылается на /ru/, а /ru/ на /en-gb/ - нет
BREAK-15 | html_head.html | DUP_ENTRY | /ru/ дважды ссылается на en
BREAK-05 | html_head.html | BAD_CODE | de_DE с подчёркиванием (/ru/)
BREAK-18 | html_head.html | CANONICAL_OUTSIDE | canonical страницы выбора языка ведёт вне кластера
BREAK-12 | html_head.html | LINK_OUTSIDE_HEAD | hreflang-ссылка на ru внутри <body>
BREAK-13 | html_head.html | LINK_MIXED_ATTRS | hreflang вместе с media в одном <link>
BREAK-14 | html_head.html | CONFLICT | en-GB указывает и на /en-gb/, и на /en-us/
BREAK-20 | html_head.html | X_DEFAULT_CLUSTER | x-default в кластере установки указывает на разные страницы
BREAK-06 | html_head.html | BAD_CODE | es-419 (числовой регион) вместо en-GB
BREAK-09 | html_head.html | HTTP_SCHEME | docs/en-us ссылается на en по http
BREAK-11 | html_head.html | CANONICAL_WITH_HREFLANG | rel=canonical с атрибутом hreflang
BREAK-07 | html_head.html | BAD_CODE | en-EU: EU зарезервирован, Google игнорирует
BREAK-08 | html_head.html | CASE | en-us и X-Default в нестандартном регистре
BREAK-21 | html_nomarker.html | NO_PAGE_URL | документ без метки URL и без canonical
BREAK-22 | html_nomarker.html | NO_URL_MARKER | документ без метки URL, адрес взят из canonical
BREAK-24 | http_headers.txt | NO_RETURN | en-PDF не перечисляет de-PDF, а de-PDF ссылается на en
BREAK-25 | http_headers.txt | SET_DIFFERS | набор Link у en-PDF отличается от остальных
BREAK-23 | http_headers.txt | BAD_REL | hreflang без rel="alternate" в Link у de-PDF
BREAK-26 | http_headers.txt | LINK_SYNTAX | URL без угловых скобок в Link у ru-PDF
BREAK-27 | http_headers.txt | CANONICAL_OTHER_LANG | Link canonical у ru-PDF ведёт на en-PDF
BREAK-28 | sitemap.xml | CASE | hreflang="en-gb" строчными
BREAK-29 | sitemap.xml | X_DEFAULT_MULTI | в widget/en два x-default с разными URL
BREAK-30 | sitemap.xml | NOT_ABSOLUTE | относительный href на ru в widget/en-gb
BREAK-31 | sitemap.xml | TRAILING_SLASH | widget/en-gb ссылается на de-de без слэша
BREAK-32 | sitemap.xml | HTTP_SCHEME | x-default на http в widget/de-de
BREAK-33 | sitemap.xml | NO_SELF | widget/ru не перечисляет себя
BREAK-34 | sitemap.xml | DUP_ENTRY | widget/ru дважды ссылается на en
BREAK-35 | sitemap.xml | CONFLICT | blog/en: hreflang ru ведёт на два разных URL
BREAK-36 | sitemap.xml | NO_RETURN | blog/ru не ссылается на blog/en ни как en, ни как x-default
BREAK-37 | sitemap.xml | NOT_ABSOLUTE | <loc> без схемы (//example.com/...) в catalog/en
BREAK-38 | sitemap.xml | NO_XDEFAULT | кластер catalog без x-default (INFO)
BREAK-39 | sitemap.xml | BAD_CODE | es-419, en-UK, fil, us, en_US в catalog/ru (по одной строке на код)
BREAK-40 | sitemap.xml | DUP_URL_ENTRY | второй <url> с тем же <loc> blog/hello
BREAK-41 | sitemap.xml | MULTI_HOST | в sitemap loc на двух хостах (example.com и www.example.de)
BREAK-42 | sitemap.xml | MISSING_ATTR | xhtml:link без hreflang
BREAK-43 | sitemap.xml | BAD_REL | xhtml:link rel="canonical"
BREAK-44 | sitemap.xml | MISSING_LOC | <url> без <loc>
BREAK-45 | sitemap.xml | MIXED_METHODS | страница /en/ размечена и в HTML, и в sitemap
BREAK-46 | sitemap-amp.xml | UNESCAPED_AMP | сырой & в <loc> и href
BREAK-47 | sitemap-amp.xml | XML_PARSE | файл не well-formed из-за сырого &
BREAK-48 | sitemap-zh.xml | WRONG_XHTML_NS | опечатка в пространстве имён xhtml
BREAK-49 | sitemap-nodecl.xml | NO_XHTML_NS_DECL | xhtml:link есть, xmlns:xhtml не объявлен
BREAK-50 | sitemap-decl-enc.xml | ENCODING | в декларации encoding=ISO-8859-1
BREAK-51 | sitemap-bytes.xml | ENCODING | в файле байт 0xFC (Latin-1), а не UTF-8
BREAK-52 | sitemap-malformed.xml | XML_PARSE | не закрыт <url>
BREAK-53 | sitemap-rootns.xml | ROOT_NS | неверное пространство имён корня (sitemap/0.84)
BREAK-54 | sitemap_index.xml | INDEX_LASTMOD | lastmod 01.10.2026 не W3C Datetime
BREAK-55 | sitemap_index.xml | INDEX_REF | sitemap-missing.xml нет рядом
BREAK-56 | sitemap_index.xml | INDEX_LOC | <sitemap> без <loc>
