Проверка SEO, security, social metadata и технического состояния сайта — в одном понятном отчёте.
TARGET public website
ENGINE Node.js
OUTPUT readable diagnostic report
CHECKS SEO / SECURITY / SOCIAL / TECHNICAL
DATABASE not required
WebCheck — небольшой инструмент для быстрой диагностики публичных сайтов.
Вместо огромного отчёта из десятков непонятных метрик он показывает:
- общий балл сайта от
0до100; - отдельные оценки по четырём направлениям;
- что уже настроено правильно;
- что отсутствует;
- что стоит исправить в первую очередь;
- основные технические данные страницы.
Пример:
WEB/CHECK REPORT
OVERALL 84 / 100
SEO 91 / 100
SECURITY 68 / 100
SOCIAL 82 / 100
TECHNICAL 95 / 100
WebCheck не требует базы данных, регистрации пользователей или сложной настройки.
| Проверка | Что означает |
|---|---|
Title |
Есть ли заголовок страницы |
Meta description |
Есть ли описание для поисковой выдачи |
Viewport |
Подготовлен ли сайт для мобильных устройств |
Canonical |
Указана ли основная версия URL |
robots.txt |
Есть ли правила для поисковых роботов |
sitemap.xml |
Есть ли карта сайта |
H1 |
Найден ли основной заголовок страницы |
HTML lang |
Указан ли язык документа |
Charset |
Указана ли кодировка |
WebCheck проверяет базовые security-сигналы:
HTTPS
Content-Security-Policy
Strict-Transport-Security
X-Content-Type-Options
Referrer-Policy
WebCheck не является полноценным сканером уязвимостей и не пытается взламывать или атаковать сайт. Это диагностический инструмент для проверки публично доступных HTTP-данных.
Проверяется готовность страницы к нормальному отображению ссылок в мессенджерах и социальных сетях:
og:titleog:descriptionog:image
WebCheck также показывает:
- HTTP status;
- время первого ответа;
- количество редиректов;
- размер загруженного HTML;
- наличие favicon;
- финальный URL после редиректов.
Нужен только:
Node.js 18 или новее
Проверить установленную версию можно командой:
node -vНапример:
v22.18.0
Если команда node не найдена — сначала установите Node.js.
Скачайте проект и распакуйте папку WebCheck.
Внутри должно быть примерно так:
WebCheck/
├── public/
├── server.js
├── package.json
├── README.md
├── LICENSE
└── .gitignore
Откройте папку проекта.
Нажмите правой кнопкой мыши по пустому месту и выберите:
Открыть в терминале
Либо вручную перейдите в папку через CMD:
cd C:\путь\до\WebCheckЗапустите сервер:
npm startДолжно появиться:
WebCheck v0.2.1 running on http://localhost:3000
Не закрывая терминал, откройте браузер и перейдите:
http://localhost:3000
Готово.
Теперь можно ввести, например:
example.com
или:
https://example.com
и запустить проверку.
Вернитесь в терминал и нажмите:
Ctrl + C
Нет.
На данный момент WebCheck не использует внешние npm-зависимости.
Поэтому после скачивания проекта достаточно:
npm startЭто сделано специально, чтобы проект оставался простым и легко запускался на новом компьютере.
Схема работы:
┌─────────────┐
│ Browser │
└──────┬──────┘
│
│ POST /api/check
▼
┌─────────────┐
│ WebCheck │
│ Node.js │
└──────┬──────┘
│
│ HTTP / HTTPS
▼
┌─────────────┐
│ Target site │
└──────┬──────┘
│
│ HTML + headers
▼
┌─────────────┐
│ Analyzer │
└──────┬──────┘
│
▼
SCORE + CHECKLIST + RECOMMENDATIONS
Почему нужен backend?
Обычная HTML-страница в браузере не может надёжно загружать и анализировать произвольные сторонние сайты из-за ограничений CORS.
Поэтому WebCheck использует небольшой Node.js сервер.
Поскольку пользователь может вводить собственный URL, WebCheck не должен бездумно открывать любой сетевой адрес.
В проект уже встроена базовая защита от SSRF.
WebCheck:
- принимает только
HTTPиHTTPS; - запрещает
localhost; - запрещает приватные IPv4 диапазоны;
- блокирует приватные и link-local IPv6;
- проверяет IPv4-mapped IPv6;
- сначала проверяет DNS;
- подключается именно к проверенному IP;
- заново проверяет каждый redirect;
- ограничивает количество редиректов;
- использует timeout;
- ограничивает размер HTML.
PUBLIC INTERNET ✓
LOCALHOST ✕
192.168.x.x ✕
10.x.x.x ✕
PRIVATE NETWORK ✕
Для большого публичного сервиса всё равно рекомендуется добавить rate limiting, reverse proxy и ограничения на уровне хостинга.
WebCheck/
│
├── public/
│ ├── index.html
│ ├── styles.css
│ ├── app.js
│ └── favicon.svg
│
├── server.js
├── package.json
├── README.md
├── LICENSE
└── .gitignore
Основная разметка интерфейса.
Полностью отвечает за визуальный стиль WebCheck:
- diagnostic-lab интерфейс;
- сетку;
- radar;
- отчёт;
- мобильную адаптацию.
Frontend-логика:
- отправка URL на backend;
- loading screen;
- отображение результатов;
- category score;
- рекомендации;
- копирование отчёта.
Главный backend проекта.
Он:
- принимает URL;
- проверяет адрес;
- получает страницу;
- анализирует HTML и headers;
- проверяет дополнительные URL;
- рассчитывает score;
- возвращает JSON frontend-части.
Создайте новый репозиторий.
Рекомендуемое название:
WebCheck
Описание:
A clean website diagnostics tool for SEO, security, social metadata and technical health.
Если вы загружаете готовую папку WebCheck, не создавайте дополнительно:
- README;
.gitignore;- LICENSE.
Они уже есть в проекте.
После создания репозитория:
- нажмите Add file;
- выберите Upload files;
- перетащите содержимое папки
WebCheck; - дождитесь загрузки;
- нажмите Commit changes.
Важно: загружайте содержимое папки WebCheck, а не ZIP-архив как единственный файл.
После загрузки структура на GitHub должна выглядеть примерно так:
public/
server.js
package.json
README.md
LICENSE
.gitignore
Откройте терминал внутри папки WebCheck:
git init
git add .
git commit -m "Initial WebCheck release"
git branch -M main
git remote add origin YOUR_REPOSITORY_URL
git push -u origin mainГде:
YOUR_REPOSITORY_URL
нужно заменить на URL созданного репозитория.
Полная версия WebCheck не будет работать только на GitHub Pages.
Причина:
GitHub Pages = static hosting
WebCheck = frontend + Node.js backend
На GitHub Pages можно разместить только внешний интерфейс, но функция:
POST /api/check
работать не будет.
Для полноценной онлайн-версии понадобится сервер или хостинг с поддержкой Node.js.
При этом сам исходный код проекта можно и нужно хранить на GitHub.
Для обычного запуска:
npm startДля автоматического перезапуска сервера после изменений:
npm run devnpm run dev использует встроенный режим node --watch.
Страница не открывается
Проверьте, что терминал всё ещё запущен и в нём есть:
WebCheck v0.2.1 running on http://localhost:3000
Затем откройте именно:
http://localhost:3000
Команда npm не найдена
Скорее всего Node.js не установлен или терминал был открыт до установки Node.js.
Проверьте:
node -v
npm -vПри необходимости перезапустите терминал.
Старый дизайн после обновления
В браузере нажмите:
Ctrl + F5
Это принудительно обновит CSS и JavaScript без старого кэша.
Сайт не проверяется
WebCheck работает только с публично доступными сайтами.
Локальные адреса и приватные сети блокируются специально:
localhost
127.0.0.1
192.168.x.x
10.x.x.x
Также целевой сервер может блокировать автоматические HTTP-запросы.
Порт 3000 уже занят
Можно запустить WebCheck на другом порту.
set PORT=8080 && npm startПосле этого откройте:
http://localhost:8080
$env:PORT=8080
npm startWebCheck использует один основной endpoint:
POST /api/checkПример тела:
{
"url": "https://example.com"
}Пример упрощённого ответа:
{
"host": "example.com",
"score": 84,
"categoryScores": {
"seo": 91,
"security": 68,
"social": 82,
"technical": 95
}
}WebCheck v0.2.1 — это быстрый диагностический инструмент.
Он пока не выполняет:
- JavaScript rendering страницы;
- Lighthouse audit;
- Core Web Vitals из реальных пользователей;
- глубокое сканирование всего сайта;
- проверку всех внутренних ссылок;
- поиск уязвимостей;
- анализ JavaScript bundle;
- полноценный accessibility audit.
Большая часть текущих проверок выполняется по HTML и HTTP headers главной страницы.
[ ] OpenGraph visual preview
[ ] Twitter / X card diagnostics
[ ] Broken links scanner
[ ] Lighthouse integration
[ ] Core Web Vitals
[ ] Better HTML parser
[ ] JSON report export
[ ] PDF report export
[ ] Scan history
[ ] Shareable report
[ ] Rate limiting
[ ] Docker image
WebCheck строится вокруг трёх принципов:
Результат должен быть понятен без чтения документации по SEO.
Проверка не должна превращаться в тяжёлый аудит на несколько минут.
Если WebCheck показывает проблему — пользователь должен понимать, что с ней делать.
Проект распространяется по лицензии MIT.
Полный текст находится в:
LICENSE
WEB/CHECK
SCAN → UNDERSTAND → IMPROVE
Built as an independent CayPlayProjects experiment.