web-reader.wejick.workers.dev
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Используйте для продвижения только домен второго уровня.
Длина домена велика. Но если вы продвигаете запрос, входящий в название домена, то это хорошо.
Ответ сервера
star
star
star
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Безопасность
star
star
star
Сайт небезопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
На сайте не найден защищенный протокол ssl и сайт не открывается по https!
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
Сервер поддерживает HTTP/3 (QUIC) — новейший протокол.
Поздравляем! Сайт не содержится в реестре РКН.
UTF-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице UTF-8.
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
star
star
~0,41сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,41сек оптимальна.
Объем документа
star
star
7Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 7Кб оптимален.
Структура html-документа корректна.
Ресурсы: 2
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 2 достаточно.
Показать полный список ресурсов
| Тип |
Название |
Значение |
|
stylesheet
|
|
/assets/index-hyQmE9Bs.css
|
|
js
|
module
|
/assets/index-YhAcfMUu.js
|
Кол-во: 10
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
полный список серверных заголовков
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Cloudflare
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Cloudflare.
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в одном экземпляре).
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Слова из title 1 встречаются в тексте редко. Добавьте в контент страницы слова из тега <title>!
Абзацев с текстом 4 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Кол-во знаков контента 438 слишком мало. Добавьте больше текста!
Кол-во слов 75 слишком мало. Добавьте больше текста (минимум 400 слов)!
Среднее число слов в абзаце 17 достаточно.
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 1. Это хорошо.
На странице присутствуют заголовки <h3> 4.
Индексирование
star
star
star
Есть ошибки
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице не обнаружено. Велика вероятность, что сайт - одностраничник, такой сайт продвинуть крайне затруднительно!
Robots.txt
star
star
star
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 8052 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Web Reader</title>
<link rel="preconnect" href="https://corsbeater.wejick.workers.dev">
<meta name="theme-color" content="#1a1a1a">
<script type="module" crossorigin src="/assets/index-YhAcfMUu.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-hyQmE9Bs.css">
</head>
<body>
<!-- Top toolbar -->
<header id="toolbar">
<div id="url-row">
<button id="back-btn" class="btn btn-icon" title="Back" disabled><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 12H5"/><path d="M12 19l-7-7 7-7"/></svg></button>
<button id="forward-btn" class="btn btn-icon" title="Forward" disabled><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="M12 5l7 7-7 7"/></svg></button>
<div id="url-input-wrap">
<input id="url-input" type="url" placeholder="https://example.com/article" autocomplete="off" spellcheck="false">
<button id="url-clear-btn" class="url-clear-btn" title="Clear" hidden><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg></button>
<div id="url-suggestions" hidden></div>
</div>
<button id="load-btn" class="btn btn-primary">Go</button>
</div>
</header>
<!-- Main content area -->
<main id="content-area">
<!-- Web view: proxied page rendered in iframe -->
<iframe
id="web-frame"
sandbox="allow-same-origin allow-scripts allow-forms allow-popups"
title="Web content"
></iframe>
<!-- Reader view: clean article extracted by Readability -->
<div id="reader-view" hidden>
<div id="reader-header">
<h1 id="reader-title"></h1>
<p id="reader-byline"></p>
</div>
<div id="reader-content"></div>
</div>
<!-- Empty state shown before any URL is loaded -->
<div id="empty-state">
<div id="empty-icon"><svg width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg></div>
<p>Enter a URL above to get started.</p>
<p class="hint">Then toggle <strong>Reader Mode</strong> and press <strong>Play</strong> to listen.</p>
</div>
</main>
<!-- Settings panel (slides in from right) -->
<aside id="settings-panel" aria-label="Settings" hidden>
<div id="settings-header">
<h2>Settings</h2>
<button id="settings-close" class="btn btn-icon" title="Close settings"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg></button>
</div>
<section class="settings-section">
<h3>TTS Provider</h3>
<label class="field-label">
Provider
<select id="tts-provider">
<option value="openai">OpenAI</option>
<option value="elevenlabs">ElevenLabs</option>
</select>
</label>
<label class="field-label">
Model
<select id="tts-model"></select>
</label>
<label class="field-label">
Voice
<select id="tts-voice"></select>
</label>
</section>
<form class="settings-section" autocomplete="off" onsubmit="return false">
<h3>API Keys</h3>
<p class="settings-note">Keys are stored only in your browser (localStorage).</p>
<label class="field-label">
OpenAI API Key
<input id="openai-key" type="password" placeholder="sk-..." autocomplete="new-password" data-1p-ignore data-lpignore="true">
</label>
<label class="field-label">
ElevenLabs API Key
<input id="elevenlabs-key" type="password" placeholder="..." autocomplete="new-password" data-1p-ignore data-lpignore="true">
</label>
</form>
<section class="settings-section">
<h3>Content Fetching</h3>
<p class="settings-note">
A CORS proxy is required to fetch pages. Leave blank to use the built-in
dev proxy (localhost only) or enter a public proxy URL.
</p>
<label class="field-label">
CORS Proxy URL
<input id="cors-proxy" type="url" placeholder="https://corsproxy.io/?url=" autocomplete="off">
</label>
</section>
<section class="settings-section">
<h3>History</h3>
<button id="clear-history-btn" class="btn btn-danger">Clear browsing history</button>
</section>
<div id="settings-actions">
<button id="settings-save" class="btn btn-primary">Save</button>
</div>
</aside>
<!-- Bottom player bar -->
<div id="player-bar">
<div id="tts-progress-bar" aria-hidden="true">
<div id="tts-progress-fill"></div>
</div>
<div id="player-controls">
<div id="playback-controls">
<button id="stop-btn" class="btn player-btn" style="display: none;" disabled title="Stop">
<span class="icon"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><rect x="4" y="4" width="16" height="16" rx="2"/></svg></span>
</button>
<button id="prev-btn" class="player-btn" disabled title="Previous chunk">
<span class="icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M18 20L8 12l10-8v16z"/><path d="M11 20L1 12l10-8v16z"/></svg></span>
</button>
<button id="play-btn" class="btn player-btn-play" disabled title="Play / Pause">
<span id="play-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"/></svg></span>
</button>
<button id="next-btn" class="player-btn" disabled title="Next chunk">
<span class="icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M6 4l10 8-10 8V4z"/><path d="M13 4l10 8-10 8V4z"/></svg></span>
</button>
</div>
<button id="settings-btn" class="btn player-btn" title="Settings">
<span class="icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg></span>
<span class="player-btn-label">Settings</span>
</button>
<button id="reader-toggle" class="btn player-btn" disabled title="Toggle reader mode">
<span class="icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg></span>
<span class="player-btn-label">Reader</span>
</button>
</div>
</div>
<!-- Hidden audio element for TTS playback -->
<audio id="tts-audio" preload="auto"></audio>
<!-- Toast container -->
<div id="toast-container" aria-live="polite"></div>
</body>
</html>
Конкуренты в Яндексе
star
star
star
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
star
star
star
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.