ltd-seo-lib
v1.0.6
Published
Professional SEO, Security and Performance Analyzer Library for Node.js
Maintainers
Readme
Professional SEO, Security and Performance Analyzer for Node.js
🚀 Quick Start
CLI (Recommended)
# Install globally
npm install -g ltd-seo-lib
# Run analysis
ltd-seo-lib https://example.com
# Or use npx
npx ltd-seo-lib https://example.comAs a Library
npm install ltd-seo-libimport { AuditEngine } from "ltd-seo-lib"
const engine = new AuditEngine()
const report = await engine.audit("https://example.com")
console.log(`Score: ${report.overallScore}/100 (${report.grade})`)📋 Features
🔍 SEO Analysis
- Meta tags (title, description, keywords)
- Heading structure (H1-H6)
- Internal and external links
- Image optimization (alt text)
- Open Graph tags
- Twitter Cards
- Schema.org / Structured Data
- Canonical URLs
⚡ Performance
- Page load time
- Page size
- HTTP status
- Content-Type
- Compression
🔒 Security
- Security headers (CSP, HSTS, X-Frame-Options)
- Leaked credentials detection
- Personal data verification (LGPD compliance)
🌐 Web Crawler
- Recursive page crawling
- Depth limit
- Page limit
- Same-domain filter
💻 CLI Usage
Basic Commands
# Basic scan
ltd-seo-lib https://example.com
# Limit pages
ltd-seo-lib https://example.com --max-pages 50
# Limit depth
ltd-seo-lib https://example.com --max-depth 3
# Output formats
ltd-seo-lib https://example.com --format json
ltd-seo-lib https://example.com --format markdown
ltd-seo-lib https://example.com --format html
ltd-seo-lib https://example.com --format all
# Save to file
ltd-seo-lib https://example.com --output ./report
# Skip categories
ltd-seo-lib https://example.com --no-seo
ltd-seo-lib https://example.com --no-security
ltd-seo-lib https://example.com --no-performanceHelp
ltd-seo-lib --help📖 Library Usage
Basic Analysis
import { AuditEngine } from "ltd-seo-lib"
const engine = new AuditEngine()
const report = await engine.audit("https://example.com")
console.log(report.overallScore) // 0-100
console.log(report.grade) // A+ to F
console.log(report.seoScore)
console.log(report.securityScore)
console.log(report.performanceScore)Custom Options
const report = await engine.audit("https://example.com", {
maxPages: 50,
maxDepth: 3,
checkSEO: true,
checkSecurity: true,
checkPerformance: true,
})Access Detailed Data
// SEO Issues
for (const issue of report.seoIssues) {
console.log(`[${issue.severity}] ${issue.title}`)
console.log(issue.description)
console.log(issue.recommendation)
}
// Security Issues
for (const issue of report.securityIssues) {
console.log(`[${issue.severity}] ${issue.title}`)
}
// Pages crawled
for (const page of report.pages) {
console.log(page.url)
console.log(page.statusCode)
console.log(page.loadTime)
}
// Recommendations
for (const rec of report.recommendations) {
console.log(rec)
}📊 Scores
| Score | Grade | Description | | ------ | ----- | ------------- | | 95-100 | A+ | Excellent | | 90-94 | A | Very Good | | 80-89 | B | Good | | 70-79 | C | Average | | 60-69 | D | Below Average | | 0-59 | F | Critical |
Score Calculation
- SEO (35%): Meta tags, structure, links, images
- Performance (35%): Load time, size, resources
- Security (30%): Headers, credentials, personal data
🔌 Express Middleware
import express from "express"
import { auditMiddleware } from "ltd-seo-lib"
const app = express()
app.use(
auditMiddleware({
enabled: process.env.NODE_ENV === "production",
reportPath: "./audit-reports",
minScore: 70,
alertEmail: "[email protected]",
})
)
app.listen(3000)📦 API Reference
AuditEngine
const engine = new AuditEngine(options?)Methods
audit(url, options?)- Complete site analysisauditSEOPage(url)- SEO analysis onlyauditSecurityPage(url)- Security analysis onlyauditPerformancePage(url)- Performance analysis only
AuditReport Interface
interface AuditReport {
url: string
scanDate: string
scanDuration: number
totalPagesCrawled: number
totalUrls: number
totalErrors: number
totalWarnings: number
totalSecurityIssues: number
seoScore: number
securityScore: number
performanceScore: number
overallScore: number
grade: string
seoIssues: SEOIssue[]
securityIssues: SecurityIssue[]
recommendations: string[]
pages: PageReport[]
}Options
| Option | Type | Default | Description |
| ------------------ | ------- | ------- | ---------------------------- |
| maxPages | number | 10 | Maximum pages to crawl |
| maxDepth | number | 2 | Maximum crawl depth |
| checkSEO | boolean | true | Include SEO analysis |
| checkSecurity | boolean | true | Include security analysis |
| checkPerformance | boolean | true | Include performance analysis |
⚠️ Troubleshooting
"Cannot find package 'ltd-seo-lib'"
Make sure to install the package locally:
npm install ltd-seo-libOr use npx:
npx ltd-seo-lib https://example.comES Module Error
If you get module errors, add "type": "module" to your package.json:
{
"type": "module"
}Common Issues
- Timeout: Increase timeout in options
- CORS errors: Some sites block crawlers
- Missing data: Some sites require JavaScript rendering
📝 Example Project
See the seo/ folder for a complete example:
cd seo
npm install
npm start🤝 Contributing
- Fork the repository
- Create a branch (
git checkout -b feat/new-feature) - Commit (
git commit -m 'feat: new feature') - Push (
git push origin feat/new-feature) - Open a Pull Request
📄 License
MIT License - LTD - Laboratório de Transformação Digital
Developed with ❤️ by LTD - Laboratório de Transformação Digital
Estácio · Florianópolis, SC
