[{"data":1,"prerenderedAt":1056},["ShallowReactive",2],{"navigation_docs_ru":3,"-ru-getting-started-installation":361,"-ru-getting-started-installation-surround":1051},[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":15,"body":363,"description":1045,"extension":1046,"links":1047,"meta":1048,"navigation":882,"path":16,"seo":1049,"stem":17,"__hash__":1050},"docs_ru\u002Fru\u002F1.getting-started\u002F2.installation.md",{"type":364,"value":365,"toc":1041},"minimark",[366,371,403,428,749,756,770,785,910,913,916,994,1015,1028,1037],[367,368,370],"h2",{"id":369},"модуль","Модуль",[372,373,378],"pre",{"className":374,"code":375,"language":376,"meta":377,"style":377},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx nuxi module add @ranklint\u002Fnuxt\n","bash","",[379,380,381],"code",{"__ignoreMap":377},[382,383,386,390,394,397,400],"span",{"class":384,"line":385},"line",1,[382,387,389],{"class":388},"sBMFI","npx",[382,391,393],{"class":392},"sfazB"," nuxi",[382,395,396],{"class":392}," module",[382,398,399],{"class":392}," add",[382,401,402],{"class":392}," @ranklint\u002Fnuxt\n",[404,405,406,407,411,412,415,416,419,420,423,424,427],"p",{},"Работает ",[408,409,410],"strong",{},"без конфигурации",": ",[379,413,414],{},"\u002Fsitemap.xml"," (статические роуты из ",[379,417,418],{},"app\u002Fpages\u002F",") и ",[379,421,422],{},"\u002Frobots.txt"," (не-prod окружения закрыты от индексации) доступны сразу. Требует Nuxt 4 — при ",[379,425,426],{},"compatibilityVersion \u003C 4"," бросает понятную ошибку.",[372,429,433],{"className":430,"code":431,"language":432,"meta":377,"style":377},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['@ranklint\u002Fnuxt'],\n  ranklint: {\n    site: { url: 'https:\u002F\u002Fexample.com', name: 'Example' },\n    sitemap: {\n      sources: [\n        '\u002Fapi\u002Fseo\u002Furls',\n        async () => (await $fetch\u003Cstring[]>('\u002Fapi\u002Fproducts')).map(slug => ({ loc: `\u002Fp\u002F${slug}` })),\n      ],\n      cacheTtl: 3600,\n    },\n    robots: { mode: 'owner' },\n    jsonLd: true,\n  },\n})\n","ts",[379,434,435,441,463,490,501,543,553,564,577,668,676,690,696,720,734,740],{"__ignoreMap":377},[382,436,437],{"class":384,"line":385},[382,438,440],{"class":439},"sHwdD","\u002F\u002F nuxt.config.ts\n",[382,442,444,448,451,455,459],{"class":384,"line":443},2,[382,445,447],{"class":446},"s7zQu","export",[382,449,450],{"class":446}," default",[382,452,454],{"class":453},"s2Zo4"," defineNuxtConfig",[382,456,458],{"class":457},"sTEyZ","(",[382,460,462],{"class":461},"sMK4o","{\n",[382,464,466,470,473,476,479,482,484,487],{"class":384,"line":465},3,[382,467,469],{"class":468},"swJcz","  modules",[382,471,472],{"class":461},":",[382,474,475],{"class":457}," [",[382,477,478],{"class":461},"'",[382,480,481],{"class":392},"@ranklint\u002Fnuxt",[382,483,478],{"class":461},[382,485,486],{"class":457},"]",[382,488,489],{"class":461},",\n",[382,491,493,496,498],{"class":384,"line":492},4,[382,494,495],{"class":468},"  ranklint",[382,497,472],{"class":461},[382,499,500],{"class":461}," {\n",[382,502,504,507,509,512,515,517,520,523,525,528,531,533,535,538,540],{"class":384,"line":503},5,[382,505,506],{"class":468},"    site",[382,508,472],{"class":461},[382,510,511],{"class":461}," {",[382,513,514],{"class":468}," url",[382,516,472],{"class":461},[382,518,519],{"class":461}," '",[382,521,522],{"class":392},"https:\u002F\u002Fexample.com",[382,524,478],{"class":461},[382,526,527],{"class":461},",",[382,529,530],{"class":468}," name",[382,532,472],{"class":461},[382,534,519],{"class":461},[382,536,537],{"class":392},"Example",[382,539,478],{"class":461},[382,541,542],{"class":461}," },\n",[382,544,546,549,551],{"class":384,"line":545},6,[382,547,548],{"class":468},"    sitemap",[382,550,472],{"class":461},[382,552,500],{"class":461},[382,554,556,559,561],{"class":384,"line":555},7,[382,557,558],{"class":468},"      sources",[382,560,472],{"class":461},[382,562,563],{"class":457}," [\n",[382,565,567,570,573,575],{"class":384,"line":566},8,[382,568,569],{"class":461},"        '",[382,571,572],{"class":392},"\u002Fapi\u002Fseo\u002Furls",[382,574,478],{"class":461},[382,576,489],{"class":461},[382,578,580,584,587,590,593,596,599,602,605,608,611,613,615,618,620,623,626,629,631,635,637,639,642,645,647,650,653,656,658,661,664,666],{"class":384,"line":579},9,[382,581,583],{"class":582},"spNyl","        async",[382,585,586],{"class":461}," ()",[382,588,589],{"class":582}," =>",[382,591,592],{"class":457}," (",[382,594,595],{"class":446},"await",[382,597,598],{"class":453}," $fetch",[382,600,601],{"class":461},"\u003C",[382,603,604],{"class":388},"string",[382,606,607],{"class":457},"[]",[382,609,610],{"class":461},">",[382,612,458],{"class":457},[382,614,478],{"class":461},[382,616,617],{"class":392},"\u002Fapi\u002Fproducts",[382,619,478],{"class":461},[382,621,622],{"class":457},"))",[382,624,625],{"class":461},".",[382,627,628],{"class":453},"map",[382,630,458],{"class":457},[382,632,634],{"class":633},"sHdIc","slug",[382,636,589],{"class":582},[382,638,592],{"class":457},[382,640,641],{"class":461},"{",[382,643,644],{"class":468}," loc",[382,646,472],{"class":461},[382,648,649],{"class":461}," `",[382,651,652],{"class":392},"\u002Fp\u002F",[382,654,655],{"class":461},"${",[382,657,634],{"class":457},[382,659,660],{"class":461},"}`",[382,662,663],{"class":461}," }",[382,665,622],{"class":457},[382,667,489],{"class":461},[382,669,671,674],{"class":384,"line":670},10,[382,672,673],{"class":457},"      ]",[382,675,489],{"class":461},[382,677,679,682,684,688],{"class":384,"line":678},11,[382,680,681],{"class":468},"      cacheTtl",[382,683,472],{"class":461},[382,685,687],{"class":686},"sbssI"," 3600",[382,689,489],{"class":461},[382,691,693],{"class":384,"line":692},12,[382,694,695],{"class":461},"    },\n",[382,697,699,702,704,706,709,711,713,716,718],{"class":384,"line":698},13,[382,700,701],{"class":468},"    robots",[382,703,472],{"class":461},[382,705,511],{"class":461},[382,707,708],{"class":468}," mode",[382,710,472],{"class":461},[382,712,519],{"class":461},[382,714,715],{"class":392},"owner",[382,717,478],{"class":461},[382,719,542],{"class":461},[382,721,723,726,728,732],{"class":384,"line":722},14,[382,724,725],{"class":468},"    jsonLd",[382,727,472],{"class":461},[382,729,731],{"class":730},"sfNiH"," true",[382,733,489],{"class":461},[382,735,737],{"class":384,"line":736},15,[382,738,739],{"class":461},"  },\n",[382,741,743,746],{"class":384,"line":742},16,[382,744,745],{"class":461},"}",[382,747,748],{"class":457},")\n",[404,750,751,752,755],{},"Каждый блок отключается через ",[379,753,754],{},"false"," — выключенный код вообще не регистрируется.",[404,757,758,761,762,765,766,769],{},[379,759,760],{},"sitemap: { autoRoutes: false }"," убирает автоматические роуты, собранные из ",[379,763,764],{},"app\u002Fpages"," — используйте его вместе с явными ",[379,767,768],{},"sources",", когда роутам нужны локальные префиксы или ручная курация (i18n \u002F multi-app).",[404,771,772,773,776,777,780,781,784],{},"Функция-источник сериализуется в серверный бандл через ",[379,774,775],{},"toString()",", поэтому обязана быть самодостаточной: Nitro-глобалы (",[379,778,779],{},"$fetch",") доступны, а замыкания на переменные и импорты из ",[379,782,783],{},"nuxt.config"," — нет.",[372,786,790],{"className":787,"code":788,"language":789,"meta":377,"style":377},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nuseJsonLd('Product', {\n  name: 'Widget',\n  offers: { price: 9.99, priceCurrency: 'USD' },\n})\n\nuseRanklintIgnore(['headings:single-h1'])\n\u003C\u002Fscript>\n","vue",[379,791,792,805,823,839,872,878,884,901],{"__ignoreMap":377},[382,793,794,796,799,802],{"class":384,"line":385},[382,795,601],{"class":461},[382,797,798],{"class":468},"script",[382,800,801],{"class":582}," setup",[382,803,804],{"class":461},">\n",[382,806,807,810,812,814,817,819,821],{"class":384,"line":443},[382,808,809],{"class":453},"useJsonLd",[382,811,458],{"class":457},[382,813,478],{"class":461},[382,815,816],{"class":392},"Product",[382,818,478],{"class":461},[382,820,527],{"class":461},[382,822,500],{"class":461},[382,824,825,828,830,832,835,837],{"class":384,"line":465},[382,826,827],{"class":468},"  name",[382,829,472],{"class":461},[382,831,519],{"class":461},[382,833,834],{"class":392},"Widget",[382,836,478],{"class":461},[382,838,489],{"class":461},[382,840,841,844,846,848,851,853,856,858,861,863,865,868,870],{"class":384,"line":492},[382,842,843],{"class":468},"  offers",[382,845,472],{"class":461},[382,847,511],{"class":461},[382,849,850],{"class":468}," price",[382,852,472],{"class":461},[382,854,855],{"class":686}," 9.99",[382,857,527],{"class":461},[382,859,860],{"class":468}," priceCurrency",[382,862,472],{"class":461},[382,864,519],{"class":461},[382,866,867],{"class":392},"USD",[382,869,478],{"class":461},[382,871,542],{"class":461},[382,873,874,876],{"class":384,"line":503},[382,875,745],{"class":461},[382,877,748],{"class":457},[382,879,880],{"class":384,"line":545},[382,881,883],{"emptyLinePlaceholder":882},true,"\n",[382,885,886,889,892,894,896,898],{"class":384,"line":555},[382,887,888],{"class":453},"useRanklintIgnore",[382,890,891],{"class":457},"([",[382,893,478],{"class":461},[382,895,141],{"class":392},[382,897,478],{"class":461},[382,899,900],{"class":457},"])\n",[382,902,903,906,908],{"class":384,"line":566},[382,904,905],{"class":461},"\u003C\u002F",[382,907,798],{"class":468},[382,909,804],{"class":461},[404,911,912],{},"В dev JSON-LD валидируется по схемам Schema.org (Product, Article, BreadcrumbList, Organization, WebSite) с warn'ами в консоль; в prod валидатор полностью вытряхивается из бандла тришейкингом. Клиентский рантайм модуля — меньше 1 KB gzip.",[367,914,50],{"id":915},"cli",[372,917,919],{"className":374,"code":918,"language":376,"meta":377,"style":377},"npm i -D @ranklint\u002Fcli\nnpx playwright install chromium\n\nranklint init                                          # сгенерировать ranklint.config.ts\nranklint audit --url https:\u002F\u002Fuat.example.com          # аудит живого сайта\nranklint audit --start .output\u002Fserver\u002Findex.mjs        # или self-contained из сборки\n",[379,920,921,935,948,952,963,979],{"__ignoreMap":377},[382,922,923,926,929,932],{"class":384,"line":385},[382,924,925],{"class":388},"npm",[382,927,928],{"class":392}," i",[382,930,931],{"class":392}," -D",[382,933,934],{"class":392}," @ranklint\u002Fcli\n",[382,936,937,939,942,945],{"class":384,"line":443},[382,938,389],{"class":388},[382,940,941],{"class":392}," playwright",[382,943,944],{"class":392}," install",[382,946,947],{"class":392}," chromium\n",[382,949,950],{"class":384,"line":465},[382,951,883],{"emptyLinePlaceholder":882},[382,953,954,957,960],{"class":384,"line":492},[382,955,956],{"class":388},"ranklint",[382,958,959],{"class":392}," init",[382,961,962],{"class":439},"                                          # сгенерировать ranklint.config.ts\n",[382,964,965,967,970,973,976],{"class":384,"line":503},[382,966,956],{"class":388},[382,968,969],{"class":392}," audit",[382,971,972],{"class":392}," --url",[382,974,975],{"class":392}," https:\u002F\u002Fuat.example.com",[382,977,978],{"class":439},"          # аудит живого сайта\n",[382,980,981,983,985,988,991],{"class":384,"line":545},[382,982,956],{"class":388},[382,984,969],{"class":392},[382,986,987],{"class":392}," --start",[382,989,990],{"class":392}," .output\u002Fserver\u002Findex.mjs",[382,992,993],{"class":439},"        # или self-contained из сборки\n",[404,995,996,997,1000,1001,1004,1005,592,1008,1004,1011,1014],{},"Exit code 1 при error-issues. Репортеры: ",[379,998,999],{},"markdown"," (по умолчанию), ",[379,1002,1003],{},"json",", ",[379,1006,1007],{},"junit",[379,1009,1010],{},"--reporter",[379,1012,1013],{},"--output",").",[404,1016,1017,1018,1023,1024,1027],{},"Первый шаг после установки это ",[1019,1020,1021],"a",{"href":20},[379,1022,19],{},": он пишет ",[379,1025,1026],{},"ranklint.config.ts",", печатает сниппет для CI и определяет Nuxt.",[404,1029,1030,1031,1033,1034,625],{},"Правила настраиваются в ",[379,1032,1026],{}," с семантикой ESLint — см. ",[1019,1035,1036],{"href":91},"Конфигурацию",[1038,1039,1040],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":377,"searchDepth":443,"depth":443,"links":1042},[1043,1044],{"id":369,"depth":443,"text":370},{"id":915,"depth":443,"text":50},"Поставить модуль Nuxt и CLI и запустить первый аудит.","md",null,{},{"title":15,"description":1045},"MT7ZerWwFDq4B8wJGstOaBUnJoZaOzbpJYUPerbIl3s",[1052,1054],{"title":11,"path":12,"stem":13,"description":1053,"children":-1},"Что такое ranklint, какие пакеты есть и как они связаны.",{"title":19,"path":20,"stem":21,"description":1055,"children":-1},"Сгенерировать ranklint.config.ts одной командой: url сайта, профиль UAT, зоны, сниппет для CI и мониторинг.",1791750383975]