Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

seord

Package Overview
Dependencies
Maintainers
0
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

seord

Advanced SEO Analyzer

  • 0.0.5-patch.5
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
300
increased by20%
Maintainers
0
Weekly downloads
 
Created
Source

SEO Analyzer - SEOrd

SEOrd (pronounced "sword") is an advanced content SEO Analyzer library that allows you to perform a rapid SEO analysis on your rich text-ed content. SEOrd helps check the SEO friendliness of a website by looking at different factors such as keyword density, meta description, and link analysis (internal and external link).

I created this library because I had a hard time finding a good SEO analyzer library that can be used in Node.js. I hope this library will help you as well.

Note: This library analyzes the SEO of the given content on the basis of the standard on-page SEO rules. This library is just a tool to help you improve your SEO score or use it as a reference or a supplement to your webapps.

Install

npm i seord

Features

  • Keyword Density and Frequency Analysis
  • Sub Keywords Density Analysis
  • SEO Messages: Get warnings and good points related to SEO.
  • Checks for Internal and Outbound Links
  • Checks for Duplicate Links and Unique Links; both Internal and Outbound
  • Checks for Keyword Placement within a given question
  • SEO Score Analysis
  • Keyword SEO Score
  • Word Count Analysis
  • Checks for meta description length, placement, keyword density, and keyword frequency
  • Headings Analysis (H1, H2, H3, H4, H5, H6) on the basis of keyword and sub keywords, their density, and usage

Usage

First, require the library at the top of your file like so:

import {SeoCheck} from "seord";

Next, you will need to set up the ContentJson and domain name before performing an SEO analysis. Here's an example:

import {SeoCheck} from "seord";
const htmlContent = `<h1>Does Progressive Raise Your Rates After 6 Months?</h1><p>When it comes to car insurance, 
finding the right provider...
`
const contentJson = {
    title: 'Does Progressive raise your rates after 6 months?',
    htmlText: htmlContent,
    keyword: 'progressive',
    subKeywords: ['car insurance', 'rates', 'premiums', 'save money', 'US'],
    metaDescription: 'Find out if Progressive raises your rates after 6 months and what factors can impact your insurance premiums. Learn how to save money on car insurance in the US.',
    languageCode: 'en',
    countryCode: 'us'
};

// Initialize SeoCheck with html content, main keyword and sub keywords
const seoCheck = new SeoCheck(contentJson, 'liveinabroad.com');

// Perform analysis
const result = seoCheck.analyzeSeo();
// Print the result
console.log(`Warnings: ${result.messages.warnings.length}`);
result.messages.warnings.forEach((warning) => {
    console.log(`  - ${warning}`);
});

console.log(`\nGood Points: ${result.messages.goodPoints.length}`);
result.messages.goodPoints.forEach((error) => {
    console.log(`  - ${error}`);
});


console.log(`\nMinor Warnings: ${result.messages.minorWarnings.length}`);
result.messages.minorWarnings.forEach((error) => {
    console.log(`  - ${error}`);
});

console.log("\nSEO Score: " + result.seoScore);
console.log(`Keyword SEO Score: ${result.keywordSeoScore}`);
console.log(`Keyword Density: ${result.keywordDensity}`);
console.log(`Sub Keyword Density: ${result.subKeywordDensity.map((subKeywordDensity) => {
    return `(${subKeywordDensity.keyword} ${subKeywordDensity.density})`;
})}`);
console.log(`Keyword Frequency: ${result.keywordFrequency}`);
console.log(`Word Count: ${result.wordCount}`);
console.log(`Total Links: ${result.totalLinks}`);

I am using the readFile function from the fs module to read the HTML content from a file. You can use any method to get the HTML content, or you can just pass the HTML content directly as string.

The result of the above example will be:

Warnings: 7
  - The density of sub keyword "car insurance" is too high in the content, i.e. 2.37%.
  - The density of sub keyword "rates" is too high in the content, i.e. 4.18%.
  - The density of sub keyword "premiums" is too high in the content, i.e. 1.39%.
  - The density of sub keyword "us" is too high in the content, i.e. 1.39%.
  - Not enough internal links. You only have 1 unique internal links, try increasing it.
  - Not enough outbound links. You only have 0, try increasing it.
  - Meta description is too long. It is 161 characters long, try reducing it.

