1.0.2 • Published 5 years ago

node-seo-validator v1.0.2

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

node-seo-validator

SEO validator for static html file.

Installation

yarn add node-seo-validator
# or
npm install --save node-seo-validator

Test

yarn test
# or
npm test

Usage

seo(htmlFilePath, outputLogPath, applyRules)

Parameters

  • htmlFilePath: Static html file input
  • outputLogPath: Log path for output validation result
  • applyRules: SEO rule names in array, these rule name should be configured in src/rules.js

Currently, there are 6 Pre-defined SEO Rules in this package.

IMG_ALT, HTML_A, HEADER_TITLE, HEADER_META, STRONG, H1

// test.js
const seo = require('node-seo-validator')

const applyRules = [
  'IMG_ALT',
  'HTML_A',
  'HEADER_TITLE',
  'HEADER_META',
  'STRONG',
  'H1'
]

seo('./index.html', './seo.log', applyRules)

Output

$ node test.js
Output file: ./seo.log
┌──────────────┬───────────────────────────────────────────────────┐
│ Rule Name    │ Validate Result                                   │
├──────────────┼───────────────────────────────────────────────────┤
│ IMG_ALT      │ There are 27 <img> tag without attribute: alt     │
├──────────────┼───────────────────────────────────────────────────┤
│ HTML_A       │ There are 856 <a> tag without attribute: rel      │
├──────────────┼───────────────────────────────────────────────────┤
│ HEADER_TITLE │ Good                                              │
├──────────────┼───────────────────────────────────────────────────┤
│ HEADER_META  │ This HTML does not contain <meta name="keywords"> │
├──────────────┼───────────────────────────────────────────────────┤
│ STRONG       │ Good                                              │
├──────────────┼───────────────────────────────────────────────────┤
│ H1           │ Good                                              │
└──────────────┴───────────────────────────────────────────────────┘

Rule Configuration

You can define your SEO rules in src/rules.js

/* 
   New rule to validate if
     <meta name="robots" />
   has been defined in <head>
*/
const HEADER_META_ROBOTS = {
  scope: 'head',
  tag: 'meta',
  upperBound: null,
  lowerBound: null,
  attribute: [
    { name: 'name', value: 'robots', type: 'one' }
  ]
}
KeyDescriptionSample Value
scopeValidate elements which are under this scopehead
tagWhich element you want to validatemeta
upperBoundSet upper bound limit to this tag Set null to ignore this rule10
lowerBoundSet lower bound limit to this tag Set null to ignore this rule10
attributeArray of attribute rule object Set [] to ignore this rule[{ name: 'name', value: 'description', type: 'one' }]

Attribute Rule Object

KeyDescriptionSample Value
nameDefined the attribute name to validatehref
valueDefined the value of this attribute to validate Set null to ignore this rulehttps://github.com/
typeDefine this name/value rule should appear in at least one element or every elementsone or every

Pre-defined SEO Rules

There are some pre-defined rule in this package.

1. IMG_ALT

Detect if any <img /> tag without alt attribute.

2. HTML_A

Detect if any <a /> tag without rel attribute.

3. HEADER_TITLE

In <head> tag, Detect if header doesn’t have <title> tag.

4. HEADER_META

In <head> tag, Detect if header doesn’t have <meta name="descriptions" ... /> and <meta name="keywords" ... /> tag.

5. STRONG

Detect if there are more than 15 <strong> tag in HTML.

6. H1

Detect if a HTML have more than one <H1> tag.

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago