[{"data":1,"prerenderedAt":553},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-introduction":361,"-en-getting-started-introduction-surround":550},[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":11,"body":363,"description":543,"extension":544,"links":545,"meta":546,"navigation":547,"path":12,"seo":548,"stem":13,"__hash__":549},"docs_en\u002Fen\u002F1.getting-started\u002F1.introduction.md",{"type":364,"value":365,"toc":538},"minimark",[366,370,409,414,527],[367,368,369],"p",{},"ranklint is an SEO toolkit for Nuxt 4 and a stack-agnostic SEO linter for CI.",[371,372,373,394,400],"ul",{},[374,375,376,380,381,385,386,389,390,393],"li",{},[377,378,379],"strong",{},"Runtime"," — the ",[382,383,384],"code",{},"@ranklint\u002Fnuxt"," module serves ",[382,387,388],{},"sitemap.xml",", ",[382,391,392],{},"robots.txt"," and typed JSON-LD.",[374,395,396,399],{},[377,397,398],{},"Dev"," — an \"SEO\" tab in Nuxt DevTools: heading outline, meta, JSON-LD with validation, page audit.",[374,401,402,405,406,408],{},[377,403,404],{},"CI"," — ",[382,407,56],{}," crawls a deployed site with Playwright and fails on thresholds; markdown, json, junit, html, gitlab, github and sarif reporters.",[410,411,413],"h2",{"id":412},"packages","Packages",[415,416,417,430],"table",{},[418,419,420],"thead",{},[421,422,423,427],"tr",{},[424,425,426],"th",{},"Package",[424,428,429],{},"Purpose",[431,432,433,443,455,465,475,485,495,508],"tbody",{},[421,434,435,440],{},[436,437,438],"td",{},[382,439,384],{},[436,441,442],{},"Nuxt 4 module: sitemap, robots, useJsonLd, DevTools tab",[421,444,445,450],{},[436,446,447],{},[382,448,449],{},"@ranklint\u002Fcli",[436,451,452,454],{},[382,453,56],{}," — crawler (Playwright) + checks + reports",[421,456,457,462],{},[436,458,459],{},[382,460,461],{},"@ranklint\u002Fcore",[436,463,464],{},"Engine: crawler, runner, config (no Nuxt dependencies)",[421,466,467,472],{},[436,468,469],{},[382,470,471],{},"@ranklint\u002Fchecks",[436,473,474],{},"43 rules + Schema.org schemas",[421,476,477,482],{},[436,478,479],{},[382,480,481],{},"@ranklint\u002Freporters",[436,483,484],{},"markdown \u002F junit \u002F json \u002F html \u002F gitlab \u002F github \u002F sarif",[421,486,487,492],{},[436,488,489],{},[382,490,491],{},"@ranklint\u002Fdevtools",[436,493,494],{},"Vue panel for Nuxt DevTools",[421,496,497,502],{},[436,498,499],{},[382,500,501],{},"@ranklint\u002Fpreset-default",[436,503,504,505],{},"Preset with the built-in rules for ",[382,506,507],{},"extends",[421,509,510,515],{},[436,511,512],{},[382,513,514],{},"ranklint",[436,516,517,518,405,520,523,524,526],{},"Alias of ",[382,519,449],{},[382,521,522],{},"npm i -D ranklint"," gives the ",[382,525,514],{}," binary",[367,528,529,530,533,534,537],{},"Requirements: Nuxt ",[382,531,532],{},"^4.0.0",", Node.js ",[382,535,536],{},">= 20",". MIT license.",{"title":539,"searchDepth":540,"depth":540,"links":541},"",2,[542],{"id":412,"depth":540,"text":413},"What ranklint is, which packages exist and how they fit together.","md",null,{},true,{"title":11,"description":543},"nlj2oAM21PMuWx52U0kkN9Yr6AWJRvOpz1atOe89v0o",[545,551],{"title":15,"path":16,"stem":17,"description":552,"children":-1},"Install the Nuxt module and the CLI, and run the first audit.",1791750392063]