lintpage
v0.1.6
Published
CLI for LintPage — audit website SEO, accessibility, and performance
Readme
lintpage
CLI tool that audits websites for SEO, accessibility, and performance issues. Catch noindex tag, broken meta tags, missing alt text, slow pages, and security problems before they hurt your rankings.
Install
npm install -g lintpageOr as a dev dependency:
npm install -D lintpageUsage
lintpage https://example.comThe CLI automatically prepends https:// if no protocol is provided:
lintpage example.comOutput
LintPage audit for https://example.com
Score: 85/100 Status: PASS
Pre-Launch 28/30 (93%)
SEO 32/35 (91%)
Accessibility 18/20 (90%)
Performance 14/15 (93%)
SEO
⚠ WARNING Title is too long (recommended: 50-60 characters)
Shorten your title to under 60 characters.Exit codes:
0— all checks pass1— critical issues found (or warnings with--fail-on-warning)2— runtime error
Options
| Flag | Description |
| ------------------- | ------------------------------------------------- |
| --format <format> | Output format: text (default), json, github |
| --fail-on-warning | Exit 1 on warnings, not just criticals |
| --quiet | Minimal output (counts only) |
| --report | Send results to the LintPage dashboard |
| --pro <key> | Enable pro rules with a license key |
Rules
LintPage checks 13 rules out of the box across four categories:
SEO
| Rule | Severity | What it checks |
| ------------------- | -------- | ------------------------------------------- |
| title | CRITICAL | Title tag presence and length (30–60 chars) |
| meta-description | WARNING | Meta description presence and length |
| heading-structure | WARNING | Single H1, valid heading hierarchy |
| canonical-url | WARNING | Canonical URL tag |
| robots-noindex | INFO | Robots noindex directives |
| og-title | WARNING | OpenGraph title |
| og-description | WARNING | OpenGraph description |
| og-image | WARNING | OpenGraph image |
| og-url | WARNING | OpenGraph URL |
| twitter-card | WARNING | Twitter Card meta tags |
Accessibility
| Rule | Severity | What it checks |
| ----------- | -------- | ---------------------------- |
| html-lang | CRITICAL | lang attribute on <html> |
| viewport | WARNING | Viewport meta tag |
Pre-Launch
| Rule | Severity | What it checks |
| --------- | -------- | ---------------- |
| favicon | WARNING | Favicon presence |
Pro Rules
With a license key (--pro <key> or LINTPAGE_PRO_KEY env var), you get 32 additional rules including:
- SSL & security — HTTPS enforcement, security headers, mixed content detection
- Advanced SEO — Structured data validation, hreflang, duplicate meta detection, keyword stuffing
- Accessibility — ARIA labels, semantic HTML structure, image alt text
- Performance — TTFB measurement, render-blocking resources, lazy loading checks
- Pre-launch — robots.txt validation, sitemap checks, charset, tracking code detection
Scoring
Each page gets a score out of 100, weighted by category:
| Category | Weight | | ------------- | ------ | | Pre-Launch | 30 | | SEO | 35 | | Accessibility | 20 | | Performance | 15 |
Severity deductions per issue: CRITICAL = −30%, WARNING = −5%, INFO = −1%.
Configuration
Generate a config file:
lintpage initThis creates .lintpagerc.json in the current directory. You can also use .lintpagerc or lintpage.config.json.
Disable a rule
{
"rules": {
"og-image": false
}
}Override severity
{
"rules": {
"meta-description": {
"enabled": true,
"severity": "CRITICAL"
}
}
}CI / GitHub Actions
Use the github format for native annotations:
- name: Lint page
run: npx lintpage https://your-site.com --format github --fail-on-warningThis outputs GitHub-compatible annotations that show up directly on your PR.
Reporting
Send results to the LintPage dashboard:
lintpage https://example.com --report --pro <key>Requires LINTPAGE_API_TOKEN or a pro license key for authentication.
License
MIT