Good Points: 25
  - Good, your content has a keyword "progressive".
  - Keyword density is 1.39%.
  - Good, your content has sub keywords "car insurance, rates, premiums, save money, us".
  - The density of sub keyword "save money" is 0.56% in the content, which is good.
  - Title tag is 49 characters long.
  - Keyword density in title is 12.50%, which is good.
  - You have 5 sub keywords in title.
  - No duplicate internal links.
  - No duplicate outbound links.
  - The density of sub keyword "car insurance" in meta description is 3.45%.
  - The density of sub keyword "rates" in meta description is 3.45%.
  - The density of sub keyword "premiums" in meta description is 3.45%.
  - The density of sub keyword "save money" in meta description is 3.45%.
  - The density of sub keyword "us" in meta description is 3.45%.
  - Keyword "progressive" found in H1 tag "does progressive raise your rates after 6 months?".
  - Sub keyword "car insurance" found in H3 tag "2. How can I
    lower my Progressive car insurance rates?", which is good.
  - Sub keyword "rates" found in H3 tag "2. How can I
    lower my Progressive car insurance rates?", which is good.
  - Sub keyword "car insurance" found in H3 tag "3. Can I switch car insurance providers if my rates increase?", which is good.
  - Sub keyword "rates" found in H3 tag "3. Can I switch car insurance providers if my rates increase?", which is good.
  - Sub keyword "us" found in H2 tag "Conclusion", which is good.
  - Sub keyword "rates" found in H1 tag "does progressive raise your rates after 6 months?", which is good.
  - You have 9 this.headings.
  - Nice. You have h1 tag, which is essential.
  - Nice. You have h2 tag, which is essential.
  - You have h3 tag, which is good.

