JSPM

react-seo-analyzer

2.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 9
  • Score
    100M100P100Q40051F
  • License MIT

A React SEO Analyzer package with visual overlay, 20+ checks, and SEO scoring.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-seo-analyzer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    react-seo-analyzer

    npm version npm downloads bundle size license

    🔍 A zero-dependency SEO linter for React apps — with a live visual overlay, 20+ checks, and an SEO score — all only in development mode.


    ✨ Why react-seo-analyzer?

    Most React SEO tools require server-side rendering or manual auditing. react-seo-analyzer runs right inside your browser during development — giving you instant, inline feedback as you build.

    Feature react-seo-analyzer Lighthouse Other libs
    Dev-mode overlay
    SEO score
    20+ checks ⚠️ partial
    Zero config ⚠️
    Zero dependencies
    Auto-disabled in prod N/A

    🚀 Installation

    npm install react-seo-analyzer
    # or
    yarn add react-seo-analyzer

    🔧 Usage

    Drop <SEOAnalyzer /> anywhere in your app. It renders nothing in production.

    import SEOAnalyzer from 'react-seo-analyzer';
    
    function App() {
      return (
        <>
          <SEOAnalyzer />
          {/* your app */}
        </>
      );
    }

    A floating panel will appear in the bottom-right corner showing your SEO score and all issues, grouped by category. Click the badge to collapse it.


    ⚙️ Props

    Prop Type Default Description
    devOnly boolean true Only run in NODE_ENV !== 'production'
    overlay boolean true Show the floating UI panel
    console boolean true Also log issues to the browser console
    disableRules string[] [] Rule IDs to skip (see list below)
    onIssues function Callback (issues, score) => void

    Examples

    // Disable the overlay, use console output only
    <SEOAnalyzer overlay={false} />
    
    // Disable specific rules
    <SEOAnalyzer disableRules={['missingStructuredData', 'missingTwitterCard']} />
    
    // Use a callback for custom reporting
    <SEOAnalyzer onIssues={(issues, score) => myReporter.send({ issues, score })} />

    📋 Checks

    🔴 Errors (–15 pts each)

    Rule ID Description
    missingTitle No <title> tag found
    missingDescription No meta description
    missingH1 No <h1> on the page
    imagesWithoutAlt Images missing alt attribute
    missingViewport No viewport meta tag
    robotsNoIndex Page is set to noindex

    🟡 Warnings (–5 pts each)

    Rule ID Description
    titleLength Title outside 30–60 character range
    descriptionLength Description outside 50–160 character range
    multipleH1 More than one <h1> tag
    missingCanonical No canonical link tag
    missingLang No lang attribute on <html>
    missingOgTitle No og:title Open Graph tag
    missingOgDescription No og:description Open Graph tag
    missingOgImage No og:image Open Graph tag
    externalLinksNoRel External links missing rel="noopener noreferrer"
    headingHierarchy Heading levels are skipped

    🔵 Info (–1 pt each)

    Rule ID Description
    missingOgUrl No og:url tag
    missingTwitterCard No twitter:card tag
    missingTwitterTitle No twitter:title tag
    missingStructuredData No JSON-LD structured data
    missingFavicon No favicon link tag

    📊 Scoring

    Your SEO score starts at 100 and points are deducted per issue:

    Errors   → –15 pts each
    Warnings → –5 pts each
    Info     → –1 pt each
    Score Status
    80–100 🟢 Good
    50–79 🟡 Needs work
    0–49 🔴 Critical

    🤝 Contributing

    Contributions are welcome!

    • Fork the repo
    • Create a feature branch
    • Run tests: npm test
    • Submit a PR

    Have a rule idea? Open an issue.


    📄 License

    MIT © Artak Harutyunyan