Rules Library
Browse what Frontend Auditor validates today, what's on the roadmap, and suggest the next rule worth shipping. A living catalog of the engine.
Total Rules
33
Active
Currently shipping
Planned
0
On the roadmap
Deprecated
Retired
SEO
10
Accessibility
7
Performance
6
Best Practices
Showing 33 of 33 rules
Pages should have exactly one H1 that describes the page topic.
Multiple H1s confuse search engines about the page's primary topic.
The title tag is the most important SEO signal and shows in search results.
The meta description controls the snippet shown in search results.
Open Graph tags control how the page appears when shared on social media.
Twitter Card meta tags control how links appear on X/Twitter.
A canonical URL tells search engines which version of a page is the primary one.
Empty <a> elements provide no value to users or crawlers.
Heading levels should increase by one. Skipping breaks screen reader navigation.
Screen readers cannot describe images without alt attributes. Also hurts SEO.
Form controls without labels are unusable with assistive tech.
Buttons with only an icon need an accessible name for screen readers.
Declaring a language helps screen readers pronounce content correctly.
Light gray text on white backgrounds frequently fails WCAG AA contrast (4.5:1).
Without a viewport meta tag, mobile browsers render at desktop width and zoom out.
External scripts without defer/async block HTML parsing and delay rendering.
Inline <style> blocks over ~5KB delay first paint and are not cached across pages.
Deep DOM trees increase memory, style recalculation, and layout costs.
Below-the-fold images should defer loading to improve initial paint.
IDs must be unique. Duplicates break label associations, anchors and scripts.
Inline handlers (onclick=…) mix structure with behavior and fail under strict CSP.
Links opening new tabs without rel="noopener" expose window.opener to the new page.
Tags like <center>, <font>, <marquee> are obsolete in HTML5.
Heavy <div> usage without semantic tags hurts accessibility and SEO.
`var` has function scope and hoisting quirks. Prefer `let` or `const`.
`==` performs type coercion and causes subtle bugs.
Leftover console.log calls bloat bundles and may leak data in production.
Multiple canonical links send conflicting signals to search engines and may be ignored entirely.
Structured data helps search engines understand the page and enables rich results.
Without a favicon, browsers log 404s for /favicon.ico and tabs look unbranded.
Images without explicit dimensions cause layout shift (CLS) as they load.
Screen readers can't tell which nav item is the current page without aria-current.
Excessive !important usage signals specificity wars and makes CSS hard to maintain.