Minor Warnings: 48
  - Meta description does not start with keyword. It starts with "find out if progress", try starting with keyword. Not starting with keyword is not a big issue, but it is recommended to start with keyword.
  - Keyword "progressive" not found in H2 tag "How Are Car Insurance Rates Determined?".
  - Keyword "progressive" not found in H2 tag "Does Progressive Raise Your Rates?".
  - Keyword "progressive" not found in H3 tag "How to Save Money on Car Insurance in
    the US".
  - Keyword "progressive" not found in H2 tag "Frequently Asked Questions".
  - Keyword "progressive" not found in H3 tag "1. Does Progressive offer accident forgiveness?".
  - Keyword "progressive" not found in H3 tag "2. How can I
    lower my Progressive car insurance rates?".
  - Keyword "progressive" not found in H3 tag "3. Can I switch car insurance providers if my rates increase?".
  - Keyword "progressive" not found in H2 tag "Conclusion".
  - Sub keyword "car insurance" not found in H2 tag "How Are Car Insurance Rates Determined?".
  - Sub keyword "rates" not found in H2 tag "How Are Car Insurance Rates Determined?".
  - Sub keyword "premiums" not found in H2 tag "How Are Car Insurance Rates Determined?".
  - Sub keyword "save money" not found in H2 tag "How Are Car Insurance Rates Determined?".
  - Sub keyword "us" not found in H2 tag "How Are Car Insurance Rates Determined?".
  - Sub keyword "car insurance" not found in H2 tag "Does Progressive Raise Your Rates?".
  - Sub keyword "rates" not found in H2 tag "Does Progressive Raise Your Rates?".
  - Sub keyword "premiums" not found in H2 tag "Does Progressive Raise Your Rates?".
  - Sub keyword "save money" not found in H2 tag "Does Progressive Raise Your Rates?".
  - Sub keyword "us" not found in H2 tag "Does Progressive Raise Your Rates?".
  - Sub keyword "car insurance" not found in H3 tag "How to Save Money on Car Insurance in
    the US".
  - Sub keyword "rates" not found in H3 tag "How to Save Money on Car Insurance in
    the US".
  - Sub keyword "premiums" not found in H3 tag "How to Save Money on Car Insurance in
    the US".
  - Sub keyword "save money" not found in H3 tag "How to Save Money on Car Insurance in
    the US".
  - Sub keyword "us" not found in H3 tag "How to Save Money on Car Insurance in
    the US".
  - Sub keyword "car insurance" not found in H2 tag "Frequently Asked Questions".
  - Sub keyword "rates" not found in H2 tag "Frequently Asked Questions".
  - Sub keyword "premiums" not found in H2 tag "Frequently Asked Questions".
  - Sub keyword "save money" not found in H2 tag "Frequently Asked Questions".
  - Sub keyword "us" not found in H2 tag "Frequently Asked Questions".
  - Sub keyword "car insurance" not found in H3 tag "1. Does Progressive offer accident forgiveness?".
  - Sub keyword "rates" not found in H3 tag "1. Does Progressive offer accident forgiveness?".
  - Sub keyword "premiums" not found in H3 tag "1. Does Progressive offer accident forgiveness?".
  - Sub keyword "save money" not found in H3 tag "1. Does Progressive offer accident forgiveness?".
  - Sub keyword "us" not found in H3 tag "1. Does Progressive offer accident forgiveness?".
  - Sub keyword "premiums" not found in H3 tag "2. How can I
    lower my Progressive car insurance rates?".
  - Sub keyword "save money" not found in H3 tag "2. How can I
    lower my Progressive car insurance rates?".
  - Sub keyword "us" not found in H3 tag "2. How can I
    lower my Progressive car insurance rates?".
  - Sub keyword "premiums" not found in H3 tag "3. Can I switch car insurance providers if my rates increase?".
  - Sub keyword "save money" not found in H3 tag "3. Can I switch car insurance providers if my rates increase?".
  - Sub keyword "us" not found in H3 tag "3. Can I switch car insurance providers if my rates increase?".
  - Sub keyword "car insurance" not found in H2 tag "Conclusion".
  - Sub keyword "rates" not found in H2 tag "Conclusion".
  - Sub keyword "premiums" not found in H2 tag "Conclusion".
  - Sub keyword "save money" not found in H2 tag "Conclusion".
  - Sub keyword "car insurance" not found in H1 tag "does progressive raise your rates after 6 months?".
  - Sub keyword "premiums" not found in H1 tag "does progressive raise your rates after 6 months?".
  - Sub keyword "save money" not found in H1 tag "does progressive raise your rates after 6 months?".
  - Sub keyword "us" not found in H1 tag "does progressive raise your rates after 6 months?".

SEO Score: 78.125
Keyword SEO Score: 100
Keyword Density: 1.392757660167131
Sub Keyword Density: (car insurance 2.3676880222841223),(rates 4.178272980501393),(premiums 1.392757660167131),(save money 0.5571030640668524),(us 1.392757660167131)
Keyword Frequency: 10
Word Count: 718
Total Links: 1

The data returned by the analyzeSeo function is in the following format:

import type {KeywordDensity, LinksGroup} from "seord";

interface SeoData {
    seoScore: number,
    wordCount: number,
    keywordSeoScore: number,
    keywordFrequency: number,
    messages: { warnings: string[], goodPoints: string[], minorWarnings: string[] },
    keywordDensity: number,
    subKeywordDensity: KeywordDensity[],
    totalLinks: number,
    internalLinks: LinksGroup,
    outboundLinks: LinksGroup,
    titleSEO: {
        subKeywordsWithTitle: KeywordDensity[],
        keywordWithTitle: KeywordDensity,
        wordCount: number
    }
}

You do not need TypeScript to use this library. The above is just to show the data structure.

Issue Reporting

If you have found a bug or if you have a feature request, please report them at this repository issues section.

Contributing

Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.

License

This project is licensed under the MIT license. Please see the LICENSE file for more information.

Note: This library is still in development. I will be adding more features in the future. If you have any suggestions, please let me know.

Please note that this library is not affiliated with Google or any other search engine.

It does not guarantee the SEO score calculated by this library will be the same as the SEO score calculated by Google or any other search engine.

Keywords

FAQs

Package last updated on 08 Jul 2024

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc