[{"data":1,"prerenderedAt":1046},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-installation":361,"-en-getting-started-installation-surround":1041},[4,23,49,83,93,115,343,353],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"ranklint init","\u002Fen\u002Fgetting-started\u002Finit","en\u002F1.getting-started\u002F3.init",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Nuxt module","i-lucide-box","\u002Fen\u002Fmodule","en\u002F2.module",[29,33,37,41,45],{"title":30,"path":31,"stem":32},"Overview","\u002Fen\u002Fmodule\u002Foverview","en\u002F2.module\u002F1.overview",{"title":34,"path":35,"stem":36},"Sitemap","\u002Fen\u002Fmodule\u002Fsitemap","en\u002F2.module\u002F2.sitemap",{"title":38,"path":39,"stem":40},"Robots","\u002Fen\u002Fmodule\u002Frobots","en\u002F2.module\u002F3.robots",{"title":42,"path":43,"stem":44},"Composables","\u002Fen\u002Fmodule\u002Fcomposables","en\u002F2.module\u002F4.composables",{"title":46,"path":47,"stem":48},"DevTools","\u002Fen\u002Fmodule\u002Fdevtools","en\u002F2.module\u002F5.devtools",{"title":50,"icon":51,"path":52,"stem":53,"children":54,"page":22},"CLI","i-lucide-terminal","\u002Fen\u002Fcli","en\u002F3.cli",[55,59,63,67,71,75,79],{"title":56,"path":57,"stem":58},"ranklint audit","\u002Fen\u002Fcli\u002Faudit","en\u002F3.cli\u002F1.audit",{"title":60,"path":61,"stem":62},"Diff & CI","\u002Fen\u002Fcli\u002Fdiff-and-ci","en\u002F3.cli\u002F2.diff-and-ci",{"title":64,"path":65,"stem":66},"Production monitoring","\u002Fen\u002Fcli\u002Fmonitor","en\u002F3.cli\u002F3.monitor",{"title":68,"path":69,"stem":70},"Lighthouse","\u002Fen\u002Fcli\u002Flighthouse","en\u002F3.cli\u002F4.lighthouse",{"title":72,"path":73,"stem":74},"Zones (multi-app domains)","\u002Fen\u002Fcli\u002Fzones","en\u002F3.cli\u002F5.zones",{"title":76,"path":77,"stem":78},"Other commands","\u002Fen\u002Fcli\u002Fother-commands","en\u002F3.cli\u002F6.other-commands",{"title":80,"path":81,"stem":82},"Watch mode","\u002Fen\u002Fcli\u002Fwatch","en\u002F3.cli\u002F7.watch",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":22},"Configuration","i-lucide-settings-2","\u002Fen\u002Fconfig","en\u002F4.config",[89],{"title":90,"path":91,"stem":92},"Reference","\u002Fen\u002Fconfig\u002Freference","en\u002F4.config\u002F1.reference",{"title":94,"icon":95,"path":96,"stem":97,"children":98,"page":22},"Advanced","i-lucide-wrench","\u002Fen\u002Fadvanced","en\u002F5.advanced",[99,103,107,111],{"title":100,"path":101,"stem":102},"Custom rules & presets","\u002Fen\u002Fadvanced\u002Fcustom-rules","en\u002F5.advanced\u002F1.custom-rules",{"title":104,"path":105,"stem":106},"Smart heuristics","\u002Fen\u002Fadvanced\u002Fheuristics","en\u002F5.advanced\u002F2.heuristics",{"title":108,"path":109,"stem":110},"Env variables","\u002Fen\u002Fadvanced\u002Fenv","en\u002F5.advanced\u002F3.env",{"title":112,"path":113,"stem":114},"Nuances & limitations","\u002Fen\u002Fadvanced\u002Fnuances","en\u002F5.advanced\u002F4.nuances",{"title":116,"icon":117,"path":118,"stem":119,"children":120},"Rules","i-lucide-list-checks","\u002Fen\u002Frules","en\u002F6.rules\u002Findex",[121,123,148,173,190,207,228,257,306,330],{"title":122,"path":118,"stem":119},"All rules",{"title":124,"path":125,"stem":126,"children":127,"page":22},"Headings","\u002Fen\u002Frules\u002Fheadings","en\u002F6.rules\u002Fheadings",[128,132,136,140,144],{"title":129,"path":130,"stem":131},"headings:h1-length","\u002Fen\u002Frules\u002Fheadings\u002Fheadings-h1-length","en\u002F6.rules\u002Fheadings\u002Fheadings-h1-length",{"title":133,"path":134,"stem":135},"headings:hierarchy","\u002Fen\u002Frules\u002Fheadings\u002Fheadings-hierarchy","en\u002F6.rules\u002Fheadings\u002Fheadings-hierarchy",{"title":137,"path":138,"stem":139},"headings:no-empty","\u002Fen\u002Frules\u002Fheadings\u002Fheadings-no-empty","en\u002F6.rules\u002Fheadings\u002Fheadings-no-empty",{"title":141,"path":142,"stem":143},"headings:single-h1","\u002Fen\u002Frules\u002Fheadings\u002Fheadings-single-h1","en\u002F6.rules\u002Fheadings\u002Fheadings-single-h1",{"title":145,"path":146,"stem":147},"headings:unique-h1","\u002Fen\u002Frules\u002Fheadings\u002Fheadings-unique-h1","en\u002F6.rules\u002Fheadings\u002Fheadings-unique-h1",{"title":149,"path":150,"stem":151,"children":152,"page":22},"Http","\u002Fen\u002Frules\u002Fhttp","en\u002F6.rules\u002Fhttp",[153,157,161,165,169],{"title":154,"path":155,"stem":156},"http:no-mixed-content","\u002Fen\u002Frules\u002Fhttp\u002Fhttp-no-mixed-content","en\u002F6.rules\u002Fhttp\u002Fhttp-no-mixed-content",{"title":158,"path":159,"stem":160},"http:no-soft-404","\u002Fen\u002Frules\u002Fhttp\u002Fhttp-no-soft-404","en\u002F6.rules\u002Fhttp\u002Fhttp-no-soft-404",{"title":162,"path":163,"stem":164},"http:ttfb-budget","\u002Fen\u002Frules\u002Fhttp\u002Fhttp-ttfb-budget","en\u002F6.rules\u002Fhttp\u002Fhttp-ttfb-budget",{"title":166,"path":167,"stem":168},"http:x-robots-consistent","\u002Fen\u002Frules\u002Fhttp\u002Fhttp-x-robots-consistent","en\u002F6.rules\u002Fhttp\u002Fhttp-x-robots-consistent",{"title":170,"path":171,"stem":172},"mobile:viewport","\u002Fen\u002Frules\u002Fhttp\u002Fmobile-viewport","en\u002F6.rules\u002Fhttp\u002Fmobile-viewport",{"title":174,"path":175,"stem":176,"children":177,"page":22},"I18n","\u002Fen\u002Frules\u002Fi18n","en\u002F6.rules\u002Fi18n",[178,182,186],{"title":179,"path":180,"stem":181},"hreflang:symmetric","\u002Fen\u002Frules\u002Fi18n\u002Fhreflang-symmetric","en\u002F6.rules\u002Fi18n\u002Fhreflang-symmetric",{"title":183,"path":184,"stem":185},"hreflang:valid-targets","\u002Fen\u002Frules\u002Fi18n\u002Fhreflang-valid-targets","en\u002F6.rules\u002Fi18n\u002Fhreflang-valid-targets",{"title":187,"path":188,"stem":189},"i18n:no-locale-leak","\u002Fen\u002Frules\u002Fi18n\u002Fi18n-no-locale-leak","en\u002F6.rules\u002Fi18n\u002Fi18n-no-locale-leak",{"title":191,"path":192,"stem":193,"children":194,"page":22},"Images","\u002Fen\u002Frules\u002Fimages","en\u002F6.rules\u002Fimages",[195,199,203],{"title":196,"path":197,"stem":198},"images:alt-required","\u002Fen\u002Frules\u002Fimages\u002Fimages-alt-required","en\u002F6.rules\u002Fimages\u002Fimages-alt-required",{"title":200,"path":201,"stem":202},"images:dimensions-required","\u002Fen\u002Frules\u002Fimages\u002Fimages-dimensions-required","en\u002F6.rules\u002Fimages\u002Fimages-dimensions-required",{"title":204,"path":205,"stem":206},"images:no-lazy-above-fold","\u002Fen\u002Frules\u002Fimages\u002Fimages-no-lazy-above-fold","en\u002F6.rules\u002Fimages\u002Fimages-no-lazy-above-fold",{"title":208,"path":209,"stem":210,"children":211,"page":22},"Indexability","\u002Fen\u002Frules\u002Findexability","en\u002F6.rules\u002Findexability",[212,218,224],{"title":213,"path":214,"stem":215,"children":216},"indexability:ssr-content","\u002Fen\u002Frules\u002Findexability\u002Findexability-ssr-content","en\u002F6.rules\u002Findexability\u002Findexability-ssr-content",[217],{"title":213,"path":214,"stem":215},{"title":219,"path":220,"stem":221,"children":222},"sitemap:no-noindex","\u002Fen\u002Frules\u002Findexability\u002Fsitemap-no-noindex","en\u002F6.rules\u002Findexability\u002Fsitemap-no-noindex",[223],{"title":219,"path":220,"stem":221},{"title":225,"path":226,"stem":227},"sitemap:reachable","\u002Fen\u002Frules\u002Findexability\u002Fsitemap-reachable","en\u002F6.rules\u002Findexability\u002Fsitemap-reachable",{"title":229,"path":230,"stem":231,"children":232,"page":22},"Links","\u002Fen\u002Frules\u002Flinks","en\u002F6.rules\u002Flinks",[233,237,241,245,249,253],{"title":234,"path":235,"stem":236},"links:no-broken","\u002Fen\u002Frules\u002Flinks\u002Flinks-no-broken","en\u002F6.rules\u002Flinks\u002Flinks-no-broken",{"title":238,"path":239,"stem":240},"links:no-orphans","\u002Fen\u002Frules\u002Flinks\u002Flinks-no-orphans","en\u002F6.rules\u002Flinks\u002Flinks-no-orphans",{"title":242,"path":243,"stem":244},"links:no-redirect-chain","\u002Fen\u002Frules\u002Flinks\u002Flinks-no-redirect-chain","en\u002F6.rules\u002Flinks\u002Flinks-no-redirect-chain",{"title":246,"path":247,"stem":248},"links:no-utm-internal","\u002Fen\u002Frules\u002Flinks\u002Flinks-no-utm-internal","en\u002F6.rules\u002Flinks\u002Flinks-no-utm-internal",{"title":250,"path":251,"stem":252},"links:permanent-redirects","\u002Fen\u002Frules\u002Flinks\u002Flinks-permanent-redirects","en\u002F6.rules\u002Flinks\u002Flinks-permanent-redirects",{"title":254,"path":255,"stem":256},"links:trailing-slash-consistent","\u002Fen\u002Frules\u002Flinks\u002Flinks-trailing-slash-consistent","en\u002F6.rules\u002Flinks\u002Flinks-trailing-slash-consistent",{"title":258,"path":259,"stem":260,"children":261,"page":22},"Meta","\u002Fen\u002Frules\u002Fmeta","en\u002F6.rules\u002Fmeta",[262,266,270,274,278,282,286,290,294,298,302],{"title":263,"path":264,"stem":265},"canonical:no-chain","\u002Fen\u002Frules\u002Fmeta\u002Fcanonical-no-chain","en\u002F6.rules\u002Fmeta\u002Fcanonical-no-chain",{"title":267,"path":268,"stem":269},"canonical:required","\u002Fen\u002Frules\u002Fmeta\u002Fcanonical-required","en\u002F6.rules\u002Fmeta\u002Fcanonical-required",{"title":271,"path":272,"stem":273},"canonical:valid","\u002Fen\u002Frules\u002Fmeta\u002Fcanonical-valid","en\u002F6.rules\u002Fmeta\u002Fcanonical-valid",{"title":275,"path":276,"stem":277},"meta:description-length","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-description-length","en\u002F6.rules\u002Fmeta\u002Fmeta-description-length",{"title":279,"path":280,"stem":281},"meta:description-required","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-description-required","en\u002F6.rules\u002Fmeta\u002Fmeta-description-required",{"title":283,"path":284,"stem":285},"meta:no-duplicate-description","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-no-duplicate-description","en\u002F6.rules\u002Fmeta\u002Fmeta-no-duplicate-description",{"title":287,"path":288,"stem":289},"meta:no-duplicate-title","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-no-duplicate-title","en\u002F6.rules\u002Fmeta\u002Fmeta-no-duplicate-title",{"title":291,"path":292,"stem":293},"meta:og-required","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-og-required","en\u002F6.rules\u002Fmeta\u002Fmeta-og-required",{"title":295,"path":296,"stem":297},"meta:title-length","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-title-length","en\u002F6.rules\u002Fmeta\u002Fmeta-title-length",{"title":299,"path":300,"stem":301},"meta:title-required","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-title-required","en\u002F6.rules\u002Fmeta\u002Fmeta-title-required",{"title":303,"path":304,"stem":305},"meta:twitter-card","\u002Fen\u002Frules\u002Fmeta\u002Fmeta-twitter-card","en\u002F6.rules\u002Fmeta\u002Fmeta-twitter-card",{"title":38,"path":307,"stem":308,"children":309,"page":22},"\u002Fen\u002Frules\u002Frobots","en\u002F6.rules\u002Frobots",[310,314,318,322,326],{"title":311,"path":312,"stem":313},"robots:env-policy","\u002Fen\u002Frules\u002Frobots\u002Frobots-env-policy","en\u002F6.rules\u002Frobots\u002Frobots-env-policy",{"title":315,"path":316,"stem":317},"robots:expected-disallow","\u002Fen\u002Frules\u002Frobots\u002Frobots-expected-disallow","en\u002F6.rules\u002Frobots\u002Frobots-expected-disallow",{"title":319,"path":320,"stem":321},"robots:reachable","\u002Fen\u002Frules\u002Frobots\u002Frobots-reachable","en\u002F6.rules\u002Frobots\u002Frobots-reachable",{"title":323,"path":324,"stem":325},"robots:sitemap-declared","\u002Fen\u002Frules\u002Frobots\u002Frobots-sitemap-declared","en\u002F6.rules\u002Frobots\u002Frobots-sitemap-declared",{"title":327,"path":328,"stem":329},"robots:zone-not-blocked","\u002Fen\u002Frules\u002Frobots\u002Frobots-zone-not-blocked","en\u002F6.rules\u002Frobots\u002Frobots-zone-not-blocked",{"title":331,"path":332,"stem":333,"children":334,"page":22},"Structured Data","\u002Fen\u002Frules\u002Fstructured-data","en\u002F6.rules\u002Fstructured-data",[335,339],{"title":336,"path":337,"stem":338},"jsonld:parseable","\u002Fen\u002Frules\u002Fstructured-data\u002Fjsonld-parseable","en\u002F6.rules\u002Fstructured-data\u002Fjsonld-parseable",{"title":340,"path":341,"stem":342},"jsonld:valid-schema","\u002Fen\u002Frules\u002Fstructured-data\u002Fjsonld-valid-schema","en\u002F6.rules\u002Fstructured-data\u002Fjsonld-valid-schema",{"title":344,"icon":345,"path":346,"stem":347,"children":348,"page":22},"Guides","i-lucide-book-open","\u002Fen\u002Fguides","en\u002F7.guides",[349],{"title":350,"path":351,"stem":352},"SEO checklist for a Nuxt project","\u002Fen\u002Fguides\u002Fseo-checklist-nuxt","en\u002F7.guides\u002F1.seo-checklist-nuxt",{"title":354,"path":355,"stem":356,"children":357,"icon":360},"Changelog","\u002Fen\u002Fchangelog","en\u002F8.changelog\u002Findex",[358],{"title":359,"path":355,"stem":356},"ranklint changelog and release notes","i-lucide-history",{"id":362,"title":15,"body":363,"description":1035,"extension":1036,"links":1037,"meta":1038,"navigation":873,"path":16,"seo":1039,"stem":17,"__hash__":1040},"docs_en\u002Fen\u002F1.getting-started\u002F2.installation.md",{"type":364,"value":365,"toc":1031},"minimark",[366,371,403,419,740,747,761,776,901,904,907,985,1006,1019,1027],[367,368,370],"h2",{"id":369},"module","Module",[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,410,411,414,415,418],"p",{},"Works with zero configuration: ",[379,408,409],{},"\u002Fsitemap.xml"," (static routes from ",[379,412,413],{},"app\u002Fpages\u002F",") and ",[379,416,417],{},"\u002Frobots.txt"," (non-prod environments are closed to indexing) are available right away.",[372,420,424],{"className":421,"code":422,"language":423,"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,425,426,432,454,481,492,534,544,555,568,659,667,681,687,711,725,731],{"__ignoreMap":377},[382,427,428],{"class":384,"line":385},[382,429,431],{"class":430},"sHwdD","\u002F\u002F nuxt.config.ts\n",[382,433,435,439,442,446,450],{"class":384,"line":434},2,[382,436,438],{"class":437},"s7zQu","export",[382,440,441],{"class":437}," default",[382,443,445],{"class":444},"s2Zo4"," defineNuxtConfig",[382,447,449],{"class":448},"sTEyZ","(",[382,451,453],{"class":452},"sMK4o","{\n",[382,455,457,461,464,467,470,473,475,478],{"class":384,"line":456},3,[382,458,460],{"class":459},"swJcz","  modules",[382,462,463],{"class":452},":",[382,465,466],{"class":448}," [",[382,468,469],{"class":452},"'",[382,471,472],{"class":392},"@ranklint\u002Fnuxt",[382,474,469],{"class":452},[382,476,477],{"class":448},"]",[382,479,480],{"class":452},",\n",[382,482,484,487,489],{"class":384,"line":483},4,[382,485,486],{"class":459},"  ranklint",[382,488,463],{"class":452},[382,490,491],{"class":452}," {\n",[382,493,495,498,500,503,506,508,511,514,516,519,522,524,526,529,531],{"class":384,"line":494},5,[382,496,497],{"class":459},"    site",[382,499,463],{"class":452},[382,501,502],{"class":452}," {",[382,504,505],{"class":459}," url",[382,507,463],{"class":452},[382,509,510],{"class":452}," '",[382,512,513],{"class":392},"https:\u002F\u002Fexample.com",[382,515,469],{"class":452},[382,517,518],{"class":452},",",[382,520,521],{"class":459}," name",[382,523,463],{"class":452},[382,525,510],{"class":452},[382,527,528],{"class":392},"Example",[382,530,469],{"class":452},[382,532,533],{"class":452}," },\n",[382,535,537,540,542],{"class":384,"line":536},6,[382,538,539],{"class":459},"    sitemap",[382,541,463],{"class":452},[382,543,491],{"class":452},[382,545,547,550,552],{"class":384,"line":546},7,[382,548,549],{"class":459},"      sources",[382,551,463],{"class":452},[382,553,554],{"class":448}," [\n",[382,556,558,561,564,566],{"class":384,"line":557},8,[382,559,560],{"class":452},"        '",[382,562,563],{"class":392},"\u002Fapi\u002Fseo\u002Furls",[382,565,469],{"class":452},[382,567,480],{"class":452},[382,569,571,575,578,581,584,587,590,593,596,599,602,604,606,609,611,614,617,620,622,626,628,630,633,636,638,641,644,647,649,652,655,657],{"class":384,"line":570},9,[382,572,574],{"class":573},"spNyl","        async",[382,576,577],{"class":452}," ()",[382,579,580],{"class":573}," =>",[382,582,583],{"class":448}," (",[382,585,586],{"class":437},"await",[382,588,589],{"class":444}," $fetch",[382,591,592],{"class":452},"\u003C",[382,594,595],{"class":388},"string",[382,597,598],{"class":448},"[]",[382,600,601],{"class":452},">",[382,603,449],{"class":448},[382,605,469],{"class":452},[382,607,608],{"class":392},"\u002Fapi\u002Fproducts",[382,610,469],{"class":452},[382,612,613],{"class":448},"))",[382,615,616],{"class":452},".",[382,618,619],{"class":444},"map",[382,621,449],{"class":448},[382,623,625],{"class":624},"sHdIc","slug",[382,627,580],{"class":573},[382,629,583],{"class":448},[382,631,632],{"class":452},"{",[382,634,635],{"class":459}," loc",[382,637,463],{"class":452},[382,639,640],{"class":452}," `",[382,642,643],{"class":392},"\u002Fp\u002F",[382,645,646],{"class":452},"${",[382,648,625],{"class":448},[382,650,651],{"class":452},"}`",[382,653,654],{"class":452}," }",[382,656,613],{"class":448},[382,658,480],{"class":452},[382,660,662,665],{"class":384,"line":661},10,[382,663,664],{"class":448},"      ]",[382,666,480],{"class":452},[382,668,670,673,675,679],{"class":384,"line":669},11,[382,671,672],{"class":459},"      cacheTtl",[382,674,463],{"class":452},[382,676,678],{"class":677},"sbssI"," 3600",[382,680,480],{"class":452},[382,682,684],{"class":384,"line":683},12,[382,685,686],{"class":452},"    },\n",[382,688,690,693,695,697,700,702,704,707,709],{"class":384,"line":689},13,[382,691,692],{"class":459},"    robots",[382,694,463],{"class":452},[382,696,502],{"class":452},[382,698,699],{"class":459}," mode",[382,701,463],{"class":452},[382,703,510],{"class":452},[382,705,706],{"class":392},"owner",[382,708,469],{"class":452},[382,710,533],{"class":452},[382,712,714,717,719,723],{"class":384,"line":713},14,[382,715,716],{"class":459},"    jsonLd",[382,718,463],{"class":452},[382,720,722],{"class":721},"sfNiH"," true",[382,724,480],{"class":452},[382,726,728],{"class":384,"line":727},15,[382,729,730],{"class":452},"  },\n",[382,732,734,737],{"class":384,"line":733},16,[382,735,736],{"class":452},"}",[382,738,739],{"class":448},")\n",[404,741,742,743,746],{},"Every block can be disabled with ",[379,744,745],{},"false"," — disabled code is not registered at all.",[404,748,749,752,753,756,757,760],{},[379,750,751],{},"sitemap: { autoRoutes: false }"," drops the automatic routes collected from ",[379,754,755],{},"app\u002Fpages"," — use it with explicit ",[379,758,759],{},"sources"," when routes need locale prefixes or manual curation (i18n \u002F multi-app setups).",[404,762,763,764,767,768,771,772,775],{},"A function source is serialized into the server bundle via ",[379,765,766],{},"toString()",", so it must be self-contained: Nitro globals (",[379,769,770],{},"$fetch",") are available, but closures over variables and imports from ",[379,773,774],{},"nuxt.config"," are not.",[372,777,781],{"className":778,"code":779,"language":780,"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,782,783,796,814,830,863,869,875,892],{"__ignoreMap":377},[382,784,785,787,790,793],{"class":384,"line":385},[382,786,592],{"class":452},[382,788,789],{"class":459},"script",[382,791,792],{"class":573}," setup",[382,794,795],{"class":452},">\n",[382,797,798,801,803,805,808,810,812],{"class":384,"line":434},[382,799,800],{"class":444},"useJsonLd",[382,802,449],{"class":448},[382,804,469],{"class":452},[382,806,807],{"class":392},"Product",[382,809,469],{"class":452},[382,811,518],{"class":452},[382,813,491],{"class":452},[382,815,816,819,821,823,826,828],{"class":384,"line":456},[382,817,818],{"class":459},"  name",[382,820,463],{"class":452},[382,822,510],{"class":452},[382,824,825],{"class":392},"Widget",[382,827,469],{"class":452},[382,829,480],{"class":452},[382,831,832,835,837,839,842,844,847,849,852,854,856,859,861],{"class":384,"line":483},[382,833,834],{"class":459},"  offers",[382,836,463],{"class":452},[382,838,502],{"class":452},[382,840,841],{"class":459}," price",[382,843,463],{"class":452},[382,845,846],{"class":677}," 9.99",[382,848,518],{"class":452},[382,850,851],{"class":459}," priceCurrency",[382,853,463],{"class":452},[382,855,510],{"class":452},[382,857,858],{"class":392},"USD",[382,860,469],{"class":452},[382,862,533],{"class":452},[382,864,865,867],{"class":384,"line":494},[382,866,736],{"class":452},[382,868,739],{"class":448},[382,870,871],{"class":384,"line":536},[382,872,874],{"emptyLinePlaceholder":873},true,"\n",[382,876,877,880,883,885,887,889],{"class":384,"line":546},[382,878,879],{"class":444},"useRanklintIgnore",[382,881,882],{"class":448},"([",[382,884,469],{"class":452},[382,886,141],{"class":392},[382,888,469],{"class":452},[382,890,891],{"class":448},"])\n",[382,893,894,897,899],{"class":384,"line":557},[382,895,896],{"class":452},"\u003C\u002F",[382,898,789],{"class":459},[382,900,795],{"class":452},[404,902,903],{},"In dev, JSON-LD is validated against Schema.org schemas (Product, Article, BreadcrumbList, Organization, WebSite) with console warnings; in prod the validator is completely tree-shaken out of the bundle. The module's client runtime is under 1 KB gzip.",[367,905,50],{"id":906},"cli",[372,908,910],{"className":374,"code":909,"language":376,"meta":377,"style":377},"npm i -D @ranklint\u002Fcli\nnpx playwright install chromium\n\nranklint init                                          # generate ranklint.config.ts\nranklint audit --url https:\u002F\u002Fuat.example.com          # audit a live site\nranklint audit --start .output\u002Fserver\u002Findex.mjs        # or self-contained from a build\n",[379,911,912,926,939,943,954,970],{"__ignoreMap":377},[382,913,914,917,920,923],{"class":384,"line":385},[382,915,916],{"class":388},"npm",[382,918,919],{"class":392}," i",[382,921,922],{"class":392}," -D",[382,924,925],{"class":392}," @ranklint\u002Fcli\n",[382,927,928,930,933,936],{"class":384,"line":434},[382,929,389],{"class":388},[382,931,932],{"class":392}," playwright",[382,934,935],{"class":392}," install",[382,937,938],{"class":392}," chromium\n",[382,940,941],{"class":384,"line":456},[382,942,874],{"emptyLinePlaceholder":873},[382,944,945,948,951],{"class":384,"line":483},[382,946,947],{"class":388},"ranklint",[382,949,950],{"class":392}," init",[382,952,953],{"class":430},"                                          # generate ranklint.config.ts\n",[382,955,956,958,961,964,967],{"class":384,"line":494},[382,957,947],{"class":388},[382,959,960],{"class":392}," audit",[382,962,963],{"class":392}," --url",[382,965,966],{"class":392}," https:\u002F\u002Fuat.example.com",[382,968,969],{"class":430},"          # audit a live site\n",[382,971,972,974,976,979,982],{"class":384,"line":536},[382,973,947],{"class":388},[382,975,960],{"class":392},[382,977,978],{"class":392}," --start",[382,980,981],{"class":392}," .output\u002Fserver\u002Findex.mjs",[382,983,984],{"class":430},"        # or self-contained from a build\n",[404,986,987,988,991,992,995,996,583,999,995,1002,1005],{},"Exit code 1 when errors are found. Reporters: ",[379,989,990],{},"markdown"," (default), ",[379,993,994],{},"json",", ",[379,997,998],{},"junit",[379,1000,1001],{},"--reporter",[379,1003,1004],{},"--output",").",[404,1007,1008,1009,1014,1015,1018],{},"The first step after the install is ",[1010,1011,1012],"a",{"href":20},[379,1013,19],{},": it writes ",[379,1016,1017],{},"ranklint.config.ts",", prints a CI snippet and detects Nuxt.",[404,1020,1021,1022,1024,1025,616],{},"Rules are configured in ",[379,1023,1017],{}," with ESLint semantics — see ",[1010,1026,84],{"href":91},[1028,1029,1030],"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":434,"depth":434,"links":1032},[1033,1034],{"id":369,"depth":434,"text":370},{"id":906,"depth":434,"text":50},"Install the Nuxt module and the CLI, and run the first audit.","md",null,{},{"title":15,"description":1035},"cYAplsK1b5TcRXZA9hvntVOKCa0xzfXDpW7O0oXoW94",[1042,1044],{"title":11,"path":12,"stem":13,"description":1043,"children":-1},"What ranklint is, which packages exist and how they fit together.",{"title":19,"path":20,"stem":21,"description":1045,"children":-1},"Generate ranklint.config.ts in one command: site url, UAT profile, zones, CI snippet and monitoring.",1791750392402]