Хочу искренне поздравить всех коллег SEO-специалистов с нашим праздником!
Я полюбил сеошку сильнее тренерства, которому отдал почти 10 лет. Как будто всю жизнь искал работу «сидит что-то в компьютере ищет».
Здесь море добрых людей, которые сюда попали так же случайно, как и я😄
Мы все разные, но делаем одну важную работу — помогаем людям быстрее находить информацию. Так сказать, фитнес-тренеры не самых стройных сайтов🤪
Я полюбил сеошку сильнее тренерства, которому отдал почти 10 лет. Как будто всю жизнь искал работу «сидит что-то в компьютере ищет».
Здесь море добрых людей, которые сюда попали так же случайно, как и я
Мы все разные, но делаем одну важную работу — помогаем людям быстрее находить информацию. Так сказать, фитнес-тренеры не самых стройных сайтов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Почти год я собираю мини-приложение в телеграм на Nuxt 3 + Vuetify, которое подбирает программы тренировок для тренажёрного зала и считает КБЖУ
Именно из-за этого бота вся разработка по SEO ушла в стол)
Официальный запуск будет к концу лета, а пока можно посмотреть MVP
Please open Telegram to view this post
VIEW IN TELEGRAM
Не знал, что в гугл таблицах можно добавлять скрипты прямо в меню)
Ловите готовый скрипт парсинга title. Как использовать:
1️⃣ Вставляете скрипт в Расширения → Script App и сохраняете
2️⃣ Обновляете таблицу и в верхнем меню появится новый пункт «🔍 Парсер»
3️⃣ Выделяете одну или несколько ячеек в столбце с URL и в меню жмёте «Получить Title»
4️⃣ В соседней ячейке справа появится тайтл
Ловите готовый скрипт парсинга title. Как использовать:
/
* Парсит meta title из URL
* @param {string} url - Адрес сайта
* @returns {string} - Заголовок страницы или сообщение об ошибке
*/
function getMetaTitle(url) {
if (!url) return "No URL";
try {
// Добавляем протокол если отсутствует
const fullUrl = url.includes('://') ? url : 'http://' + url;
const response = UrlFetchApp.fetch(fullUrl, {
muteHttpExceptions: true,
followRedirects: true,
validateHttpsCertificates: false
});
const html = response.getContentText();
const titleMatch = html.match(/<title>([\s\S]*?)<\/title>/i);
if (titleMatch) {
// Заменяем HTML-сущности на символы
let title = titleMatch[1].trim()
.replace(/\s+/g, ' ')
.replace(///g, '/')
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/</g, '<')
.replace(/>/g, '>');
return title;
}
return "Title not found";
} catch (e) {
return `Error: ${e.message}`;
}
}
/
* Запускает парсинг для активной ячейки или диапазона
*/
function parseSelectedUrls() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getActiveRange();
const values = range.getValues();
// Массив для результатов
const results = [];
// Обрабатываем каждую ячейку в выделенном диапазоне
for (let i = 0; i < values.length; i++) {
const row = values[i];
const rowResults = [];
for (let j = 0; j < row.length; j++) {
const url = row[j];
if (url) {
const title = getMetaTitle(url);
rowResults.push(title);
} else {
rowResults.push("");
}
}
results.push(rowResults);
// Пауза между запросами для соблюдения квот
Utilities.sleep(500);
}
// Записываем результаты в соседний столбец
const outputRange = range.offset(0, 1, results.length, results[0].length);
outputRange.setValues(results);
}
/**
* Добавляет меню в таблицу
*/
function onOpen() {
SpreadsheetApp.getUi().createMenu('🔍 Парсер')
.addItem('Получить Title', 'parseSelectedUrls')
.addToUi();
}
Please open Telegram to view this post
VIEW IN TELEGRAM
В SEO пока что на текучке, в разработке всё дальше от Бога
Решил прервать молчание и поделиться чем так занят.
1️⃣ Для своего тг-бота с тренировками сделал контент-план для тг-канала на ~150 постов. Каждый пост классифицировал по рубрикам и ещё нескольким параметрам для какой он ЦА предназначен. Позже по лайкам буду пытаться понять, к каким темам интереса больше и перестраивать план.
Сам контент-план планирую закольцевать: за последним постом будет первый, но в каждом круге нейронка получит задание учитывать уже сказанное и сделать круче.
2️⃣ Почти собрал на контроллере esp32 (на фото он у стаканчика)
автоматизацию для садоводства: датчик температуры и влажности воздуха, влажность почвы, датчик освещенности, мини насос для полива. Жду половину датчиков с Ali Express.
ESP32 по вайфаю отдает значения датчиков в виде json api, мейн-контроллер Orange pi 3B (на фото ниже в прозрачном корпусе) принимает все значения из локальной сети и передает для показа и управления поливом в телеграм-бота.
3️⃣ Начал собирать комплектующие для робота-собаки NovaSM3. Научился управлять серво-приводами с того же Orange PI. Серво-приводы — это моторчики, которые используются как суставы для роботов. На фото снизу 2шт на белом листке бумаги.
Уже готова под 3D-печать первая итерация деталей для робота собаки, но сборка будет идти ещё долго. Приходится вспоминать электромеханику и школьную физику)
В остальном как у всех: генерю тексты и ставлю в топ🤷♀️
Решил прервать молчание и поделиться чем так занят.
Сам контент-план планирую закольцевать: за последним постом будет первый, но в каждом круге нейронка получит задание учитывать уже сказанное и сделать круче.
автоматизацию для садоводства: датчик температуры и влажности воздуха, влажность почвы, датчик освещенности, мини насос для полива. Жду половину датчиков с Ali Express.
ESP32 по вайфаю отдает значения датчиков в виде json api, мейн-контроллер Orange pi 3B (на фото ниже в прозрачном корпусе) принимает все значения из локальной сети и передает для показа и управления поливом в телеграм-бота.
Уже готова под 3D-печать первая итерация деталей для робота собаки, но сборка будет идти ещё долго. Приходится вспоминать электромеханику и школьную физику)
В остальном как у всех: генерю тексты и ставлю в топ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Написал «Промт Склад» — расширение для браузера для хранения промтов с удобной вставкой в чаты правой кнопкой мыши.
Тут нет чужих промтов — плагин для хранения и упорядочивания своих! Качайте, делитесь
Зайдите хотя бы оценку поставить)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
Забыл рассказать про Cursor AI
Я отказался от платной подписки ChatGPT, пересел на бесплатный тариф DeepSeek, который без всяких лимитов может сёрфить в инете и безлимитно ресёрчить.
А всю разработку и автоматизацию делаю полностью через IDE Cursor AI за $20 в месяц.
Так вот, в курсоре крутое обновление: теперь он умеет составлять себе todo и чтобы не случилось в процессе, он держит всегда изначальный план перед глазами.
Я отказался от платной подписки ChatGPT, пересел на бесплатный тариф DeepSeek, который без всяких лимитов может сёрфить в инете и безлимитно ресёрчить.
А всю разработку и автоматизацию делаю полностью через IDE Cursor AI за $20 в месяц.
Так вот, в курсоре крутое обновление: теперь он умеет составлять себе todo и чтобы не случилось в процессе, он держит всегда изначальный план перед глазами.
🔥2
Заканчиваю отпуск) Отдыхал в Питере и Карелии. Пока отдыхал, появились новые идеи для разработки. Наконец-то в сторону SEO.
Хочу сделать одну тулзу для ИИ-агента, о которой расскажу потом.
Почему отдельная тулза и почему именно для агентов? Потому что чаты и километровые промты это 2024 год😉
Сколько не проси нейронку сделать то, что она не умеет, она так и не научится. Файнтюнить под конкретные задачи, имхо, как долбить из пушки по воробью. Остаётся написать рабочий инструмент и дать нейронке.
Подробнее расскажу, как запилю MVP.
P.S. вторым кадром уникальное видео с персональной экскурсией в кабину машиниста Рускеальского экспресса. Это единственный пассажирский поезд на паровой тяге 1953 года выпуска.
Хочу сделать одну тулзу для ИИ-агента, о которой расскажу потом.
Почему отдельная тулза и почему именно для агентов? Потому что чаты и километровые промты это 2024 год
Сколько не проси нейронку сделать то, что она не умеет, она так и не научится. Файнтюнить под конкретные задачи, имхо, как долбить из пушки по воробью. Остаётся написать рабочий инструмент и дать нейронке.
Подробнее расскажу, как запилю MVP.
P.S. вторым кадром уникальное видео с персональной экскурсией в кабину машиниста Рускеальского экспресса. Это единственный пассажирский поезд на паровой тяге 1953 года выпуска.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁1
Исторический момент 🔞
У меня было несколько сайтов на WP на хостинге в течение 3-х лет, на которых я много чего пробовал по SEO, на некоторых даже зарабатывал. Сегодня я попрощался с хостом и не продлил его, сайты упали и больше подняты не будут.
Всё ради VPS😄 Теперь вместо нескольких мёртвых сайтов на WP, у меня несколько тг-ботов, пару telegram mini app и лендосик на любимом Vue.
До сегодня я думал, что сайт как продукт хорошая идея. Теперь SEO лично для меня сильный инструмент продвижения продукта и часть продукта, но менее значимая и менее интересная.
Больше нет желания пробовать что-то для себя в чистом SEO а-ля поднял блог и пытаюсь лить на партнёрку: свободного времени на хороший контент у меня нет, заливать выдачу нейро-калом против личных ценностей.
Я как пользователь почти перестал переходить на сайты, потому что коллеги портят выдачу. Искать ответы стало всё тяжелее. Сейчас словлю хейт, НО: спасибо Яндексу за Алису в выдаче, как пользователя она меня спасает от контент некоторых коллег. Уж простите)
Если кому-то нужен домен ru по тематике крипты, пишите в личку:
🟣 DR 27
🟣 Backlinks 754
🟣 Ref. domains 84
И есть ещё домен почти нулевой по аренде авто в Сочи с небольшим ссылочным.
SEO оч сильно люблю и никуда не собираюсь. Хобби (dev) и работа (seo) для меня не одно и тоже, но крайне важно их переплетать между собой. Это личная формула успеха и поддержания высочайшего уровня интереса к работе.
У меня было несколько сайтов на WP на хостинге в течение 3-х лет, на которых я много чего пробовал по SEO, на некоторых даже зарабатывал. Сегодня я попрощался с хостом и не продлил его, сайты упали и больше подняты не будут.
Всё ради VPS
До сегодня я думал, что сайт как продукт хорошая идея. Теперь SEO лично для меня сильный инструмент продвижения продукта и часть продукта, но менее значимая и менее интересная.
Больше нет желания пробовать что-то для себя в чистом SEO а-ля поднял блог и пытаюсь лить на партнёрку: свободного времени на хороший контент у меня нет, заливать выдачу нейро-калом против личных ценностей.
Я как пользователь почти перестал переходить на сайты, потому что коллеги портят выдачу. Искать ответы стало всё тяжелее. Сейчас словлю хейт, НО: спасибо Яндексу за Алису в выдаче, как пользователя она меня спасает от контент некоторых коллег. Уж простите)
Если кому-то нужен домен ru по тематике крипты, пишите в личку:
И есть ещё домен почти нулевой по аренде авто в Сочи с небольшим ссылочным.
SEO оч сильно люблю и никуда не собираюсь. Хобби (dev) и работа (seo) для меня не одно и тоже, но крайне важно их переплетать между собой. Это личная формула успеха и поддержания высочайшего уровня интереса к работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Чтобы не писать информационку, написал очередной парсер 🖥
Не буду палить нишу, но задача стандартная: увеличить трафик в одном из видов спорта. Информационка и работа с копирайтерами в моём случае это большой расход денег за непонятное качество и трата времени на написание/вычитку. Когда речь про десятки и сотни статей, задача становится невыполнимой в рамках 2-3 недель без потери качества.
Поэтому я посмотрел всю семантику и нашёл неохваченный кластер у пачки спортсменов, который можно закрыть без написания текстов. С помощью статистики, которой у меня нет.
1️⃣ Определил список спортсменов, которые в топе, которые приносили трафик в 2025 и у которых будут выступления до конца года.
2️⃣ Нашёл откуда спарсить данные для всех бойцов.
3️⃣ Написал парсер, который пересобирает спаршенное в html-код для залива в БД.
Так как статистика у спортсменов обновляется, парсер на повторных запусках проверяет данные на изменение в источнике и приносит только те, которые нужно перезалить в базу. То есть парсер актуализирует стату только по факту изменений.
К спаршенной статистике добавил:
1️⃣ Перелинковку на теги по имени
2️⃣ Текстовое описание спаршенной статистики для повышения уникальности. Писал с помощью chatgpt api, куда с промтом скармливал статистику для каждого спортсмена. Юзаю самую недорогую из новых моделей
💎 Итог: 200+ новых страниц с потенциалом несколько десятков тысяч переходов в месяц. Время реализации 1-2 недели вместе с внедрением, потраченный бюджет до $1 на запросы в api chatgpt.
До того, как делать парсер на сотни страниц, само собой протестировал подход вручную на 30 страницах. Спустя полгода решил мастабировать и дописать v2 парсера.
Улучшил подход к созданию проектов:
1️⃣ Все проекты без исключений упаковываю в докер, чтобы иметь возможность передать контейнер или развернуть на любом серваке (выхожу из локальной разработки)
2️⃣ Перестал писать прототипы на python и потом думать надо ли пересаживать проект на JS → делаю сразу на typeScript. Если проекту нужен фронт, то поднимаю Nuxt + Vue в дополнение к Express, вот и весь стек.
Не буду палить нишу, но задача стандартная: увеличить трафик в одном из видов спорта. Информационка и работа с копирайтерами в моём случае это большой расход денег за непонятное качество и трата времени на написание/вычитку. Когда речь про десятки и сотни статей, задача становится невыполнимой в рамках 2-3 недель без потери качества.
Поэтому я посмотрел всю семантику и нашёл неохваченный кластер у пачки спортсменов, который можно закрыть без написания текстов. С помощью статистики, которой у меня нет.
Так как статистика у спортсменов обновляется, парсер на повторных запусках проверяет данные на изменение в источнике и приносит только те, которые нужно перезалить в базу. То есть парсер актуализирует стату только по факту изменений.
К спаршенной статистике добавил:
gpt-4.1-nano
.До того, как делать парсер на сотни страниц, само собой протестировал подход вручную на 30 страницах. Спустя полгода решил мастабировать и дописать v2 парсера.
Улучшил подход к созданию проектов:
Please open Telegram to view this post
VIEW IN TELEGRAM