Socket
Socket
Sign inDemoInstall

yoastseo

Package Overview
Dependencies
201
Maintainers
2
Versions
165
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

yoastseo

Yoast clientside page analysis


Version published
Maintainers
2
Weekly downloads
3,955
increased by8.62%

Weekly downloads

Readme

Source

Build Status Code Climate Test Coverage Inline docs

YoastSEO.js

Text analysis and assessment library in JavaScript. This library can generate interesting metrics about a text and assess these metrics to give you an assessment which can be used to improve the text.

Screenshot of the assessment of the given text

Also included is a preview of the Google search results which can be assessed using the library.

Installation

You can install YoastSEO.js using npm:

npm install yoastseo

Or using yarn:

yarn add yoastseo

Usage

You can either use YoastSEO.js using the web worker API or use the internal components directly.

Because a web worker must be a separate script in the browser you first need to create a script for inside the web worker:

import { AnalysisWebWorker } from "yoastseo";

const worker = new AnalysisWebWorker( self );
worker.register();

Then in a different script you have the following code:

import { AnalysisWorkerWrapper, createWorker, Paper } from "yoastseo";

// `url` needs to be the full URL to the script for the browser to know where to load the worker script from.
// This should be the script created by the previous code-snippet.
const url = "https://my-site-url.com/path-to-webworker-script.js"

const worker = new AnalysisWorkerWrapper( createWorker( url ) );

worker.initialize( {
    locale: "en_US",
    contentAnalysisActive: true,
    keywordAnalysisActive: true,
    logLevel: "ERROR",
} ).then( () => {
    // The worker has been configured, we can now analyze a Paper.
    const paper = new Paper( "Text to analyze", {
        keyword: "analyze",
    } );

    return worker.analyze( paper );
} ).then( ( results ) => {
    console.log( 'Analysis results:' );
    console.log( results );
} ).catch( ( error ) => {
    console.error( 'An error occured while analyzing the text:' );
    console.error( error );
} );

Usage of internal components

If you want to have a more barebones API, or are in an environment without access to Web Worker you can use the internal objects:

import { Researcher, Paper } from "yoastseo";

const paper = new Paper( "Text to analyze", {
    keyword: "analyze",
} );
const researcher = new Researcher( paper );

console.log( researcher.getResearch( "wordCountInText" ) );

Note: This is currently a synchronous API, but will become an asynchronous API in the future.

Supported languages

LanguageTransition wordsFlesch reading easePassive voiceSentence beginningsSentence length1Function words2
English
German
Dutch
French
Spanish
Italian
Portuguese
Russian
Catalan
Polish3
Swedish3
Hungarian3
Indonesian3
Arabic3
Hebrew3
Farsi
Turkish3

1 This means the default upper limit of 20 words has been verified for this language, or the upper limit has been changed.

2 These are used for internal linking, insights and keyphrase-related analyses.

3 There is no existing Flesch reading ease formula for these languages.

The following readability assessments are available for all languages:

  • sentence length (with a default upper limit of 20 words, see1 above )
  • paragraph length
  • subheading distribution

Change log

Please see CHANGELOG for more information what has changed recently.

Documentation

The data that will be analyzed by YoastSEO.js can be modified by plugins. Plugins can also add new research and assessments. To find out how to do this, checkout out the customization documentation.

Testing

npm test

Generate coverage using the --coverage flag.

Code style

To test your code style:

grunt check

Testing with Yoast SEO

In the YoastSEO.js directory, run:

npm link

Then, in the Yoast SEO directory, assuming you have a complete development version, run:

npm link yoastseo
grunt build:js && grunt build:css

From that point on you need to re-do grunt build:js && grunt build:css when you make changes to YoastSEO.js. If you want to unlink, simply do:

npm unlink yoastseo

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email security [at] yoast.com instead of using the issue tracker.

Credits

License

We follow the GPL. Please see License file for more information.

Keywords

FAQs

Last updated on 02 Mar 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc