All 46 SEO Rules
Capyseo includes 46 rules organized into 11 categories.
Rule Categories
| Category |
Rules |
Description |
| Meta Tags |
5 |
Title, description, viewport, charset, lang |
| Images |
4 |
Alt text, lazy loading, dimensions, format |
| Headings |
3 |
Hierarchy, empty headings, keywords |
| Links |
4 |
Broken links, redirects, external, internal |
| Content |
5 |
Word count, keywords, readability, duplicates |
| Social |
3 |
Open Graph, Twitter Cards, previews |
| Structured Data |
3 |
JSON-LD, microdata, breadcrumbs |
| Mobile |
5 |
Viewport, touch targets, fonts, media |
| Security |
4 |
Headers, HTTPS, scripts, forms |
| Performance |
3 |
CSS, JavaScript, resource hints |
| URL |
4 |
Length, structure, keywords, slashes |
| Lighthouse |
1 |
Core Web Vitals |
Quick Reference
Meta Tags (5 rules)
| Rule ID |
Severity |
Description |
meta-title |
error |
Title exists, 30-60 chars |
meta-description |
error |
Description exists, 120-160 chars |
meta-viewport |
warning |
Viewport tag with width=device-width |
meta-charset |
warning |
UTF-8 charset declaration |
lang-attribute |
error |
<html lang="..."> attribute |
Images (4 rules)
| Rule ID |
Severity |
Description |
image-alt |
error |
All images have alt text |
image-lazy-load |
info |
Below-fold images use lazy loading |
image-dimensions |
warning |
Width/height to prevent CLS |
image-format |
info |
Modern formats (WebP/AVIF) |
Headings (3 rules)
| Rule ID |
Severity |
Description |
heading-hierarchy |
warning |
Proper H1-H6 structure |
empty-heading |
warning |
No empty heading elements |
heading-keywords |
info |
H1 contains title keywords |
Links (4 rules)
| Rule ID |
Severity |
Description |
broken-links |
error |
No 404/5xx links |
redirect-chains |
warning |
Avoid redirect chains |
external-links |
warning |
rel="noopener" on target="_blank" |
internal-links |
info |
At least 3 internal links |
Content (5 rules)
| Rule ID |
Severity |
Description |
word-count |
info |
At least 100 words |
keyword-density |
warning |
Keywords present, not stuffed |
readability |
info |
Flesch score above 50 |
duplicate-content |
warning |
No duplicate H1/title |
content-freshness |
info |
Publication date present |
Social (3 rules)
| Rule ID |
Severity |
Description |
open-graph |
warning |
OG title, description, image, URL |
twitter-card |
warning |
Twitter card meta tags |
social-preview |
info |
Proper OG content lengths |
Structured Data (3 rules)
| Rule ID |
Severity |
Description |
json-ld |
info |
Valid JSON-LD with schema.org |
microdata |
info |
Valid microdata markup |
breadcrumb |
info |
BreadcrumbList schema |
Mobile (5 rules)
| Rule ID |
Severity |
Description |
mobile-viewport |
warning |
Proper viewport settings |
touch-targets |
info |
48x48px minimum tap targets |
mobile-font-size |
warning |
No tiny fonts (<12px) |
mobile-media |
info |
Responsive images/iframes |
mobile-friendly-links |
info |
Navigation link spacing |
Security (4 rules)
| Rule ID |
Severity |
Description |
security-headers |
info |
CSP, X-Frame-Options, HSTS |
https |
warning |
HTTPS, no mixed content |
external-scripts |
warning |
SRI on CDN scripts |
form-security |
warning |
HTTPS forms, POST for passwords |
Performance (3 rules)
| Rule ID |
Severity |
Description |
css-analysis |
info |
Not too many stylesheets |
js-analysis |
info |
Not too many scripts |
resource-hints |
info |
Preload/prefetch critical resources |
URL (4 rules)
| Rule ID |
Severity |
Description |
url-length |
info |
URL path under 100 chars |
url-structure |
warning |
Clean URLs, hyphens, lowercase |
url-keywords |
info |
Keywords in URL |
url-trailing-slash |
info |
Consistent trailing slashes |
Lighthouse (1 rule)
| Rule ID |
Severity |
Description |
core-web-vitals |
warning |
LCP, CLS, FCP, TTFB thresholds |
Configuring Rules
Change Severity
// capyseo.config.js
export default {
rules: {
'open-graph': { severity: 'error' }, // Make required
'word-count': { severity: 'info' }, // Downgrade
},
};
Disable Rules
export default {
rules: {
'readability': { enabled: false },
'broken-links': { enabled: false },
},
};
Rule Severity Guidelines
Use error for:
- Missing essential meta tags
- Broken links
- Missing image alt text
- Missing canonical URL
- Missing lang attribute
Use warning for:
- Heading hierarchy issues
- Social media tags
- Security headers
- Mobile compatibility
Use info for:
- Content suggestions
- Performance tips
- Minor improvements