tgindex
Записки м̶о̶л̶о̶д̶о̶г̶о̶ вебмастера

Записки м̶о̶л̶о̶д̶о̶г̶о̶ вебмастера

Статистика

Данный канал посвящён моему опыту в контентных проектах. Так сказать амбициозный новичок в вебмастерском деле с минимальным бюджетом. Стартуем? Навигация по каналу - https://telegra.ph/Navigaciya-po-kanalu-08-15

Последний пост
5 авг.
Последнее чтение
21:35
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
русский
Категория
Блоги
В каталоге с
13 авг.
Подписчики
982
0 за 3 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
615
20 постов
Вовлечённость
62,6%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
210
1/48двое суток
240
1/72трое суток
259

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • С появлением ИИ я очень плотно с ним начал взаимодействовать, но не на уровне - "эт самое, сделай хорошо, а плохо не делай", а на уровне глубокой проработке запроса с корректировками, с вайбкодингом и тп. И так как статей было сгенерено огромное количество, через разные нейронки, начитанность и считывание нейросетевых паттернов писания у меня огромная. Нет, это не значит что при чтении текста я триггерюсь на длинное тире или кавычки елочки (для всех адептов таких патернов оговорка - крупные медиа в ред политике обязательно используют длинное тире и кавычки елочки, от*#*итесь вы уже от них), я триггерюсь уже на чуть более тонкие моменты, так как сам их регулярно встречаю и правлю. Вот пример - нейронка любит экспрессию, даже если ее об этом не просят. И когда ты работаешь с нейротекстами недавно, то для тебя это офигеть какой крутой речевой оборот и он кажется логичным в контексте написанной статьи, но когда ты работаешь с ИИ долго, это уже выглядит как заклинивание на одном и том же моменте: - "моментальный бан", "сразу же забанят", "улетит в моменте в бан" Все эти словосочетания в том или ином виде из статей про мультиаккаунтинг и антифрод. Нейронка всегда пихает эти обороты в тексты по данной тематике, хотя по факту как таковых моментальных банов там не так чтобы и много, в основном там постепенное ограничение. И вот к чему я это? Да просто, сижу читаю очередную партнерскую статью, за которую заплатили 30к, и понимаю что передо мной нейротворение с такими вот оборотами. И вот что делать? Статья пойдет к нему на сайт, фактически риски минимальны, да... Или нет? Это уже включается специалист, который мог бы поработать над алгоритмами ранжирования Гугла, ведь если статья нейросетевая, Гугл ее может не пустить в выдачу, ее не будет никто читать, а значит клиентов с этой статьи мы не получим, так? А зачем нам статья за 30к? Ради ссылки? Короче вопросики... Вы как считаете, нейротексты, хоть и переработанные человеком могут продаваться по 30к? А по 80к? Я считаю что не могут, но они продаются. Есть уважаемый в своей нише ресурс, который такие статьи продает по 190к (там правда размещение стоит 110, а написание те самые 80) и эти статьи читаются и читаются много (78к прочтений).

  • Ох давненько я ничего не писал тут)) Аж скулы сводит)) Короче, прикольная штука приключилась со мной, начали мне писать в один день владельцы ТГ-каналов, с предложением купить у них рекламу. И так складно у них все выходит, пишут такой мед для моих ушей, что страшно становиться. Писали причем с перерывом в час где то и с одной и той же легендой - сделаем такую рекламу вашего проекта, что вы просто охренеете. Потом один из них меня познакомил меня со своим корефаном, который, вот повезло, тоже канал имеет свой в ТГ. Чувствую что где-то нагреть пытаются, но не могу понять где... Проверяю статистику - там тоже мед, все классно. Но благо добрые люди рассказали про схему одну - закупают ребята каналы по-дешевке, делают сетки, генерят на них тексты, что не отличить от реального человеческого и идут с предложениями. Сами друг друга пиарят, накручивают просмотры, показы комменты - в общем серьезный подход. Ну и с одного канала берут по 600-900 долларов. Ну и математика неплохая получается, 4 канала по 600 баксов, уже 2400 за месяц, а в сетке нифига не 4 канала. В общем, вот такие дела, малята)))

  • видео или голосовое, без подписи

  • Я в последнее время часто работаю с прокси, и обратил внимание, как изменились мобильные прокси. Вот что вы представляете, когда слышите (или видите) это сочетание слов? Я лично, до определённого момента, всегда ассоциировал мобильные прокси с фермой из нескольких мобильных устройств, ведь раньше именно так и поднимали сетку таких проксей. Куча мобильных девайсов, телефоны, модемы, все это мигает, пиликает (да, вот такая странная ассоциация, что сказать). В целом, рынок мобильных прокси на заре своего развития можно было сравнить с сетью автосалонов Бентли в какой-нибудь стране СНГ (они автосалоны вроде бы есть, где-то далеко. Один или два жителя даже заходил туда пару раз... Просто спросить, естественно. Но позволить себе что-то там купить могли далеко не все). Так продолжалось какое то время, пока в 2017 году в первый раз мир проксей не увидел такое явление, как пиринговые сети... Источники могут путаться в цифрах, но период примерно тот. Впервые такие сети стали появляться у крупных сервисов, типа Luminati и Oxylabs (в целом они то и были первыми). Сейчас ситуация сильно изменилась, мобильные прокси встали в один ряд с резидентными, за счет повсеместного внедрения этих самых пиринговых сетей. Пиринговые сети - это когда ip адреса мобильных операторов получают не через собственную мобильную ферму, а напрямую от пользователя, который подключен в сеть при помощи SDK-приложений. Другими словами, на смартфоне стоит игра или приложение, которое шарит ваш трафик провайдеру (вы можете знать об этом или нет, сути это не меняет - вы часть сети). Вот откуда эти бешеные цифры у провайдеров мобильных прокси в несколько миллионов ip-адресов на разные ГЕО. Ведь получить даже тысячу ip на своей ферме - был тот еще квест, а с peer-to-peer сетью это больше не задачка со звёздочкой. В целом технология peer-to-peer ничем не уступает по качеству мобильной ферме, но, как говориться есть нюансы. Провайдер не контролирует устройства, а значит он не может гарантировать скорость, устойчивость и латентность сети. Там все зависит от внешних факторов. Но плюсов тут бесспорно больше - цена снижена, от 80$ за порт мы пришли к 3-5$ за Гб, а ведь есть еще и безлимитные тарифы, от 20$ в месяц. Конечно, вопрос уже в добросовестности провайдера - у некоторых ручки так и чешутся подмешать в пул с мобильными прокси несколько резидентных, что они там выгадывают таким образом большой вопрос, а карму себе (да и просто репутацию) сильно портят. Лекарство тут одно, периодические и систематические проверки от пулов перед запуском их в работу.

  • видео или голосовое, без подписи

  • Какой же трэш, Индусы дорвались до Кворка. Подыскиваю чувака на крауд, и полез на Кворк, а там... Страна чудес - автопереведенные БИО исполнителей из Индустана. Они уже тут Не так я себе представлял импортозамещение, конечно... "Здравствуйте сэр, я экспорт по SEO"

  • видео или голосовое, без подписи

  • Давно я ничего не писал, думаю пора обновить ленту. Я долгое время писал статьи на свой аккаунт Хабр, у меня свои заказчики, для кого я пишу тексты технической и полутехнической направленности, плюс по работе я часто сталкиваюсь с техническими копирайтерами и я знаю, что текст про технологии (что то с кодом, что то про автоматизацию и т.д.) не стоит дешево, авторам неинтересно писать дешево в этой тематике, так как они лучше потратят это время на что-то, что принесет им больше денег. И вот мне интересно почему Хабр, который позиционирует себя как супер крутой продукт так неуважительно относится к своим авторам, авторы, которые пишут ему технические тексты получают от 5 до 15к за проект (а проект это не одна статья может быть). Фактически Хабр берет с рекламодателя минимум 175к за три месяца за корпоративный блог (это самый минимальный тариф, на максимуме там 360к за 3 месяца просто за возможность писать статьи от лица компании), но своим авторам он готов платить не больше 15к😐😐😐 Я не говорю еще про какой-то кодекс, которого придерживаются сотрудники Хабра)) Кто эти технари, которые пишут им технические тексты за 15к (это кстати, верхняя планка, минимум 5к, и что то мне подсказывает платить стараются именно минимум)? Вы бы подвязались под такой проект за 5-15к? Я когда дошел до второго вопроса, где и указана цена, сразу закрыл анкету. Там же еще такой спрос бешеный, что они прям в анкете пишут - может быть, когда нибудь мы с вами свяжемся))) Хабр это не про заработок - это про команду мечты, вероятно))

  • 28 мая 2025 г.7911из sealytics

    Ну, с днём сеошника! 🎉🍾🎊

  • А еще сегодня день пофигиста! - Что? - Что?

  • В комментах под предыдущим постом скинули мне это расширение - https://chromewebstore.google.com/detail/gsc-guardian/aomiehgfjgolamlllgbkjbnfmdmffcch Оно накладывает апы гугла на график в серч консоли, то есть если просто надо посмотреть как себя вёл сайт (один сайт) после и во время апа - нормальный вариант. Но если у вас несколько проектов и надо их сравнивать друг с другом, я все же буду использовать скрипт, который описал выше. Он выводит на один график все проекты, которые туда добавить, но за расширение спасибо, я не знал о нем

  • видео или голосовое, без подписи

  • # Добавляем прямоугольники (vrect) для Google Updates for upd in GOOGLE_UPDATES: if upd['name'] in selected_updates: fig.add_vrect( x0=upd['start'], x1=upd['end'], fillcolor='red', opacity=0.1, layer='below', line_width=0, annotation_text=upd['name'], annotation_position="top left" ) # Добавляем события (вертикальные линии) для выбранных ev for ev in EVENTS: if ev['name'] in selected_events: date_str = pd.to_datetime(ev['date']).strftime('%Y-%m-%d') print(f"Adding event line: {ev['name']} at {date_str}") # Диагностика fig.add_vline( x=date_str, line_color='blue', opacity=1.0, line_width=2, layer='above' ) fig.add_annotation( x=date_str, y=1, xref='x', yref='paper', text=ev['name'], showarrow=True, arrowhead=2, ax=0, ay=-40, font=dict(color='blue', size=12) ) # Настройка осей fig.update_layout( title="GSC Трафик", xaxis_title="Дата", yaxis_title="Значение", legend_title="Сайты и метрики", xaxis=dict( tickmode='linear', tick0=pd.to_datetime(START_DATE), dtick=86400000.0, # один день (в мс) tickformat="%d-%m-%Y", rangeslider=dict(visible=True), ) ) # Если метрик нет => вручную задаём X-ось (иначе range может оказаться [0..1]) if not selected_metrics: print("No metrics selected -> Forcing x-range to START..END") fig.update_xaxes(range=[START_DATE, END_DATE]) # Обработка зума (для Y-оси) if relayoutData: if "xaxis.range[0]" in relayoutData and "xaxis.range[1]" in relayoutData and selected_metrics: x_start = pd.to_datetime(relayoutData["xaxis.range[0]"]) x_end = pd.to_datetime(relayoutData["xaxis.range[1]"]) mask = (filtered_df['date'] >= x_start) & (filtered_df['date'] <= x_end) zoomed_df = filtered_df[mask] if not zoomed_df.empty: y_min = zoomed_df[selected_metrics].min().min() y_max = zoomed_df[selected_metrics].max().max() y_padding = (y_max - y_min) * 0.05 fig.update_yaxes(range=[y_min - y_padding, y_max + y_padding]) # Чтобы при переключении чекбоксов не сбрасывался зум или аннотации fig.update_layout(uirevision='fixed') return fig if __name__ == '__main__': app.run(debug=True) В данном коде необходимо изменить следующее: Строка 14 - вписать ваши домены, которые нужно вывести на графике Строка 19 - указываем период, за который нужны данные (если проектов много, рекомендую не брать слишком большой период - будет долго подгружать) Строка - 25-46 - тут я вписал апы Гугла - вы можете добавить если что то не указано Строка 48 - тут вписываете события, которые хотите видеть на графике (они будут показаны вертикальной линией, как на скрине выше) Строка 84 - название вашего JSON - файла (который расположен в той же папке, что и сам скрипт) Все - вы почти готовы начинать... Устанавливаем зависимости этой командой pip install dash plotly pandas google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client И запускаем скрипт python main.py Когда скрипт запустится вы увидите в терминале, что дашборд доступен по локальному адресу, в моем случае это - http://127.0.0.1:8050 - переходим по этому адресу и работаем с дашбордом Ну и да, новые апы нужно будет добавлять руками уже самостоятельно, а как вы хотели, некоммерческие проекты они такие🤷

  • def fetch_gsc_data(property_uri, start_date, end_date, creds): service = build('searchconsole', 'v1', credentials=creds) body = { 'startDate': start_date, 'endDate': end_date, 'dimensions': ['date'], 'rowLimit': 10000 } response = service.searchanalytics().query(siteUrl=property_uri, body=body).execute() rows = response.get('rows', []) data = [] for r in rows: d = r['keys'][0] data.append({ 'date': d, 'clicks': r.get('clicks', 0), 'impressions': r.get('impressions', 0), 'position': r.get('position', 0) }) df = pd.DataFrame(data) df['date'] = pd.to_datetime(df['date']) return df def load_all_data( start_date=START_DATE, end_date=END_DATE, sites=SITES, creds_file="Название вашего JSON-файла" ): creds = service_account.Credentials.from_service_account_file( creds_file, scopes=["https://www.googleapis.com/auth/webmasters.readonly"] ) all_df = [] for s in sites: df_s = fetch_gsc_data(s, start_date, end_date, creds) df_s['domain'] = s all_df.append(df_s) big_df = pd.concat(all_df, ignore_index=True) return big_df app = dash.Dash(__name__) GLOBAL_DF = None # кешируем загруженные данные app.layout = html.Div([ html.H1("GSC Дашборд - Клики, Показы, Позиция"), html.Div([ html.Label("Выберите сайт(-ы):"), dcc.Checklist( id='site-selector', options=[{'label': site, 'value': site} for site in SITES], value=SITES, inline=True ), ]), html.Div([ html.Label("Метрики:"), dcc.Checklist( id='metric-selector', options=[ {'label': 'Клики', 'value': 'clicks'}, {'label': 'Показы', 'value': 'impressions'}, {'label': 'Позиция', 'value': 'position'}, ], # Если тут пусто, у нас нет рядов данных => ось X может стать [0..1] value=[], inline=True ), ]), html.Div([ html.Label("Показать Google Updates:"), dcc.Checklist( id='updates-toggle', options=[{'label': u['name'], 'value': u['name']} for u in GOOGLE_UPDATES], value=[], inline=True ), ]), html.Div([ html.Label("Показать события:"), dcc.Checklist( id='events-toggle', options=[{'label': e['name'], 'value': e['name']} for e in EVENTS], value=[], inline=True ), ]), dcc.Graph(id='gsc-graph') ]) @app.callback( Output('gsc-graph', 'figure'), [ Input('site-selector', 'value'), Input('metric-selector', 'value'), Input('updates-toggle', 'value'), Input('events-toggle', 'value'), Input('gsc-graph', 'relayoutData') ] ) def update_graph(selected_sites, selected_metrics, selected_updates, selected_events, relayoutData): global GLOBAL_DF if GLOBAL_DF is None: GLOBAL_DF = load_all_data() print("=== CALLBACK ===") print("Selected events: ", selected_events) # Проверяем в консоли, что выбрано fig = go.Figure() # Фильтруем общий DF по выбранным доменам filtered_df = GLOBAL_DF[GLOBAL_DF['domain'].isin(selected_sites)] # Если выбраны метрики, строим линии if selected_metrics: for site in selected_sites: df_site = filtered_df[filtered_df['domain'] == site].sort_values('date') for metric in selected_metrics: fig.add_trace(go.Scatter( x=df_site['date'], y=df_site[metric], mode='lines', name=f"{site} - {metric}" ))

  • Палю годноту - рабочее решение для сопоставления вашего трафика (показов, кликов, позиций) из Серч консоли с апдейтами Гугла Не прям автоматизированное решение, где вся инфа подгружается автоматом, понадобится провести настройку, но все работает в итоге, без мам пап и всяких платных посредников. Настраиваем свой персональный дашбоард у себя на компе, для чего нужно: 1 - Создать проект в Google Cloud Console Переходим на https://console.cloud.google.com/ Создаем новый проект Переходим в APIs & Services → Library Находим и включаем API: Google Search Console API 2. Создать Service Account Переходим в IAM & Admin → Service Accounts Нажимаем Create Service Account и создаем его Далее создаем и скачаем JSON-файл с ключом (credentials.json) Сохраняем этот файл – он понадобится в корне проекта (в той же папке, где будет основной скрипт) Почту из строки client_email необходимо будет добавить в качестве админа в вашей Серч Консоли (для нужного сайта). Далее в той же папке, где у вас лежит JSON-файл создаем файл с расширением .py, я делаю всегда так - main.py import os import json import pandas as pd import plotly.graph_objs as go import dash from dash import dcc, html from datetime import datetime from dash.dependencies import Input, Output from google.oauth2 import service_account from googleapiclient.discovery import build # Ваши константы SITES = [ "sc-domain:Ваш домен", "sc-domain:Ваш домен", ] # Даты, за которые берем данные START_DATE = "2024-01-01" END_DATE = "2025-04-12" # ============================================================ # Обновленный список Google Updates с дополнительными данными # ============================================================ GOOGLE_UPDATES = [ {"name": "March 2025 core update", "start": "2025-03-13", "end": "2025-03-26"}, {"name": "December 2024 spam update", "start": "2024-12-19", "end": "2024-12-26"}, {"name": "December 2024 core update", "start": "2024-12-12", "end": "2024-12-18"}, {"name": "November 2024 core update", "start": "2024-11-11", "end": "2024-12-04"}, {"name": "Ranking is experiencing an ongoing issue (Aug 2024)", "start": "2024-08-15", "end": "2024-08-19"}, {"name": "August 2024 core update", "start": "2024-08-15", "end": "2024-09-03"}, {"name": "June 2024 spam update", "start": "2024-06-20", "end": "2024-06-27"}, {"name": "March 2024 spam update", "start": "2024-03-05", "end": "2024-03-19"}, {"name": "March 2024 core update", "start": "2024-03-05", "end": "2024-04-19"}, {"name": "November 2023 reviews update", "start": "2023-11-08", "end": "2023-12-07"}, {"name": "November 2023 core update", "start": "2023-11-02", "end": "2023-11-27"}, {"name": "October 2023 core update", "start": "2023-10-05", "end": "2023-10-18"}, {"name": "Ranking is experiencing an ongoing issue (Oct 2023)", "start": "2023-10-05", "end": "2023-10-31"}, {"name": "October 2023 spam update", "start": "2023-10-04", "end": "2023-10-19"}, {"name": "September 2023 helpful content update", "start": "2023-09-14", "end": "2023-09-27"}, {"name": "August 2023 core update", "start": "2023-08-22", "end": "2023-09-07"}, {"name": "April 2023 reviews update", "start": "2023-04-12", "end": "2023-04-25"}, {"name": "March 2023 core update", "start": "2023-03-15", "end": "2023-03-28"}, {"name": "February 2023 product reviews update", "start": "2023-02-21", "end": "2023-03-07"}, ] # События на сайте EVENTS = [ {"name": "Ваше событие", "date": "2024-02-12"}, {"name": "Ваше событие", "date": "2024-02-16"}, {"name": "Ваше событие", "date": "2024-02-27"}, {"name": "Ваше событие", "date": "2024-03-20"}, {"name": "Ваше событие", "date": "2024-03-21"}, ]

  • Когда написал статью на Хабре и ждал хороших комментариев, а тебе накидали минусов

  • Накипело в очередной раз, с этим Хабром блин... Почему вот так получается - пишешь статью, ну полная хрень, прям откровенно воняет рекламой, публикуешь скрепя сердцем на Хабре - статья попадает в Топ выдачи, проходит мимо едких и говнокомментаторов и все в целом с ней гуд. Она не портит карму аккаунту, и спокойненько сидит себе в топе. Но вот ты взял интересную тему, разобрался в вопросе (не глубоко, вероятно, но все же), потратил неделю в общей сложности на сбор информации, осознание ее у себя в голове - написал статью, потратил пару часов на оформление, чтоб было не так сухо читать. Налетели говнокоммментаторы и убивают карму своими минусами? Думал короче ты Лев Толстой, а на деле... Ну вы поняли. И нет бы еще че нить дельное писали - а то обзываются, говорят нейротекст и тп. Короче Хабр - сука, сложная штука, а аудитория там еще сложнее..

  • видео или голосовое, без подписи

  • Нашел в интернетах гайд, как настроить у себя на локальном компьютере мощщщщную Нейросеть, чтобы она могла поглощать большие файлы, и не упиралась в лимит строк. Условно, если даешь объемный файл нейросети на анализ в рамках чата, она не сможет обработать больше своего лимита, а вот если настроить через этот гайд - будет есть большие файлы без проблем. Сразу спойлер - на бесплатной версии это особо не помогло. Я скормил ей файд на 1600 строк, она пыхтела, пыхтела.. Пыхтела пыхтела, несколько раз я писал ей продолжай, она продолжала пыхтеть и в конце концов уперлась в ограничение по бесплатным запросам. Результат не было GPT о3 с первого раза смог интерпретировать эти 1600 запросов. Дальше думатйте сами, надо оно вам или нет, но вот гайд по установке такого себе на локаль. работает с Claude 1 - Ставим себе декстопную версию Claude 2 - Ставим Питон (если еще не) 3 - Ставим зависимости, я через VSCode ставил, вот команда powershell -ExecutionPolicy Bypass -c "pip install uv" 4 - Клонируем себе на комп этот репо (Это MCP сервер, на котором и будут обрабатываться большие файлы) 5 - Авторизуемся в Клоде и включаем там режим разработчика (слева вверху меню - Help - Enable Developer Mode) 6 - Открываем настройки (File - Settings - Developer - Edit Config) 7 - Открываем этот файл claude_desktop_config.json блокнотом или любым другим расширением для работы с файлами) 8 - Прописываем в нем такой код: { "mcpServers": { "data_explore": { "command": "uv", "args": [ "--directory", "C:\\Users\\<your-username>\\Documents\\mcp_servers\\mcp-server-data-exploration\\src\\mcp_server_ds", "run", "mcp-server-ds" ] } } } Вот тут - C:\\Users\\<your-username>\\Documents\\mcp_servers\\mcp-server-data-exploration\\src\\mcp_server_ds Нужно будет поменять путь к вашему серверу (тот который мы клонировали из Гитхаба. Обратите внимание - концовка там такая же как у меня (mcp-server-data-exploration\\src\\mcp_server_ds ), а вот начало, ваша папка И еще тонкость - двойные слеши, без них у меня не работает. После этого сохраняете файл и перезагружаете Клода, долен в диалоговом окне появится молоточек слева внизу, если его нет, попробуйте еще перезагрузить, у меня со второго раза сработало. С этой надстройкой Клод ест только CSV файлы (xls не взял), чтобы он смог прочитать файл с вашего компа, в диалоговом окне присылаете ему путь до файла (с именем файла и разрешением, пример - C:\\file.csv и запросом, что нужно с файлом сделать. Разрешаете ему копаться в вашем компе и все. Пользуйтесь, но есть ощущение что нужен платный Клод... Вот оригинал статьи, смотреть с ВПН -

  • видео или голосовое, без подписи

Записки м̶о̶л̶о̶д̶о̶г̶о̶ вебмастера — tgindex