[{"data":1,"prerenderedAt":838},["ShallowReactive",2],{"navigation_docs_ru":3,"-ru-changelog-v1-1-0":361,"-ru-changelog-v1-1-0-surround":837},[4,23,49,83,93,115,343,353],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Начало работы","i-lucide-rocket","\u002Fru\u002Fgetting-started","ru\u002F1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Введение","\u002Fru\u002Fgetting-started\u002Fintroduction","ru\u002F1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Установка","\u002Fru\u002Fgetting-started\u002Finstallation","ru\u002F1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"ranklint init","\u002Fru\u002Fgetting-started\u002Finit","ru\u002F1.getting-started\u002F3.init",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Nuxt-модуль","i-lucide-box","\u002Fru\u002Fmodule","ru\u002F2.module",[29,33,37,41,45],{"title":30,"path":31,"stem":32},"Обзор","\u002Fru\u002Fmodule\u002Foverview","ru\u002F2.module\u002F1.overview",{"title":34,"path":35,"stem":36},"Sitemap","\u002Fru\u002Fmodule\u002Fsitemap","ru\u002F2.module\u002F2.sitemap",{"title":38,"path":39,"stem":40},"Robots","\u002Fru\u002Fmodule\u002Frobots","ru\u002F2.module\u002F3.robots",{"title":42,"path":43,"stem":44},"Композаблы","\u002Fru\u002Fmodule\u002Fcomposables","ru\u002F2.module\u002F4.composables",{"title":46,"path":47,"stem":48},"DevTools","\u002Fru\u002Fmodule\u002Fdevtools","ru\u002F2.module\u002F5.devtools",{"title":50,"icon":51,"path":52,"stem":53,"children":54,"page":22},"CLI","i-lucide-terminal","\u002Fru\u002Fcli","ru\u002F3.cli",[55,59,63,67,71,75,79],{"title":56,"path":57,"stem":58},"ranklint audit","\u002Fru\u002Fcli\u002Faudit","ru\u002F3.cli\u002F1.audit",{"title":60,"path":61,"stem":62},"Diff и CI","\u002Fru\u002Fcli\u002Fdiff-and-ci","ru\u002F3.cli\u002F2.diff-and-ci",{"title":64,"path":65,"stem":66},"Мониторинг прода","\u002Fru\u002Fcli\u002Fmonitor","ru\u002F3.cli\u002F3.monitor",{"title":68,"path":69,"stem":70},"Lighthouse","\u002Fru\u002Fcli\u002Flighthouse","ru\u002F3.cli\u002F4.lighthouse",{"title":72,"path":73,"stem":74},"Зоны (multi-app домены)","\u002Fru\u002Fcli\u002Fzones","ru\u002F3.cli\u002F5.zones",{"title":76,"path":77,"stem":78},"Остальные команды","\u002Fru\u002Fcli\u002Fother-commands","ru\u002F3.cli\u002F6.other-commands",{"title":80,"path":81,"stem":82},"Watch mode","\u002Fru\u002Fcli\u002Fwatch","ru\u002F3.cli\u002F7.watch",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":22},"Конфигурация","i-lucide-settings-2","\u002Fru\u002Fconfig","ru\u002F4.config",[89],{"title":90,"path":91,"stem":92},"Справочник","\u002Fru\u002Fconfig\u002Freference","ru\u002F4.config\u002F1.reference",{"title":94,"icon":95,"path":96,"stem":97,"children":98,"page":22},"Продвинутое","i-lucide-wrench","\u002Fru\u002Fadvanced","ru\u002F5.advanced",[99,103,107,111],{"title":100,"path":101,"stem":102},"Кастомные правила и пресеты","\u002Fru\u002Fadvanced\u002Fcustom-rules","ru\u002F5.advanced\u002F1.custom-rules",{"title":104,"path":105,"stem":106},"Умные эвристики","\u002Fru\u002Fadvanced\u002Fheuristics","ru\u002F5.advanced\u002F2.heuristics",{"title":108,"path":109,"stem":110},"Env-переменные","\u002Fru\u002Fadvanced\u002Fenv","ru\u002F5.advanced\u002F3.env",{"title":112,"path":113,"stem":114},"Нюансы и ограничения","\u002Fru\u002Fadvanced\u002Fnuances","ru\u002F5.advanced\u002F4.nuances",{"title":116,"icon":117,"path":118,"stem":119,"children":120},"Правила","i-lucide-list-checks","\u002Fru\u002Frules","ru\u002F6.rules\u002Findex",[121,123,148,173,190,207,228,257,306,330],{"title":122,"path":118,"stem":119},"Все правила",{"title":124,"path":125,"stem":126,"children":127,"page":22},"Headings","\u002Fru\u002Frules\u002Fheadings","ru\u002F6.rules\u002Fheadings",[128,132,136,140,144],{"title":129,"path":130,"stem":131},"headings:h1-length","\u002Fru\u002Frules\u002Fheadings\u002Fheadings-h1-length","ru\u002F6.rules\u002Fheadings\u002Fheadings-h1-length",{"title":133,"path":134,"stem":135},"headings:hierarchy","\u002Fru\u002Frules\u002Fheadings\u002Fheadings-hierarchy","ru\u002F6.rules\u002Fheadings\u002Fheadings-hierarchy",{"title":137,"path":138,"stem":139},"headings:no-empty","\u002Fru\u002Frules\u002Fheadings\u002Fheadings-no-empty","ru\u002F6.rules\u002Fheadings\u002Fheadings-no-empty",{"title":141,"path":142,"stem":143},"headings:single-h1","\u002Fru\u002Frules\u002Fheadings\u002Fheadings-single-h1","ru\u002F6.rules\u002Fheadings\u002Fheadings-single-h1",{"title":145,"path":146,"stem":147},"headings:unique-h1","\u002Fru\u002Frules\u002Fheadings\u002Fheadings-unique-h1","ru\u002F6.rules\u002Fheadings\u002Fheadings-unique-h1",{"title":149,"path":150,"stem":151,"children":152,"page":22},"Http","\u002Fru\u002Frules\u002Fhttp","ru\u002F6.rules\u002Fhttp",[153,157,161,165,169],{"title":154,"path":155,"stem":156},"http:no-mixed-content","\u002Fru\u002Frules\u002Fhttp\u002Fhttp-no-mixed-content","ru\u002F6.rules\u002Fhttp\u002Fhttp-no-mixed-content",{"title":158,"path":159,"stem":160},"http:no-soft-404","\u002Fru\u002Frules\u002Fhttp\u002Fhttp-no-soft-404","ru\u002F6.rules\u002Fhttp\u002Fhttp-no-soft-404",{"title":162,"path":163,"stem":164},"http:ttfb-budget","\u002Fru\u002Frules\u002Fhttp\u002Fhttp-ttfb-budget","ru\u002F6.rules\u002Fhttp\u002Fhttp-ttfb-budget",{"title":166,"path":167,"stem":168},"http:x-robots-consistent","\u002Fru\u002Frules\u002Fhttp\u002Fhttp-x-robots-consistent","ru\u002F6.rules\u002Fhttp\u002Fhttp-x-robots-consistent",{"title":170,"path":171,"stem":172},"mobile:viewport","\u002Fru\u002Frules\u002Fhttp\u002Fmobile-viewport","ru\u002F6.rules\u002Fhttp\u002Fmobile-viewport",{"title":174,"path":175,"stem":176,"children":177,"page":22},"I18n","\u002Fru\u002Frules\u002Fi18n","ru\u002F6.rules\u002Fi18n",[178,182,186],{"title":179,"path":180,"stem":181},"hreflang:symmetric","\u002Fru\u002Frules\u002Fi18n\u002Fhreflang-symmetric","ru\u002F6.rules\u002Fi18n\u002Fhreflang-symmetric",{"title":183,"path":184,"stem":185},"hreflang:valid-targets","\u002Fru\u002Frules\u002Fi18n\u002Fhreflang-valid-targets","ru\u002F6.rules\u002Fi18n\u002Fhreflang-valid-targets",{"title":187,"path":188,"stem":189},"i18n:no-locale-leak","\u002Fru\u002Frules\u002Fi18n\u002Fi18n-no-locale-leak","ru\u002F6.rules\u002Fi18n\u002Fi18n-no-locale-leak",{"title":191,"path":192,"stem":193,"children":194,"page":22},"Images","\u002Fru\u002Frules\u002Fimages","ru\u002F6.rules\u002Fimages",[195,199,203],{"title":196,"path":197,"stem":198},"images:alt-required","\u002Fru\u002Frules\u002Fimages\u002Fimages-alt-required","ru\u002F6.rules\u002Fimages\u002Fimages-alt-required",{"title":200,"path":201,"stem":202},"images:dimensions-required","\u002Fru\u002Frules\u002Fimages\u002Fimages-dimensions-required","ru\u002F6.rules\u002Fimages\u002Fimages-dimensions-required",{"title":204,"path":205,"stem":206},"images:no-lazy-above-fold","\u002Fru\u002Frules\u002Fimages\u002Fimages-no-lazy-above-fold","ru\u002F6.rules\u002Fimages\u002Fimages-no-lazy-above-fold",{"title":208,"path":209,"stem":210,"children":211,"page":22},"Indexability","\u002Fru\u002Frules\u002Findexability","ru\u002F6.rules\u002Findexability",[212,218,224],{"title":213,"path":214,"stem":215,"children":216},"indexability:ssr-content","\u002Fru\u002Frules\u002Findexability\u002Findexability-ssr-content","ru\u002F6.rules\u002Findexability\u002Findexability-ssr-content",[217],{"title":213,"path":214,"stem":215},{"title":219,"path":220,"stem":221,"children":222},"sitemap:no-noindex","\u002Fru\u002Frules\u002Findexability\u002Fsitemap-no-noindex","ru\u002F6.rules\u002Findexability\u002Fsitemap-no-noindex",[223],{"title":219,"path":220,"stem":221},{"title":225,"path":226,"stem":227},"sitemap:reachable","\u002Fru\u002Frules\u002Findexability\u002Fsitemap-reachable","ru\u002F6.rules\u002Findexability\u002Fsitemap-reachable",{"title":229,"path":230,"stem":231,"children":232,"page":22},"Links","\u002Fru\u002Frules\u002Flinks","ru\u002F6.rules\u002Flinks",[233,237,241,245,249,253],{"title":234,"path":235,"stem":236},"links:no-broken","\u002Fru\u002Frules\u002Flinks\u002Flinks-no-broken","ru\u002F6.rules\u002Flinks\u002Flinks-no-broken",{"title":238,"path":239,"stem":240},"links:no-orphans","\u002Fru\u002Frules\u002Flinks\u002Flinks-no-orphans","ru\u002F6.rules\u002Flinks\u002Flinks-no-orphans",{"title":242,"path":243,"stem":244},"links:no-redirect-chain","\u002Fru\u002Frules\u002Flinks\u002Flinks-no-redirect-chain","ru\u002F6.rules\u002Flinks\u002Flinks-no-redirect-chain",{"title":246,"path":247,"stem":248},"links:no-utm-internal","\u002Fru\u002Frules\u002Flinks\u002Flinks-no-utm-internal","ru\u002F6.rules\u002Flinks\u002Flinks-no-utm-internal",{"title":250,"path":251,"stem":252},"links:permanent-redirects","\u002Fru\u002Frules\u002Flinks\u002Flinks-permanent-redirects","ru\u002F6.rules\u002Flinks\u002Flinks-permanent-redirects",{"title":254,"path":255,"stem":256},"links:trailing-slash-consistent","\u002Fru\u002Frules\u002Flinks\u002Flinks-trailing-slash-consistent","ru\u002F6.rules\u002Flinks\u002Flinks-trailing-slash-consistent",{"title":258,"path":259,"stem":260,"children":261,"page":22},"Meta","\u002Fru\u002Frules\u002Fmeta","ru\u002F6.rules\u002Fmeta",[262,266,270,274,278,282,286,290,294,298,302],{"title":263,"path":264,"stem":265},"canonical:no-chain","\u002Fru\u002Frules\u002Fmeta\u002Fcanonical-no-chain","ru\u002F6.rules\u002Fmeta\u002Fcanonical-no-chain",{"title":267,"path":268,"stem":269},"canonical:required","\u002Fru\u002Frules\u002Fmeta\u002Fcanonical-required","ru\u002F6.rules\u002Fmeta\u002Fcanonical-required",{"title":271,"path":272,"stem":273},"canonical:valid","\u002Fru\u002Frules\u002Fmeta\u002Fcanonical-valid","ru\u002F6.rules\u002Fmeta\u002Fcanonical-valid",{"title":275,"path":276,"stem":277},"meta:description-length","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-description-length","ru\u002F6.rules\u002Fmeta\u002Fmeta-description-length",{"title":279,"path":280,"stem":281},"meta:description-required","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-description-required","ru\u002F6.rules\u002Fmeta\u002Fmeta-description-required",{"title":283,"path":284,"stem":285},"meta:no-duplicate-description","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-no-duplicate-description","ru\u002F6.rules\u002Fmeta\u002Fmeta-no-duplicate-description",{"title":287,"path":288,"stem":289},"meta:no-duplicate-title","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-no-duplicate-title","ru\u002F6.rules\u002Fmeta\u002Fmeta-no-duplicate-title",{"title":291,"path":292,"stem":293},"meta:og-required","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-og-required","ru\u002F6.rules\u002Fmeta\u002Fmeta-og-required",{"title":295,"path":296,"stem":297},"meta:title-length","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-title-length","ru\u002F6.rules\u002Fmeta\u002Fmeta-title-length",{"title":299,"path":300,"stem":301},"meta:title-required","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-title-required","ru\u002F6.rules\u002Fmeta\u002Fmeta-title-required",{"title":303,"path":304,"stem":305},"meta:twitter-card","\u002Fru\u002Frules\u002Fmeta\u002Fmeta-twitter-card","ru\u002F6.rules\u002Fmeta\u002Fmeta-twitter-card",{"title":38,"path":307,"stem":308,"children":309,"page":22},"\u002Fru\u002Frules\u002Frobots","ru\u002F6.rules\u002Frobots",[310,314,318,322,326],{"title":311,"path":312,"stem":313},"robots:env-policy","\u002Fru\u002Frules\u002Frobots\u002Frobots-env-policy","ru\u002F6.rules\u002Frobots\u002Frobots-env-policy",{"title":315,"path":316,"stem":317},"robots:expected-disallow","\u002Fru\u002Frules\u002Frobots\u002Frobots-expected-disallow","ru\u002F6.rules\u002Frobots\u002Frobots-expected-disallow",{"title":319,"path":320,"stem":321},"robots:reachable","\u002Fru\u002Frules\u002Frobots\u002Frobots-reachable","ru\u002F6.rules\u002Frobots\u002Frobots-reachable",{"title":323,"path":324,"stem":325},"robots:sitemap-declared","\u002Fru\u002Frules\u002Frobots\u002Frobots-sitemap-declared","ru\u002F6.rules\u002Frobots\u002Frobots-sitemap-declared",{"title":327,"path":328,"stem":329},"robots:zone-not-blocked","\u002Fru\u002Frules\u002Frobots\u002Frobots-zone-not-blocked","ru\u002F6.rules\u002Frobots\u002Frobots-zone-not-blocked",{"title":331,"path":332,"stem":333,"children":334,"page":22},"Structured Data","\u002Fru\u002Frules\u002Fstructured-data","ru\u002F6.rules\u002Fstructured-data",[335,339],{"title":336,"path":337,"stem":338},"jsonld:parseable","\u002Fru\u002Frules\u002Fstructured-data\u002Fjsonld-parseable","ru\u002F6.rules\u002Fstructured-data\u002Fjsonld-parseable",{"title":340,"path":341,"stem":342},"jsonld:valid-schema","\u002Fru\u002Frules\u002Fstructured-data\u002Fjsonld-valid-schema","ru\u002F6.rules\u002Fstructured-data\u002Fjsonld-valid-schema",{"title":344,"icon":345,"path":346,"stem":347,"children":348,"page":22},"Гайды","i-lucide-book-open","\u002Fru\u002Fguides","ru\u002F7.guides",[349],{"title":350,"path":351,"stem":352},"SEO-чеклист для Nuxt-проекта","\u002Fru\u002Fguides\u002Fseo-checklist-nuxt","ru\u002F7.guides\u002F1.seo-checklist-nuxt",{"title":354,"path":355,"stem":356,"children":357,"icon":360},"Изменения","\u002Fru\u002Fchangelog","ru\u002F8.changelog\u002Findex",[358],{"title":359,"path":355,"stem":356},"Изменения и релизы ranklint","i-lucide-history",{"id":362,"title":363,"body":364,"description":828,"extension":829,"links":830,"meta":831,"navigation":22,"path":833,"seo":834,"stem":835,"__hash__":836},"docs_ru\u002Fru\u002F8.changelog\u002Fv1.1.0.md","ranklint 1.1.0: что изменилось",{"type":365,"value":366,"toc":821},"minimark",[367,371,376,501,505,797,801],[368,369,370],"p",{},"Дата: 2026-10-11",[372,373,375],"h2",{"id":374},"новое","Новое",[377,378,380],"div",{"lang":379},"en",[381,382,383,399,446],"ul",{},[384,385,386,390,391,398],"li",{},[387,388,389],"strong",{},"@ranklint\u002Fchecks, @ranklint\u002Fpreset-default",": New rule links:no-utm-internal (warn) flags internal links that carry UTM or click-id parameters (utm_*, gclid, gbraid, wbraid, fbclid, yclid, msclkid, _gl, mc_cid, mc_eid) (",[392,393,397],"a",{"href":394,"rel":395},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F9172e75",[396],"nofollow","9172e75",")",[384,400,401,404,405,409,410,413,414,417,418,421,422,425,426,429,430,433,434,421,437,440,441,398],{},[387,402,403],{},"@ranklint\u002Fcli, @ranklint\u002Freporters",": New ",[406,407,408],"code",{},"ranklint dashboard"," command and ",[406,411,412],{},"dashboard()"," reporter: a single-file HTML monitoring dashboard for GitLab or GitHub Pages built from the stored monitor reports. It shows the latest run with deltas against the previous one, new and fixed issues by rule with errors first, trends for errors, warnings, Lighthouse scores and CrUX field data, Lighthouse by page and the history of every run with a per-run report in ",[406,415,416],{},"runs\u002F\u003Cdate>.html",". An issue explorer groups problems by rule or by page: every page gets a checklist of what to fix with the suggestion and docs link for each rule, the affected elements and a NEW mark, and a \"Fix once\" block lists issues repeated across a section or the whole site that are fixed in one template. Optional branding with ",[406,419,420],{},"--logo",", ",[406,423,424],{},"--brand-name"," and ",[406,427,428],{},"--accent",": your logo top left, one accent color for the whole page and a \"powered by ranklint\" line in the side panel. A ",[406,431,432],{},"--run-url"," button opens the CI pipeline form. The html reporter (",[406,435,436],{},"--reporter html",[406,438,439],{},"--html-output",") gets the same design: issues grouped by page by default, the explorer with filters and a Web Vitals section with CrUX ratings and a Lighthouse table. Pages embed their data and script and load the brand fonts from Google Fonts, falling back to system fonts offline. (",[392,442,445],{"href":443,"rel":444},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002Fe35b41d",[396],"e35b41d",[384,447,448,451,452,455,456,458,459,425,462,421,465,421,468,421,471,421,474,421,477,421,480,421,483,421,486,489,490,425,493,495,496,398],{},[387,449,450],{},"@ranklint\u002Fcore",": Export ",[406,453,454],{},"isTrackingParam(name)"," from ",[406,457,450],{},": true for ",[406,460,461],{},"utm_*",[406,463,464],{},"gclid",[406,466,467],{},"gbraid",[406,469,470],{},"wbraid",[406,472,473],{},"fbclid",[406,475,476],{},"yclid",[406,478,479],{},"msclkid",[406,481,482],{},"_gl",[406,484,485],{},"mc_cid",[406,487,488],{},"mc_eid",". ",[406,491,492],{},"normalizeUrl",[406,494,246],{}," share this list. (",[392,497,500],{"href":498,"rel":499},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F1f669ea",[396],"1f669ea",[372,502,504],{"id":503},"исправления","Исправления",[377,506,507],{"lang":379},[381,508,509,572,601,611,637,728,773],{},[384,510,511,514,515,518,519,522,523,421,526,522,529,532,533,536,537,540,541,544,545,425,548,489,551,421,553,421,555,421,557,421,559,425,561,563,564,566,567,398],{},[387,512,513],{},"@ranklint\u002Fchecks, @ranklint\u002Fcli, @ranklint\u002Fcore",": The crawler no longer treats a page that redirects to another origin as a page of the site: it is counted in ",[406,516,517],{},"crawlStats.external",", its links are not crawled and page checks don't run on its HTML. Links of a page redirected inside the site resolve against the final URL, and several URLs redirecting to one final URL give a single snapshot, reported under the final URL. An entry URL redirecting to another origin (",[406,520,521],{},"example.com"," → ",[406,524,525],{},"www.example.com",[406,527,528],{},"http",[406,530,531],{},"https",") is reported as a ",[406,534,535],{},"crawl:entry-redirect"," error instead of an empty audit. ",[406,538,539],{},"PageSnapshot"," gets an optional ",[406,542,543],{},"finalUrl",", filled by ",[406,546,547],{},"HttpFetcher",[406,549,550],{},"PlaywrightFetcher",[406,552,234],{},[406,554,242],{},[406,556,250],{},[406,558,246],{},[406,560,238],{},[406,562,263],{}," resolve relative URLs against ",[406,565,543],{}," when it is set. (",[392,568,571],{"href":569,"rel":570},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F41da7b8",[396],"41da7b8",[384,573,574,577,578,580,581,425,583,585,586,421,588,425,590,592,593,595,596,398],{},[387,575,576],{},"@ranklint\u002Fchecks",": Collapse line breaks and repeated spaces in H1 and title text: ",[406,579,213],{}," no longer reports multi-line headings as client-side only, ",[406,582,129],{},[406,584,295],{}," measure the normalized text, and ",[406,587,145],{},[406,589,287],{},[406,591,283],{}," group duplicates that differ only in whitespace. ",[406,594,158],{}," matches not-found titles split across lines and shows the normalized title in the message. (",[392,597,600],{"href":598,"rel":599},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F98e44d7",[396],"98e44d7",[384,602,603,605,606,398],{},[387,604,576],{},": i18n:no-locale-leak ignores subtrees whose lang attribute differs from the page language (",[392,607,610],{"href":608,"rel":609},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F660be37",[396],"660be37",[384,612,613,616,617,425,619,622,623,425,626,629,630,633,634,398],{},[387,614,615],{},"@ranklint\u002Fchecks, @ranklint\u002Freporters",": ",[406,618,246],{},[406,620,621],{},"images:*"," escape ",[406,624,625],{},"\"",[406,627,628],{},"\\"," in the attribute value of the issue selector. ",[406,631,632],{},"markdownDiff",", the monitor dashboard and Slack\u002FTelegram notifications list new and fixed issues by severity (error, warn, info), so errors are not cut off by the item limit. (",[392,635,500],{"href":498,"rel":636},[396],[384,638,639,641,642,644,645,648,649,652,653,656,657,660,661,664,665,668,669,671,672,421,675,678,679,681,682,425,684,687,688,691,692,695,696,699,700,703,704,707,708,711,712,714,715,718,719,722,723,398],{},[387,640,513],{},": Page checks skip 4xx\u002F5xx snapshots, so an HTML 404 behind a broken link no longer raises canonical or duplicate title issues; the broken link itself is still reported by ",[406,643,234],{},". New ",[406,646,647],{},"crawl.respectRobots"," option (default ",[406,650,651],{},"true","): the crawler loads ",[406,654,655],{},"\u003Corigin>\u002Frobots.txt"," once and does not crawl links disallowed for ",[406,658,659],{},"*"," or for the group matching ",[406,662,663],{},"crawl.userAgent","; entry URLs are always crawled and the count is reported as ",[406,666,667],{},"crawlStats.disallowed"," and in the crawl log. The robots.txt parser moved to ",[406,670,450],{}," (",[406,673,674],{},"parseRobotsTxt",[406,676,677],{},"isPathDisallowed",", still re-exported by ",[406,680,576],{},") and now supports Google ",[406,683,659],{},[406,685,686],{},"$"," patterns, percent-encoded and non-ASCII paths and most specific user agent group selection. robots.txt is read from the raw response (",[406,689,690],{},"ssrHtml",") so browser-rendered fetchers no longer hide its rules from the crawler and ",[406,693,694],{},"robots:*"," checks. Entry URLs are exempt from robots.txt, ",[406,697,698],{},"sitemap+sample"," samples are not. New ",[406,701,702],{},"lighthouse.urls"," option pins the exact list of paths or URLs measured by Lighthouse in ",[406,705,706],{},"audit"," and the ",[406,709,710],{},"lighthouse"," command; an empty list counts as not set. ",[406,713,621],{}," issues for ",[406,716,717],{},"data:"," images use a structural ",[406,720,721],{},"nth-of-type"," selector instead of embedding the data URI. (",[392,724,727],{"href":725,"rel":726},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F4cab41d",[396],"4cab41d",[384,729,730,616,733,735,736,421,738,421,740,421,742,421,744,421,746,421,748,421,750,421,752,421,754,756,757,760,761,421,763,425,765,767,768,398],{},[387,731,732],{},"@ranklint\u002Fchecks, @ranklint\u002Fcore",[406,734,492],{}," strips tracking params (",[406,737,461],{},[406,739,464],{},[406,741,467],{},[406,743,470],{},[406,745,473],{},[406,747,476],{},[406,749,479],{},[406,751,482],{},[406,753,485],{},[406,755,488],{},"), so the crawler no longer visits ",[406,758,759],{},"\u002Fa?utm_source=x"," as a separate page. ",[406,762,234],{},[406,764,242],{},[406,766,250],{}," check such links once and still report the original href. (",[392,769,772],{"href":770,"rel":771},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002Fd1c054c",[396],"d1c054c",[384,774,775,777,778,781,782,785,786,425,789,671,792,398],{},[387,776,450],{},": Route patterns ending with ",[406,779,780],{},"\u002F**"," match their prefix as a glob, so ",[406,783,784],{},"\u002F*\u002Fmarket\u002F**"," covers ",[406,787,788],{},"\u002Fen\u002Fmarket",[406,790,791],{},"\u002Fen\u002Fmarket\u002Fcars",[392,793,796],{"href":794,"rel":795},"https:\u002F\u002Fgithub.com\u002Faakazancev\u002Franklint\u002Fcommit\u002F81088bc",[396],"81088bc",[372,798,800],{"id":799},"главное","Главное",[368,802,803,804,806,807,421,809,811,812,814,815,817,818,820],{},"В ranklint 1.1.0 у режима мониторинга появилось место, где удобно смотреть результаты. ",[406,805,408],{}," собирает из сохранённых отчётов один HTML-файл для GitLab или GitHub Pages: последний прогон с дельтами, новые и исправленные проблемы с ошибками сверху, тренды ошибок, баллов Lighthouse и полевых данных CrUX, отчёт за каждую дату и обозреватель проблем, где у каждой страницы свой список того, что исправить. Блок «Fix once» собирает проблемы, которые повторяются на разделе или по всему сайту, а ",[406,808,420],{},[406,810,424],{}," и ",[406,813,428],{}," добавляют ваш бренд. Краулер теперь учитывает robots.txt, идёт до финального URL после редиректов, пропускает страницы, которые уводят с сайта, и не плодит дубли из-за трекинг-параметров; ",[406,816,702],{}," закрепляет Lighthouse за ключевыми страницами, а новое правило ",[406,819,246],{}," находит внутренние ссылки с UTM-метками.",{"title":822,"searchDepth":823,"depth":823,"links":824},"",2,[825,826,827],{"id":374,"depth":823,"text":375},{"id":503,"depth":823,"text":504},{"id":799,"depth":823,"text":800},"Что изменилось в ranklint 1.1.0: ломающие изменения, новое и исправления релиза со ссылками на коммиты.","md",null,{"date":832},"2026-10-11","\u002Fru\u002Fchangelog\u002Fv1.1.0",{"title":363,"description":828},"ru\u002F8.changelog\u002Fv1.1.0","A6_31ay1C2SEmBjVikIsTdY_h4gFiGrfqWCZjkjqxPo",[830,830],1791750382097]