Техническое SEO быстро превращается в рутину, если каждый раз открывать одни и те же панели вручную. Хороший старт - вынести повторяемые проверки в небольшой сервис: собрать URL, запросить данные, нормализовать ответы и отдать список задач.
URL-список
API и парсинг
Правила
Задачи
Минимальный TypeScript-скелет может выглядеть так:
type AuditResult = {
url: string;
status: "ok" | "warning" | "critical";
issues: string[];
};
export async function auditPage(url: string): Promise<AuditResult> {
const response = await fetch(url, { redirect: "follow" });
const html = await response.text();
const issues = [];
if (!html.includes("<title>")) {
issues.push("Нет title");
}
if (!html.includes('name="description"')) {
issues.push("Нет meta description");
}
return {
url,
status: issues.length > 0 ? "warning" : "ok",
issues
};
}
Дальше этот слой легко расширять: добавить PageSpeed API, данные из Search Console, статусы индексации, проверку canonical, hreflang и sitemap.
Что важно для поисковых систем
Автоматизация не заменяет стратегию, но помогает не пропускать базовые проблемы:
- индексируемость страниц;
- корректные коды ответа;
- уникальные title и description;
- открытые для обхода CSS и JavaScript;
- быстрый ответ сервера и стабильная верстка.
Главное - хранить результаты в истории. Тогда видно не только текущее состояние, но и момент, когда метрика начала проседать.