[rule_options] section allows fine-tuning individual audit rules with custom thresholds and parameters.
Configuration
How Rule Options Work
Structure
Rule options use TOML table syntax:<rule-id>- Full rule ID (e.g.,core/meta-title,content/word-count)- Options are rule-specific (each rule defines its own options)
- All options have defaults (configuration is optional)
Validation
Rule options are validated against each rule’s schema:squirrel config validate to check for errors.
Common Rule Options
Core Rules
core/meta-title
Control title tag length requirements.
Options:
min_length: 30max_length: 60
- Different industries have different conventions
- Brand names may require more characters
- Mobile SERPs show fewer characters (~50)
core/meta-description
Control meta description length requirements.
Options:
min_length: 120max_length: 160
- Google truncates ~160 characters
- Longer descriptions provide more context
- E-commerce may need more details
Content Rules
content/word-count
Set minimum word count for content quality.
Options:
min_words: 300warn_threshold: 500
- Blog posts need more words (800-2000+)
- Product pages can be shorter (200-500)
- Landing pages focus on conversion
- < 300 words →
fail(thin content) - 300-499 words →
info(could be longer) - ≥ 500 words →
pass(good length)
content/keyword-stuffing
Detect keyword over-optimization.
Options:
density_threshold: 0.03(3%)min_word_count: 100
- Different content types have different natural repetition
- Technical docs may repeat terms more
- E-commerce descriptions can be repetitive
- “SEO” appears 30 times
- Page has 1000 words
- Density = 30/1000 = 0.03 (3%)
content/article-toc
Require table of contents for long articles.
Options:
min_headings: 3
- Short articles don’t need TOC
- Long-form content improves with TOC
- Accessibility benefits
content/article-links
Check for external citations in articles.
Options:
min_external_links: 2
- Academic/news needs citations
- Product pages may not need external links
- E-E-A-T prefers authoritative sources
Link Rules
links/orphan-pages
Detect pages with no incoming internal links.
Options:
exclude_patterns: []
- Some pages are intentionally unlinked
- Utility pages don’t need internal links
- Reduce false positives
links/dead-end-pages
Find pages with no outgoing internal links.
Options:
exclude_patterns: []
- Conversion pages often have no links (by design)
- Focus user on one action
- Reduce false positives
links/internal-links
Control internal linking recommendations.
Options:
min_internal_links: 2
- Landing pages may have fewer links
- Blog posts benefit from more internal links
- E-commerce categories need many links
Performance Rules
performance/ttfb
Time to First Byte threshold.
Options:
warn_threshold: 600error_threshold: 1000
- Shared hosting is slower
- CDN hosting is faster
- Geographic distance affects TTFB
- < 600ms →
pass - 600-999ms →
warn - ≥ 1000ms →
fail
performance/dom-size
DOM element count limits.
Options:
warn_threshold: 1500error_threshold: 3000
- Simple pages have fewer elements
- Complex apps have more elements
- Mobile performance more sensitive
Accessibility Rules
a11y/skip-link
Require skip navigation link.
Options:
required: true
- Simple sites may not need skip links
- Complex sites benefit from skip links
- WCAG AA compliance
Security Rules
security/http-to-https
Allow HTTP links from HTTPS pages.
Options:
allow_localhost: trueallow_patterns: []
- Legacy integrations may use HTTP
- Development environments use HTTP
- Some APIs don’t support HTTPS
Crawl Rules
crawl/all-noindex-pages
Check if all pages are noindexed.
Options:
threshold: 0.9(90%)
- Staging sites should be fully noindexed
- Production sites shouldn’t be noindexed
- Detect misconfiguration
warn (possible misconfiguration)
Adblock Rules
adblock/element-hiding
Check for adblocker-hidden elements.
Options:
maxMatchesToReport: 10lists: ["easylist", "easyprivacy", "fanboy-annoyance"]
easylist- Main adblock listeasyprivacy- Privacy protectionfanboy-annoyance- Annoyance elementsfanboy-social- Social media buttons
- Different lists have different strictness
- Reduce false positives
- Focus on specific concerns
adblock/blocked-links
Check for links to blocked tracking domains.
Options:
maxMatchesToReport: 10lists: ["easyprivacy"]
Finding Rule Options
View rule schema
Check which options a rule accepts:List all rules with options
View config with defaults
Configuration Examples
Blog Site
- Blog posts need longer titles
- Content should be comprehensive
- Articles benefit from TOC
- External citations improve E-E-A-T
E-commerce Site
- Product titles often shorter
- Product descriptions concise
- Conversion pages are dead-ends
- Products link internally, not externally
Documentation Site
- Docs can be shorter (reference material)
- TOC essential for navigation
- Cross-referencing improves UX
- Technical terms naturally repeat
Landing Pages
- Landing pages are concise
- Minimize distractions from CTA
- Dead-ends by design
- Single page focus
Validation
Check rule options are valid:Complete Example
- Requires longer titles (40-60 chars)
- Enforces substantial content (500+ words)
- Requires table of contents for articles
- Expects external citations
- Ignores utility pages in orphan check
- Sets strict TTFB thresholds
Related
- Rules Configuration - Enable/disable rules
- Rules Reference - All available rules
- Examples - Common configurations