Наша команда-партнер Artmisto
Простой SEO валидатор с некоторыми встроенными правилами.
Это Node.js модуль доступен через реестр npm , Установка выполняется с использованием Команда установки npm :
$ npm install simple-seo-validator
Сначала мы создадим простой файл example.html для нашего примера.
example.html
<! DOCTYPE html> <html> <head> </ head> <body> <img /> </ body> </ html>
Обратите внимание, что example.html имеет тег img без атрибута alt.
Затем мы можем проверить html-файл example.html с помощью правила (все теги img должны иметь атрибут alt).
index.js
const {logReport} = require ('simple-seo-validator'); const rules = [{Type: 'TagsWithoutAttribute', Tag: 'img', AttributeName: 'alt'}] // Проверьте example.html и зарегистрируйте отчет в консоли. logReport ('example.html', правила); // Есть 1 тег <img> без атрибута alt.
Вы можете использовать следующие типы правил для проверки HTML-файла.
- TagsWithoutAttribute
- TagsNotInHead
- TagsMoreThan
TagsWithoutAttribute
TagsWithoutAttribute может найти количество тегов без определенного атрибута, указав имя тега и имя атрибута.
Если мы хотим проверить, существует ли какой-либо тег img без атрибута alt, мы можем установить следующее правило.
Пример правил:
[{Type: 'TagsWithoutAttribute', Tag: 'img', AttributeName: 'alt'}]
TagsNotInHead
TagsNotInHead может проверить, находится ли тег в заголовке HTML, указав имя тега, имя атрибута и значение атрибута. Если вы не укажете значение атрибута, будут подсчитаны все теги, которые имеют имя атрибута.
Если мы хотим знать:
- находится ли заголовок тега в голове
- и независимо от того, стоит ли метатег с именем атрибута name и описанием значения атрибута, мы можем применить следующие два правила:
Пример правил:
[{Type: 'TagsNotInHead', Tag: 'title'}, {Type: 'TagsNotInHead', Tag: 'meta', AttributeName: 'name', AttributeValue: 'description'}]
TagsMoreThan
TagsMoreThan может проверить, больше ли количество тегов, чем порог, указав имя тега и порог.
Если мы хотим узнать, появляется ли тег h1 более 1 раза, используйте следующее правило.
Пример правил:
[{Type: 'TagsMoreThan', Tag: 'h1', Threshold: 1}]
Если вы хотите проверить следующие условия:
1. Определите, есть ли тег <img /> без атрибута alt 2. Определите, есть ли тег <a /> без атрибута rel 3. В теге <head> i. Определить, если заголовок не имеет тега <title> ii. Определить, если заголовок не имеет тега <meta name = «description» ... /> iii. Определить, если заголовок не имеет тега <meta name = «Keywords» ... /> 4. Определить, есть ли в HTML более 15 тегов <strong> (значение 15 должно настраиваться пользователем) 5. Определить если HTML имеет более одного тега <H1>.
Вы можете установить правила в соответствии с вашими требованиями.
const rules = [{Type: 'TagsWithoutAttribute', Tag: 'img', AttributeName: 'alt'}, {Type: 'TagsWithoutAttribute', Tag: 'a', AttributeName: 'rel'}, {Type: 'TagsNotInHead' , Tag: 'title'}, {Type: 'TagsNotInHead', Tag: 'meta', AttributeName: 'name', AttributeValue: 'description'}, {Type: 'TagsNotInHead', Tag: 'meta', AttributeName: ' name ', AttributeValue:' Keywords '}, {Type: TagsMoreThan, Tag:' strong ', Threshold: 15}, {Type: TagsMoreThan', Tag: 'h1', Threshold: 1},];
Вы можете сохранить отчет в файл, используя функцию writeReport, которая возвращает обещание.
const {writeReport} = require ('../src'); writeReport («example.html», правила, «myReport.txt»). catch (console .log);
Как показано в разделе быстрого запуска, logReport может распечатать отчет в консоли, который возвращает обещание.
logReport ('example.html', правила). catch (err => console .log (err)). catch (console .log);