Catch SEO & performance issues while you code.
A VSCode extension that provides instant, real-time feedback on SEO and performance best practices directly in your editor. No build step required, no configuration needed β just install and start coding better.
β Detect missing meta tags, bad scripts, and oversized images β‘ Instantly see SEO & performance warnings in your editor π§© Works with HTML, React, Next.js, and TypeScript π Based on Google's Web Rendering Service & Core Web Vitals
- Meta tags: Missing/duplicate title, description, viewport, charset
- Open Graph tags: Validate social sharing metadata (og:title, og:description, og:image, og:url)
- Canonical URLs: Ensure proper canonical link declarations
- Structured data: JSON-LD hints for Product and Article pages
- Image accessibility: Missing alt attributes
- Head element ordering: Optimal placement of charset, title, and critical resources
- Blocking resources: Scripts/styles without async/defer attributes
- Image optimization: Missing width/height (CLS prevention), lazy loading hints
- Next.js Image component: Validate
sizesandpriorityattributes - Font loading: font-display: swap recommendations, excessive preload warnings
- HTML size: Warnings for large files (>100KB) with Web Almanac benchmarking
- Resource hints: Suggest preconnect for external domains
- Third-party scripts: Budget enforcement (configurable limit)
- DOM size monitoring: Warns at 800+ elements, errors at 1,500+ (Google WRS limits)
- DOM depth tracking: Detects excessive nesting >25 levels, errors at 32+ (WRS render limit)
- JavaScript bundle size estimation: Analyzes imports, warns about heavy dependencies
- Google's 15MB limit: Alerts at 10MB, critical warnings at 14MB
- Heavy dependency detection: Identifies moment, lodash, jquery, and 7 more with lighter alternatives
- Real-time diagnostics: See issues as you type
- Contextual warnings: Severity levels (Error, Warning, Info)
- Actionable messages: Each diagnostic includes a fix suggestion
- Workspace scanning: Bulk analyze entire project with
Kanmi: Scan Workspacecommand - Custom policies: Override defaults with
kanmi.policy.json
- Open VSCode
- Press
Cmd+Shift+X(Mac) orCtrl+Shift+X(Windows/Linux) - Search for "Kanmi Levers Guard"
- Click Install
cd KanmiLabs/extensions/kanmi-levers-guard
npm install
npm run build
npx vsce package
code --install-extension kanmi-levers-guard-0.0.1.vsixThe extension automatically scans supported files when you:
- Open a file (
.html,.jsx,.tsx,.js,.ts) - Save a file
- Edit a file (real-time feedback)
Run the command palette (Cmd+Shift+P / Ctrl+Shift+P):
> Kanmi: Scan Workspace
This analyzes up to 5,000 files in your workspace.
Create kanmi.policy.json at your workspace root to customize thresholds:
{
"seo": {
"titleMin": 30,
"titleMax": 60,
"metaDescriptionMin": 50,
"metaDescriptionMax": 160,
"requireCanonical": true,
"requireJsonLdFor": ["Product", "Article"]
},
"perf": {
"maxThirdPartyScriptsPerPage": 6,
"lcpImageKB": 350,
"requireFontDisplaySwap": true
}
}Available settings (Preferences β Settings β Kanmi Levers Guard):
| Setting | Default | Description |
|---|---|---|
kanmi.maxThirdPartyScriptsPerPage |
6 | Maximum third-party scripts allowed per page |
kanmi.lcpImageKB |
350 | Target size for LCP images (kilobytes) |
kanmi.requireCanonical |
true | Require canonical link in documents |
Kanmi Levers Guard is the first line of defense in the KanmiLabs performance stack. It catches issues during development, but it's not a replacement for production monitoring or pre-deploy auditing.
βββββββββββββββββββββββββββββββββββββββββββ
β 1. Kanmi Levers Guard (VSCode) β β You are here
β Static code analysis while coding β
β β Free & open source β
β β No build step required β
β β No real performance metrics β
βββββββββββββββββββββββββββββββββββββββββββ€
β 2. KanmiSEO Traffic Levers (CLI) β
β Deep crawl analysis before launch β
β β TTFB measurement (actual timing) β
β β Googlebot simulation β
β β Multi-page pattern detection β
β β Run before deploying to production β
βββββββββββββββββββββββββββββββββββββββββββ€
β 3. KanmiPerf Advanced (Browser) β
β Real-time Core Web Vitals tracking β
β β LCP, CLS, INP, FCP monitoring β
β β Performance scoring & trends β
β β AI-powered recommendations β
β β Monitor production performance β
βββββββββββββββββββββββββββββββββββββββββββ
Get the full suite at kanmiobasa.com/labs
- KanmiSEO Traffic Levers β Pre-deploy crawl audits
- KanmiPerf Advanced β Production monitoring
- KanmiLabs Suite β Enterprise SaaS platform
<!DOCTYPE html>
<html>
<head>
<!-- β Warning: Missing <meta charset> -->
<!-- β Warning: Missing <title> -->
<!-- β Warning: Missing meta description -->
</head>After fixing:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"> <!-- β
First element -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My Awesome Page</title> <!-- β
30-60 chars -->
<meta name="description" content="A compelling 50-160 character description for search engines.">
<link rel="canonical" href="https://example.com/page">
</head><head>
<!-- β Warning: Script without async/defer blocks rendering -->
<script src="https://cdn.example.com/analytics.js"></script>
</head>After fixing:
<head>
<!-- β
Non-blocking script with preconnect -->
<link rel="preconnect" href="https://cdn.example.com">
<script src="https://cdn.example.com/analytics.js" defer></script>
</head>// β Warning: Missing width/height causes CLS
<img src="/hero.jpg" alt="Hero image" />
// β
Fixed: Explicit dimensions prevent layout shift
<img
src="/hero.jpg"
alt="Hero image"
width="1200"
height="630"
loading="lazy"
/>
// Next.js:
// β Warning: Missing sizes attribute
<Image src="/hero.jpg" alt="Hero" width={1200} height={630} />
// β
Fixed: Proper Next.js Image usage
<Image
src="/hero.jpg"
alt="Hero"
width={1200}
height={630}
sizes="(max-width: 768px) 100vw, 1200px"
priority // For LCP images
/>| Tool | Runs Where | Real-time | SEO Checks | Core Web Vitals | Code Fixes |
|---|---|---|---|---|---|
| Lighthouse | Browser / CI | β | β | β | β |
| ESLint | Editor / CI | β | β | β | β |
| Kanmi Levers Guard | VS Code (Editor) | β | β | β | β (coming soon) |
Shift-left performance optimization means catching issues before they reach production:
| Issue Type | Cost if caught in... | Cost if caught in... |
|---|---|---|
| Missing meta tags | Editor: 10 seconds | Production: 2-4 weeks (SEO re-indexing) |
| Blocking scripts | Editor: 30 seconds | Production: Angry users, lost revenue |
| Missing image dimensions | Editor: 15 seconds | Production: Poor CLS, ranking drop |
Developer productivity gain: 5-10 minutes saved per file by catching issues early.
Kanmi Levers Guard is a static analyzer β it reads your code but doesn't run it. This means:
β No runtime metrics: Can't measure actual TTFB, LCP, CLS β No network analysis: Can't detect slow APIs or CDN issues β No JavaScript execution: Can't analyze dynamically rendered content β No multi-page crawling: Analyzes files individually
For these capabilities, use:
- KanmiSEO Traffic Levers β Network timing, crawl budget analysis
- KanmiPerf Advanced β Real Core Web Vitals from actual users
Found a bug or have a feature request? Open an issue on GitHub.
This extension is built on industry research and official recommendations:
- Web Almanac 2024: HTML size benchmarks, Open Graph adoption stats
- Google Web Rendering Service (WRS): Head element ordering, crawl budget optimization
- Core Web Vitals: CLS prevention (image dimensions), LCP optimization (blocking resources)
- Web.dev Performance Guides: Async/defer patterns, resource hints, font optimization
Key sources:
MIT β Free for commercial and personal use.
KanmiLabs builds performance tooling for developers who care about speed, SEO, and user experience. Our mission: Make every website faster.
Contact: i@kanmiobasa.com