Информационный предикат:
Господа, рад вас всех приветствовать внутри данного треда.
Как многие уже могли догадаться, данный пост лежит в плоскости материалов по black seo и является естественным продолжением цикла статей :
Black SEO - [ Не для чайников ]
А раз так, данный материал необходимо изучить вкупе с ранее опубликованными постами.
И да, сегодня - мы будем говорить о манипуляциях основными факторами ранжирования в поисковых системах, или о том - как добывать трафик внутри серча с применением не совсем этичных методов поискового продвижения.
Прежде чем мы начнем, хочу акцентировать ваше внимание на том, что продукт который мы дропнем в конце статьи - является базой нашего сео комбаина, тем самым фундаментом на котором построены все прочие инструменты влияния - на результаты поиска, в краткосрочной перспективе.
Исходя из специфики нашего форума, я выбрал одну из самых понятных ниш в качестве объекта исследований - и речь идет о download
Пару слов от автора:
Part III : Доры - Генерируем тонны контента
и фармим своего домашнего веб-краулера гугла в промышленных масштабах на базе динамического доргена
Исходный код доргена - лежит ниже
На сейчас - нас интересуют основные факторы ранжирования в поисковых системах.
Этих факторов - бесчисленное множество, но в целом, их можно обобщить - тремя основными категориями.
1 категория: Внутренние факторы | То что нас интересует - сейчас
Из этой группы выделяем:
1. техничкe сайта ( оптимизация загрузки, семантическая верстка, микродата и т.д )
2. контент сайта
3. индексация
Из выше названных факторов, вытекают три ключевых вопроса:
А. Как быстро генерировать сайты с техничкой под сео?
Что-бы что-то продвигать, нам нужно создать посадочные страницы/сайты
А лучше 100 страниц и на разных сайтах с учетом всех рекомендаций ПС по техничке.
Нужна в большом кол-ве обусловлены абсолютно разным причинам, но мы берем за марту концепт [ бери больше - кидай дальше ]
Это касается всего, начиная от тестов, заканчивая ссылочным, но сейчас не об этом
Так вот, один из таких концептов - есть дорвеи, о некоторые о вас слышали и много
Ниже дашборд одного из таких доргенов, который скоро попадет в ваши руки
Внутри этой панельки у нас с вами генерируются куча говно сайтов...
В свое время,прошуршав сотни страниц связанных с автоматизацией процессов сайтостроения - мы нашли информацию по дорвеям и начили копать эту тему
Кратко о дорах: https://ru.wikipedia.org/wiki/Дорвей
Почему именно дорвеи?
Ответ:Технологии используемые в строительстве дорвеев - полностью закрывают наши потребности в области массового поднятия/разворачивая/создания сайтов
и наполнение их контентом в промышленных масштабах.
Сам по себе дор - по сути уникальный феномен в области информационного поиска. Концепт доров лежит в плоскости манипуляций с контентными/текстовыми факторами ранжирования
Где подход "TF-IDF" возведен в абсолют в обход понятия IDF, иначе говоря: мы спамим выдачу сотнями тысяч страниц по необходимым нам ключам сформированных за счет переоптимизированного контента.
И нам абсолютно наплевать на информационную ценность контента внутри наших сайтов.
На 2022-2023 год, доры спокойно можно было найти при анализе поисковой выдачи по необходимым нам запросам в нужных нам гео
Давайте освежим память и посмотрим как выглядит непосресдтвенно сам дор
Если кто забыл как выглядит классический дор, выглядит он вот так вот
Дор может выглядеть иначе, во внутряк можно подгрузить свой шаблон и он будет выглядеть поинтересней чем просто html страница с текстом и ссылками
Можно сформировать какие-то сквозняки внутри подгружаемого шаблона, например в футере или развернуть зону дополнительного контента в ввиде сайтбара
Вариантов масса, так или иначе - это есть основа генерации веб.страниц.
Для сравнения, давайте посмотрим дор 2025года ( чтобы было что сопостовлять )
По ходу изучения классических дорвеев, мы выясняем что основу веб-документа составляют сниппеты с выдачи гугла/бинга по ключу из title
Специфика дорвейного трафика подразумевает создание сотен тысяч/миллионов страниц подобным выше, которые попадая в индекс в моменте/после пинга - получают как-то первый траф по нч/сч ключам
Далее все эти страницы переправляют пользователей на какую-то стороннюю страницу с оффером
Работает все это дерьмо за счет клоакинга
Где мы клоачим сгенерированные страницы на сниппетах и подменяем контент пользователю, в то время - как гугл бот, продолжает ходить по дору и сканировать все новые и новые страницы.
Принимая специфику дорвейного трафика, мы располагаем идеей, что пользователь придет с рандомного ключа из миллиона прочих расположенных внутри семантического ядра
Естественно ядро у нас тематическое, на нашем примере - где у нас есть миллионы страниц связанных с драйверами под все известные программы
- хорошим вариантом посадочной страницы будет: Driver booster
Пример посадочной: https://driver-booster-free.en.softonic.com/
Статистика трафика на подобного рода посадочные страницы с ahrefs на запусках
На сегодня, для подобных свечей одного доргена не достаточно, но его технологии - лежат в основании
Реализация:
Сам технический концепт дорвея укладывается в простых понятиях, отобразить случайные ключи и снипеты, сохранить статистику, отправить редирект если нужно. Но как мы знаем дьявол кроется в деталях. Основная проблема кроется в нагрузках и обработки 50 миллионов ботов в сутки.
Первая проблема с которой можно столкнуться при масштабировании это запросы к базе данных, нужно записать статистику для каждого посещения в формате записи на каждый домен каждый час, и если у нас 1000 запросов в секунду на сервер, то стандартные подходы не подойдут.
В следствии решения этой проблемы мы пришли к записи в очередь каждого посещения через брокер сообщений, с последующей пакетной обработкой и записью в таблицу статистики агрегированых данных. Для больших объемов статистики отлично подходит ClickHouse который позволяет записывать и самостоятельно агрегировать данными.
Важно использовать кэширование самых часто используемых данных. Для мониторинга и аналитики приложения мы использования отличную утилиту newrelic, который встраивается в php либой и собирает телеметрию.
С записью статистики при масштабировании разобрались, но у нас еще есть сам сервис который отдает данные. При повышении посещений растут и чтения из базы, нашим решением было вынести базу на отдельный сервер, сделать локальную репликацию с на сервере с php, и разделить master и slave с разограничением на разные чтения и записи, такой способ помог преодолеть рубеж в 30 миллионов суточных запросов на сервер.
Планы на будущее:
Интегрировать кликхаус для аналитики, реализовать кластер k8s для масштабирования и отказоустойчивости приложения
Обсенности системы:
- Система способна выдержать миллионы переходов за счет кэширвоание и пакетной вставки статистики
- Обновление статистики происходит после набора 100 переходов ботов или редиректов
- Поиск таблиц баз снипетов происходит по названию db_
- Добавление новых вайтов и блеков возможно через создания файлов в папке
/views/template/files
Далее руками добавляются путь до файлов modules/panel/views/project_form на 102 строчке
Далее блек можно выбрать в панели для отображения пользователям, так же и с вайтом можно выбрать другой по такому же принципу, либо оставить редирект как сейчас по умолчанию
- Загрузка баз происходит через phpmyadmin либо консоль
- Рекомендация использовать прокси сервер абузоустойчивый перед дорген сервером
- Для проверки отображения вайта в настройках проектах есть включение дебага по IP адресу. После включения будут отобрежны дебаг информация при переходах
- Утилита CF имеет возможность добавления ваших доменов и привязки к серверу по API, сами аккаунты указываются в отдельной вкладке и хранятся в БД
- Статистика редиректов может показывать некорректные цифры ограничения переходов из-за обновления каждые 100 сообщений
- Проект располагает к полной кастомизации доработок, имея хорошую базу под большое количество запросов
- Для PROD настройки рекомендую не использовать Docker, а реализовать нативную настройку
- Для опытных системных администраторов есть возможность все это завернуть в кластер K8s
- Для разворачивания проекта нужно в папке проекта выполнить команду docker-compose up -d (при условии установленном docker в системе). В проекте есть readme описывающий процесс разворачивания и информацию о проекте
Исходный код доргена : https://github.com/nylisaalisa44/Dorgen
Под сгененированные сайт нам потребуется куча тексто-релевантного контента для наполнения страниц ( сайтов )
Необходимый пресет для A-Parser .txt
Подгружаем...
Внутри доргена уже лежит база под download en |
Далее подгружаем JavaScript.txt
Запускаем задание под сбор базы
Естественно предварительно надо собрать базу ключей и подрубить прокси, с прокси разберетесь, ключи я думаю итак все знают как собирать, и все же покажу
Собираем список доноров по тематике, если речь идет о download - дергаем ключи с сайтов подобному https://www.uptodown.com
https://ahrefs.com - сервис веб-аналитики
Формирует общий документ из выгруженных .csv файлов
Консоль - путь - copy *.csv all.csv
Запуливаем получившийся документ в Penguin Keywords Tools/
Чистим от дубликатов и добавляем в исключение - список стоп слов
https://x-parser.ru/software/9-penguin-keywords-tools.html - софт по работе с семантикой
Выгружаем файл в .txt и отправляем его в апарсер
Предварительно ставим все необходимые пресеты
Запускаем а-парсер, на выходе он нам выплюнет файлы в sql
Заливаем базу на сервер, запускаем доры
C. Как быстро проиндексировать все ново-созданные страницы/сайты?
Далее все эти страницы ( сайты ) необходимо как-то быстро запулить в индекс и получить трафик
__________________________________________________________________________________
2 категория: Внешние факторы | То что нас интересует в перспективе
Все что касается нездорового линкбилдинга
__________________________________________________________________________________
3 категория: Поведенческие факторы | То что нас интересует в перспективе
Все что касается социальных сигналов
Господа, рад вас всех приветствовать внутри данного треда.
Как многие уже могли догадаться, данный пост лежит в плоскости материалов по black seo и является естественным продолжением цикла статей :
Black SEO - [ Не для чайников ]
А раз так, данный материал необходимо изучить вкупе с ранее опубликованными постами.
И да, сегодня - мы будем говорить о манипуляциях основными факторами ранжирования в поисковых системах, или о том - как добывать трафик внутри серча с применением не совсем этичных методов поискового продвижения.
Прежде чем мы начнем, хочу акцентировать ваше внимание на том, что продукт который мы дропнем в конце статьи - является базой нашего сео комбаина, тем самым фундаментом на котором построены все прочие инструменты влияния - на результаты поиска, в краткосрочной перспективе.
Исходя из специфики нашего форума, я выбрал одну из самых понятных ниш в качестве объекта исследований - и речь идет о download
Пару слов от автора:
Парни, сразу закладываем по определению, что мы все бум бум в сео и понимаем как работает серч.
Поэтому о бозе мы в основном говорить не будем.
Если кто-то плавает по мат.части, и ему действительно хочется вникнуть, дополнительно читаем:
White SEO - [Для чайников]
К тому же
Для полноты картины предлагаю ознакомиться с видео материалами прикрепленным ниже
дабы сформировать более целостную картинку происходящего и более плотно погрузиться в контекст, где мы с вами:
А. очерчиваем свою область исследований
Б. разбираем концептуально идеи заложенные в фундамент
С. формируем целостное виденье концепта - где есть начало и есть пути развития идеи/продукта
Запуск download
Актуальная версия софта на декабрь 2024 года
и фармим своего домашнего веб-краулера гугла в промышленных масштабах на базе динамического доргена
Исходный код доргена - лежит ниже
На сейчас - нас интересуют основные факторы ранжирования в поисковых системах.
Этих факторов - бесчисленное множество, но в целом, их можно обобщить - тремя основными категориями.
1 категория: Внутренние факторы | То что нас интересует - сейчас

Из этой группы выделяем:
1. техничкe сайта ( оптимизация загрузки, семантическая верстка, микродата и т.д )
2. контент сайта
3. индексация
Из выше названных факторов, вытекают три ключевых вопроса:
А. Как быстро генерировать сайты с техничкой под сео?
Что-бы что-то продвигать, нам нужно создать посадочные страницы/сайты
А лучше 100 страниц и на разных сайтах с учетом всех рекомендаций ПС по техничке.
Нужна в большом кол-ве обусловлены абсолютно разным причинам, но мы берем за марту концепт [ бери больше - кидай дальше ]
Это касается всего, начиная от тестов, заканчивая ссылочным, но сейчас не об этом
Так вот, один из таких концептов - есть дорвеи, о некоторые о вас слышали и много
Ниже дашборд одного из таких доргенов, который скоро попадет в ваши руки

Внутри этой панельки у нас с вами генерируются куча говно сайтов...
В свое время,прошуршав сотни страниц связанных с автоматизацией процессов сайтостроения - мы нашли информацию по дорвеям и начили копать эту тему
Кратко о дорах: https://ru.wikipedia.org/wiki/Дорвей
Почему именно дорвеи?
Ответ:Технологии используемые в строительстве дорвеев - полностью закрывают наши потребности в области массового поднятия/разворачивая/создания сайтов
и наполнение их контентом в промышленных масштабах.
Сам по себе дор - по сути уникальный феномен в области информационного поиска. Концепт доров лежит в плоскости манипуляций с контентными/текстовыми факторами ранжирования
Где подход "TF-IDF" возведен в абсолют в обход понятия IDF, иначе говоря: мы спамим выдачу сотнями тысяч страниц по необходимым нам ключам сформированных за счет переоптимизированного контента.
И нам абсолютно наплевать на информационную ценность контента внутри наших сайтов.
На 2022-2023 год, доры спокойно можно было найти при анализе поисковой выдачи по необходимым нам запросам в нужных нам гео
Давайте освежим память и посмотрим как выглядит непосресдтвенно сам дор
Если кто забыл как выглядит классический дор, выглядит он вот так вот

Дор может выглядеть иначе, во внутряк можно подгрузить свой шаблон и он будет выглядеть поинтересней чем просто html страница с текстом и ссылками
Можно сформировать какие-то сквозняки внутри подгружаемого шаблона, например в футере или развернуть зону дополнительного контента в ввиде сайтбара
Вариантов масса, так или иначе - это есть основа генерации веб.страниц.
Для сравнения, давайте посмотрим дор 2025года ( чтобы было что сопостовлять )

По ходу изучения классических дорвеев, мы выясняем что основу веб-документа составляют сниппеты с выдачи гугла/бинга по ключу из title

Специфика дорвейного трафика подразумевает создание сотен тысяч/миллионов страниц подобным выше, которые попадая в индекс в моменте/после пинга - получают как-то первый траф по нч/сч ключам
Далее все эти страницы переправляют пользователей на какую-то стороннюю страницу с оффером
Работает все это дерьмо за счет клоакинга
Где мы клоачим сгенерированные страницы на сниппетах и подменяем контент пользователю, в то время - как гугл бот, продолжает ходить по дору и сканировать все новые и новые страницы.

Принимая специфику дорвейного трафика, мы располагаем идеей, что пользователь придет с рандомного ключа из миллиона прочих расположенных внутри семантического ядра
Естественно ядро у нас тематическое, на нашем примере - где у нас есть миллионы страниц связанных с драйверами под все известные программы
- хорошим вариантом посадочной страницы будет: Driver booster
Пример посадочной: https://driver-booster-free.en.softonic.com/
Статистика трафика на подобного рода посадочные страницы с ahrefs на запусках


На сегодня, для подобных свечей одного доргена не достаточно, но его технологии - лежат в основании
Введение:
Знакомство с Azcordом произошла случайно на форуме более 2лет назад, в процессе уже пошло более тесное рабочее общение, в котором мы увидели некую перспективу для друг друга.
Одно из наших долгих обсуждений был концепт комбайна который решает все задачи для сео, включая дорген. Изучив информацию в свободном доступе о дор генерации, мы перешли к реализации своего продукта.
Мне предоставили исходники какого-то доргена, разработанного на Parser 3 языке, не понятный, очень специфичный продукт. Тк я являюсь Senior PHP Backend разработчиком, было принято решение переписать это на Yii2 PHP 8.1, ведь мы хотим высоко производительный софт на выходе.
Реализация:
Сам технический концепт дорвея укладывается в простых понятиях, отобразить случайные ключи и снипеты, сохранить статистику, отправить редирект если нужно. Но как мы знаем дьявол кроется в деталях. Основная проблема кроется в нагрузках и обработки 50 миллионов ботов в сутки.
Первая проблема с которой можно столкнуться при масштабировании это запросы к базе данных, нужно записать статистику для каждого посещения в формате записи на каждый домен каждый час, и если у нас 1000 запросов в секунду на сервер, то стандартные подходы не подойдут.
В следствии решения этой проблемы мы пришли к записи в очередь каждого посещения через брокер сообщений, с последующей пакетной обработкой и записью в таблицу статистики агрегированых данных. Для больших объемов статистики отлично подходит ClickHouse который позволяет записывать и самостоятельно агрегировать данными.
Важно использовать кэширование самых часто используемых данных. Для мониторинга и аналитики приложения мы использования отличную утилиту newrelic, который встраивается в php либой и собирает телеметрию.
С записью статистики при масштабировании разобрались, но у нас еще есть сам сервис который отдает данные. При повышении посещений растут и чтения из базы, нашим решением было вынести базу на отдельный сервер, сделать локальную репликацию с на сервере с php, и разделить master и slave с разограничением на разные чтения и записи, такой способ помог преодолеть рубеж в 30 миллионов суточных запросов на сервер.
Планы на будущее:
Интегрировать кликхаус для аналитики, реализовать кластер k8s для масштабирования и отказоустойчивости приложения
Обсенности системы:
- Система способна выдержать миллионы переходов за счет кэширвоание и пакетной вставки статистики
- Обновление статистики происходит после набора 100 переходов ботов или редиректов
- Поиск таблиц баз снипетов происходит по названию db_
- Добавление новых вайтов и блеков возможно через создания файлов в папке
/views/template/files
Далее руками добавляются путь до файлов modules/panel/views/project_form на 102 строчке
Далее блек можно выбрать в панели для отображения пользователям, так же и с вайтом можно выбрать другой по такому же принципу, либо оставить редирект как сейчас по умолчанию
- Загрузка баз происходит через phpmyadmin либо консоль
- Рекомендация использовать прокси сервер абузоустойчивый перед дорген сервером
- Для проверки отображения вайта в настройках проектах есть включение дебага по IP адресу. После включения будут отобрежны дебаг информация при переходах
- Утилита CF имеет возможность добавления ваших доменов и привязки к серверу по API, сами аккаунты указываются в отдельной вкладке и хранятся в БД
- Статистика редиректов может показывать некорректные цифры ограничения переходов из-за обновления каждые 100 сообщений
- Проект располагает к полной кастомизации доработок, имея хорошую базу под большое количество запросов
- Для PROD настройки рекомендую не использовать Docker, а реализовать нативную настройку
- Для опытных системных администраторов есть возможность все это завернуть в кластер K8s
- Для разворачивания проекта нужно в папке проекта выполнить команду docker-compose up -d (при условии установленном docker в системе). В проекте есть readme описывающий процесс разворачивания и информацию о проекте
Yii 2 Dorgen is a powerful and
flexible web application template built on the Yii2 framework. It is
designed for modern development workflows and provides a solid
foundation for web application projects.
Technologies Used
This project leverages the following technologies:
Directory Structure
assets/ contains assets definition
components/ contains componenets system
commands/ contains console commands (controllers)
config/ contains application configurations
controllers/ contains Web controller classes
mail/ contains view files for e-mails
models/ contains model classes
runtime/ contains files generated during runtime
tests/ contains various tests for the basic application
vendor/ contains dependent 3rd-party packages
views/ contains view files for the Web application
web/ contains the entry script and Web resources
______________________________________________________________________________
Requirements
The minimum requirement for this project template is that your Web server supports PHP 8.1.
__________________________________________________
Installation
Install with Docker
Start the container
Rebuild all containers
You can then access the application through the following URL:
Run the installation triggers (creating cookie validation code)
Run the yii Migration
NOTES:
Minimum required Docker engine version 20.10 for development (see Performance tuning for volume mounts)
Technologies Used
This project leverages the following technologies:
- PHP 8.1: The core programming language.
- Yii 2 Framework: A high-performance PHP framework.
- Docker: For containerized development and deployment.
- Composer: Dependency management.
- Nginx: Web server for serving the application.
- MariaDB: Supported databases.
- Bootstrap: For frontend panel design and responsive UI.
- Git: Version control system.
- RabbitMQ: For message queues and asynchronous tasks.
- Redis: For caching and session storage.
Directory Structure
assets/ contains assets definition
components/ contains componenets system
commands/ contains console commands (controllers)
config/ contains application configurations
controllers/ contains Web controller classes
mail/ contains view files for e-mails
models/ contains model classes
runtime/ contains files generated during runtime
tests/ contains various tests for the basic application
vendor/ contains dependent 3rd-party packages
views/ contains view files for the Web application
web/ contains the entry script and Web resources
______________________________________________________________________________
Requirements
The minimum requirement for this project template is that your Web server supports PHP 8.1.
__________________________________________________
Installation
Install with Docker
Start the container
Код:
docker compose up -d
Rebuild all containers
Код:
docker compose up -d --build
You can then access the application through the following URL:
Код:
http://localhost
For development and operations teams
Update your vendor packages
Код:
docker compose run --rm php composer update --prefer-dist
Run the installation triggers (creating cookie validation code)
Код:
docker compose run --rm php composer install
Код:
docker compose run --rm php yii migrate
NOTES:
Minimum required Docker engine version 20.10 for development (see Performance tuning for volume mounts)
B. Как автоматизировать добычу контента в промышленных масштабах?Примечание! Важно!
На сейчас не автоматизированна миграция после поднятия контейнейра и возможно автоматически не проставятся права для пишуших папок
для того чтобы выполнить миграцию вручную нужно узнать id контейнера с php или же зайти в этот контейнер и выполнить команду
если вы в контейнере и в папке с проектом
Код:php yii migrate
или найти ID контейнера php
Код:docker ps
Код:docker exec -it ID php yii migrate
Чтобы пофиксить права на чтение
Код:docker exec -it ID chmod 777 -R /var/www/html/web/assets
Код:docker exec -it ID chmod 777 -R /var/www/html/runtime
Под сгененированные сайт нам потребуется куча тексто-релевантного контента для наполнения страниц ( сайтов )
Необходимый пресет для A-Parser .txt
Подгружаем...
Внутри доргена уже лежит база под download en |
Код:
eJzFVm2P2jgQ/itWdFXhhChwXaml2g9ZNly5C8kuCWpXFAVvYsBdY2dthy5C+99v
7ABhX447qdJdPmXseWYez5u9dTRWd+pKEkW0crqTrZPbf6frXFC+QDd4KQTyAnQZ
fgn80L1ElKPo2ncaTo6lItKAJk7kdbtGH5YzMscF005j6+hNTsCQWBMpaUZgk2Yg
51I8bCTRkhIFa2vMCqPWbrWcx79HFYpYYIXQsiAnAFb7FnNOspQRzIv82FnnpDOL
7S1JekfkEerXkxi8IKkouK4A7dYJfUb5ncqJNLgjH7+dJMawDfJemfBTypIsqOBH
6oVyHqeNMl02s/8qX/995F8WR+fs/07XxsQrycQK0+OQjjnVJEORxpooVPP4glG1
rJ/yXFp6msmJzWwC+Zz+I9KylpvneZ02IOEKUqn6Qq6waeHJG6SFYKr5XTUXREPf
rju1t9lt0ml13ietD0nnI7iEQ/3gbxvoviBy00B5uwl9ncNPx/7UP6E3U+dgPMJr
EgswPqeMVMt9kAK8MmzUPXv3qo8m7AACZxnVUJiYlUTNCKnIQ0Dv7aG4qU7DCSqh
L8WqcmmJ7g85cX6xsgMmCou9LjFlmTYcBYT7GJDZYWOOmYIdyJzEWsgwN3RgfesI
7jLmkzVhlZo1f1FQlsG4c+cAGuyAr6uEL2w8Hk537AqS+0MChz1RK1yEwwqUCV8s
4NzZLZya0RXVIKuerdqu04LFO0LyQ8QCE7GVkOTgpTS88w1TPifc1FFv5Lmxh2L3
wvfQoI+CMEbe10EUR2j2auZmqPaNI/hmNJvBFaBr7XbdwoKx7yN3HIfJIACzQy+I
GzvVO7JJOJTEDK2xTJdY1jpnZ3XU++yO3F7sjVDkxajQ8w+oF/q+IWSEBJKYiowk
KT042FtUnOY5XFQzxARfaPKgX7G2un3/xCDIp2xini6FBJND73IwHsbe1/jnjRaS
gcWfJlhauxoNhu7oBv3p3aCaSUB952YcDK7Hnl0/Cnat+q9/43W4vH8fBN75cDOI
3CG69Pru2C+PCITOnxE6f0nok+FRNbqb74rIeVb2T7r46WIq+Jwuwt0022sWPIbH
R8h7YpUzYvqAF4w1zH0zqoaKq3Zta4RDw70A96wL0yv7+8yxo++PqKSaSwpD68wQ
XEHnHXvdmUwxY+ORf7xjgEqLPOSelM/a/cBoshffQbOY0JuGYQJnTf2gzVRK4WpY
CJhQ5nllagIMX5noj5LIc0e9z+CFPOSYZwTi2n6cwh29f10dXmbb6o3V3cJoqK5w
EEH+rq5KhCGlSh2ItzIPALD5Fxg7TMs=
Далее подгружаем JavaScript.txt
Код:
function _cleanSnippet(snippet) {
/*
теги
[^anc.match[<.*?>|&.*?^;][g]{ }]
много тирешек в одну
[^anc.match[- -][g]{-}][^anc.match[- -][g]{-}][^anc.match[- -][g]{-}][^anc.match[- -][g]{-}][^anc.match[- -][g]{-}][^anc.match[- -][g]{-}][^anc.match[- -][g]{-}]
урлы
[^anc.match[http(s?)://([A-Za-z0-9-\.\/]+(^$| |\.))][g]{ }]
почтовые ящики
[^anc.match[([A-Za-z0-9-\.]+)\@([A-Za-z0-9-]+)\.(\w+)][g]{}]
хвосты анкорные
[^anc.match[\|(.*)^$][g]{}]
всякая х#йня
[^anc.match[("|“|\*|#|„|\+|>|<|^;)][g]{}]
даты/время
[^anc.match[(\d+):(\d+):(\d+)][g]{}]
[^anc.match[(\d+):(\d+)][g]{}]
[^anc.match[(\d+)\.(\d+)\.(\d+)][g]{}]
[^anc.match[(\d+)\. (\d+)\. (\d+)][g]{}]
[^anc.match[(\d+)\\(\d+)\\(\d+)][g]{}]
[^anc.match[(\d+)/(\d+)/(\d+)][g]{}]
[^anc.match[(\d+) (\d+)][g]{}][^anc.match[(\d+) (\d+)][g]{}][^anc.match[(\d+) (\d+)][g]{}][^anc.match[(\d+) (\d+)][g]{}][^anc.match[(\d+) (\d+)][g]{}][^anc.match[(\d+) (\d+)][g]{}]
[^anc.match[(\d+)^;(\d+)][g]{}][^anc.match[(\d+)^;(\d+)][g]{}][^anc.match[(\d+)^;(\d+)][g]{}][^anc.match[(\d+)^;(\d+)][g]{}][^anc.match[(\d+)^;(\d+)][g]{}][^anc.match[(\d+)^;(\d+)][g]{}]
[^anc.match[(\d+)^; (\d+)][g]{}][^anc.match[(\d+)^; (\d+)][g]{}][^anc.match[(\d+)^; (\d+)][g]{}][^anc.match[(\d+)^; (\d+)][g]{}][^anc.match[(\d+)^; (\d+)][g]{}][^anc.match[(\d+)^; (\d+)][g]{}]
еще теги - лёгкие
[^anc.match[(<(\w+)>|</(\w+)>)][g]{}]
троеточия
[^anc.match[…][g]{}]
[^anc.match[\.\.\.][g]{}]
[^anc.match[\.\.][g]{.}]
[^anc.match[\.\.][g]{.}][^anc.match[\.\.][g]{.}][^anc.match[\.\.][g]{.}][^anc.match[\.\.][g]{.}][^anc.match[\.\.][g]{.}]
какие то палки
[^anc.match[\|\|\| \|\|\|][g]{|||}][^anc.match[\|\|\| \|\|\|][g]{|||}]
[^anc.match[\|\|\|][g]{.}]
еще х#йня
[^anc.match[ ·| •| ✓][g]{,}]
[^anc.match[^; ^;][g]{}]
еще тирешки
[^anc.match[--][g]{-}][^anc.match[--][g]{-}][^anc.match[--][g]{-}][^anc.match[--][g]{-}]
шаб каких то фейсбуков наверное
[^anc.match[(\w+) (\d+), (\d+) - (\d+) Likes, (\d+) Comments - ][g]{}]
[^anc.match[(\d+) views][]{}]
мелочи
[^anc.match[\.,][g]{,}]
[^anc.match[,\.][g]{.}]
[^anc.match[ ,][g]{,}]
[^anc.match[\?\?\?][g]{?}]
*/
// html-теги
let result = snippet.replace(/<\/?[^>]+(>|$)/gi, '');
// html entities
result = result.replace(/&[^;]+;/gi, ' ');
// урлы
result = result.replace(/(?:https?|ftp):\/\/[\n\S]+/gi, ' ');
// email
result = result.replace(/([^.@\s]+)(\.[^.@\s]+)*@([^.@\s]+\.)+([^.@\s]+)/gi, '');
// какие-то палки
result = result.replace(/\|\|\|\s+\|\|\|/gi, '|||');
result = result.replace(/\|\|\|/gi, '.');
// отсекаем всё после символа |
// скорее всего это будет строка типа такого: | www.SiteName.com
result = result.split(/\s*\|/, 1)[0];
// много тирешек в одну: - -- -- -
result = result.replace(/\-\s+\-/gi, '-');
result = result.replace(/\-+/gi, '-');
// всякие символы
result = result.replace(/("|“|”|\*|#|„|\+|>|<|;\s+;|·|•|✓|…|®|™)/gi, '');
// дата и время
result = result.replace(/[A-z]{3}\s+\d{1,2},\s+\d{2,4}/gi, ''); // Dec 12, 2022
result = result.replace(/\d{1,2}\s+[A-z]{3}\s+\d{2,4}/gi, ''); // 12 Dec 2022
result = result.replace(/\d{1,2}\s+[A-z]{3,10}\s+20\d\d/gi, ''); // 12 December 2022 - годы только с 2000
result = result.replace(/\d{2}:\d{2}:\d{2}(\s+(AM|PM))?/gi, ''); // 10:20:22 AM
result = result.replace(/\d{2}:\d{2}(\s+(AM|PM))?/gi, '');
result = result.replace(/\d{1,2}\.\s*\d{1,2}\.\s*\d{2,4}/gi, '');
result = result.replace(/\d{1,4}\/\d{1,4}\/\d{1,4}/gi, '');
result = result.replace(/\d{1,4}\\\d{1,4}\\\d{1,4}/gi, '');
// 13 hours ago, 13 days ago
result = result.replace(/\d+(\s+hours|\s+hour|\s+days|\s+day)?\s+ago/gi, '');
// все годы - в текущий год
const curYear = (new Date()).getFullYear().toString();
result = result.replace(/(19\d\d|20\d\d)/gi, curYear);
// точки
result = result.replace(/\.\s*\.\s*\./gi, '');
result = result.replace(/\.\s*\./gi, '.');
// шаб каких то фейсбуков наверное:
// Dec 12, 2022 - 3 Likes, 10 Comments -
// 10 views
result = result.replace(/\w+\s+\d+,\s+\d+\s+-\s+\d+\s+Likes?,\s+\d+\s+Comments?\s+-\s+/gi, '');
result = result.replace(/\d+\s+views?/gi, '');
// мелочи
result = result.replace(/,{2,}/gi, ',');
result = result.replace(/\.,/gi, ',');
result = result.replace(/,\./gi, '.');
result = result.replace(/\s+,/gi, ',');
result = result.replace(/\?{2,}/gi, '?');
result = result.replace(/\s*—\s*/gi, '');
result = result.replace(/,\s*$/gi, '');
// 5 и более цифр с дефисом (скорее всего это номер телефона) заменяем на пробел
// также вначале этого номера может быть +
result = result.replace(/\+?\d[\d\-]{4,}/gi, ' ');
// несколько пробелов заменяем одним
result = result.replace(/\s+/gi, ' ');
return result.trim();
}
function Tools() {
}
Tools.prototype.sum = function(a, b) {
return a + b;
}
Tools.prototype.eval = function(code) {
return eval(code);
}
Tools.prototype.removeWWW = function(domain) {
return domain.replace(/^www\./i, '');
}
Tools.prototype.cleanSnippet = function(snippet) {
return _cleanSnippet(snippet);
}
Tools.prototype.getSQL = function(tableName, addTitle, query, serp1, serp2=null, serp3=null, serp4=null, serp5=null) {
let snippets = [];
const parsedData = [serp1, serp2, serp3, serp4, serp5];
for (let i = 0; i < parsedData.length; i++) {
const rows = parsedData[i];
if (!rows)
continue;
for (let j = 0; j < rows.length; j++) {
const row = rows[j];
let textChunks = [];
if (addTitle && row.anchor)
textChunks.push(row.anchor);
if (row.snippet)
textChunks.push(row.snippet);
if (!textChunks.length)
continue;
const cleanedSnippet = _cleanSnippet(textChunks.join('. '));
if (!cleanedSnippet)
continue;
snippets.push(cleanedSnippet);
}
}
snippets = [... new Set(snippets)];
let snippetsStr = snippets.join(' ');
snippetsStr = snippetsStr.replace(/\\u([0-9A-z]{4})/g, '###u$1###');
snippetsStr = snippetsStr.replace(/[\r\n\\]/g, ' ').replaceAll("'", "\\'");
snippetsStr = snippetsStr.replace(/###u([0-9A-z]{4})###/g, '\\u$1');
//snippetsStr = snippetsStr.replace(/[\u007F-\uFFFF]/g, function(chr) {
// return '\\u' + ('0000' + chr.charCodeAt(0).toString(16)).substr(-4)
//});
let queryStr = query.replace(/[\r\n\\]/g, ' ').replaceAll("'", "\\'");
if (!queryStr || !snippetsStr)
return '';
return `INSERT IGNORE INTO ${tableName} VALUES (NULL, '${queryStr}', '${snippetsStr}');\n`;
}
Tools.prototype.getSQLv2 = function(tableName, query, serp1, serp2=null, serp3=null, serp4=null, serp5=null) {
let snippets = [], anchors = [], urls = [];
const parsedData = [serp1, serp2, serp3, serp4, serp5];
for (let i = 0; i < parsedData.length; i++) {
const rows = parsedData[i];
if (!rows)
continue;
for (let j = 0; j < rows.length; j++) {
const row = rows[j];
const snippet = row.snippet ? _cleanSnippet(row.snippet) : '';
if (snippet)
snippets.push(snippet);
const anchor = row.anchor ? _cleanSnippet(row.anchor) : '';
if (anchor)
anchors.push(anchor);
const url = row.link ? row.link : '';
if (url)
urls.push(url);
}
}
snippets = [... new Set(snippets)];
anchors = [... new Set(anchors)];
urls = [... new Set(urls)];
let snippetsStr = snippets.join('|||');
snippetsStr = snippetsStr.replace(/\\u([0-9A-z]{4})/g, '###u$1###');
snippetsStr = snippetsStr.replace(/[\r\n\\]/g, ' ').replaceAll("'", "\\'");
snippetsStr = snippetsStr.replace(/###u([0-9A-z]{4})###/g, '\\u$1');
let anchorsStr = anchors.join('|||');
anchorsStr = anchorsStr.replace(/\\u([0-9A-z]{4})/g, '###u$1###');
anchorsStr = anchorsStr.replace(/[\r\n\\]/g, ' ').replaceAll("'", "\\'");
anchorsStr = anchorsStr.replace(/###u([0-9A-z]{4})###/g, '\\u$1');
let urlsStr = urls.join('|||');
urlsStr = urlsStr.replace(/[\r\n\\]/g, ' ').replaceAll("'", "\\'");
let queryStr = query.replace(/[\r\n\\]/g, ' ').replaceAll("'", "\\'");
if (!queryStr || !snippetsStr || !anchorsStr)
return '';
return `INSERT IGNORE INTO ${tableName} VALUES (NULL, '${queryStr}', '${snippetsStr}', '${anchorsStr}', '${urlsStr}');\n`;
}
new Tools; //return Tools object

Запускаем задание под сбор базы

Естественно предварительно надо собрать базу ключей и подрубить прокси, с прокси разберетесь, ключи я думаю итак все знают как собирать, и все же покажу
Собираем список доноров по тематике, если речь идет о download - дергаем ключи с сайтов подобному https://www.uptodown.com
https://ahrefs.com - сервис веб-аналитики


Формирует общий документ из выгруженных .csv файлов
Консоль - путь - copy *.csv all.csv
Запуливаем получившийся документ в Penguin Keywords Tools/
Чистим от дубликатов и добавляем в исключение - список стоп слов
https://x-parser.ru/software/9-penguin-keywords-tools.html - софт по работе с семантикой
Выгружаем файл в .txt и отправляем его в апарсер
Предварительно ставим все необходимые пресеты
Запускаем а-парсер, на выходе он нам выплюнет файлы в sql
Заливаем базу на сервер, запускаем доры



Далее все эти страницы ( сайты ) необходимо как-то быстро запулить в индекс и получить трафик
Итак, собственно ферма реализована
на базе динамического доргена, где бот попадает в цикл и с каждым
последующим переходом по урлу внутри сайта - ему рендерится новая
страница в моменте.
Таким образом гугл бот видит всегда - новый контент, и отправляет сканировать краулера любое дерьмо...
Далее... Мы можем перенаправить этого краулера, туда - куда мы хотим!
Ставим нужные галочки, редиректим бота куда хотим.
Если в ферме много веб-краулера поисковой системы - получаем индекс необходимой страницы в течении 2-6часов.
Особенно актуально, пинговать лом!
Таким образом гугл бот видит всегда - новый контент, и отправляет сканировать краулера любое дерьмо...
Далее... Мы можем перенаправить этого краулера, туда - куда мы хотим!

Ставим нужные галочки, редиректим бота куда хотим.

Если в ферме много веб-краулера поисковой системы - получаем индекс необходимой страницы в течении 2-6часов.
Особенно актуально, пинговать лом!
__________________________________________________________________________________
2 категория: Внешние факторы | То что нас интересует в перспективе
Все что касается нездорового линкбилдинга

Как вы уже поняли, мы слили в паблик дефолтную версию доргена, я бы даже сказал кастрированную.
Ведь на сегодня - концепт классических доров изжил себя и работает исключительно в контексте быстро-индекса
Но именно на базе доргена можно поднять всю прочую архитектуру.
Итак, давайте посмотрим кусок нашего функционала без углубления в технические аспекты:
Помимо тривиальных доноров для разворачивания доров, мы начали использовать чужие cloudflare / cpanel / wordpress
Про cloudflare - говорить особо нечего, а вот что касается cpanel / wordpress...
В общем, для фермы с веб.краулером - мы заменили покупку обычных дропов - cpanelками
По сути мы отправляем запросы на авторизацию в cpanel, получаем список доменов и их директории, дальше по апи загружаем файлы
Как следствие - теперь мы вообще не покупаем домены...
Внутри нашей панели, есть вкладка [ ссылки проектов ]
Работает эта вкладка следующим образом
Вставляем ссылки на продвигаемые ресурсы, далее со всех доров проставляется сквозняк с этими ссылками...
Ниже пример сквозняков, с доров развернутых на ломе.
Далее мы разработали пул плагинов под вп + дополнительные инструменты их подгрузки
Работает это по аналогии с cpanel - загружается плагин на пул впшек, который перехватывает запросы и отправляет на наш сервер, и полученный ответ отображает
Но мы пошли дальше, и уже упиздили до разворачивания контента на ломе с необходимыми урлами и анкорами + есть возможность скрытно проставлять свои ссылки в уже имеющиеся анкоры внутри сайтов доноров
Ведь на сегодня - концепт классических доров изжил себя и работает исключительно в контексте быстро-индекса
Но именно на базе доргена можно поднять всю прочую архитектуру.
Итак, давайте посмотрим кусок нашего функционала без углубления в технические аспекты:

Помимо тривиальных доноров для разворачивания доров, мы начали использовать чужие cloudflare / cpanel / wordpress
Про cloudflare - говорить особо нечего, а вот что касается cpanel / wordpress...
В общем, для фермы с веб.краулером - мы заменили покупку обычных дропов - cpanelками
По сути мы отправляем запросы на авторизацию в cpanel, получаем список доменов и их директории, дальше по апи загружаем файлы
Как следствие - теперь мы вообще не покупаем домены...
Внутри нашей панели, есть вкладка [ ссылки проектов ]

Работает эта вкладка следующим образом
Вставляем ссылки на продвигаемые ресурсы, далее со всех доров проставляется сквозняк с этими ссылками...
Ниже пример сквозняков, с доров развернутых на ломе.


Далее мы разработали пул плагинов под вп + дополнительные инструменты их подгрузки

Работает это по аналогии с cpanel - загружается плагин на пул впшек, который перехватывает запросы и отправляет на наш сервер, и полученный ответ отображает
Но мы пошли дальше, и уже упиздили до разворачивания контента на ломе с необходимыми урлами и анкорами + есть возможность скрытно проставлять свои ссылки в уже имеющиеся анкоры внутри сайтов доноров
Но это уже отдельная история и мы будем о ней говорить в следующих частях
__________________________________________________________________________________
3 категория: Поведенческие факторы | То что нас интересует в перспективе
Все что касается социальных сигналов

Part I [ Создание инфраструктуры под накрутку ПФ ]
Part II [ Запуск Накрутки ПФ]
Part III [ Наши успехи в накрутке ПФ ]
Part IV [ Апдейт Яндекса 27.02.24 ]
Part V [ Тесты во время апдейта ]
Part VI [ Вступительный предикат к техническому заданию под разработку софта для пф ]
Part VII [ Web - интерфейс софтины под накрутку пф ]
Part II [ Запуск Накрутки ПФ]
Part III [ Наши успехи в накрутке ПФ ]
Part IV [ Апдейт Яндекса 27.02.24 ]
Part V [ Тесты во время апдейта ]
Part VI [ Вступительный предикат к техническому заданию под разработку софта для пф ]
Part VII [ Web - интерфейс софтины под накрутку пф ]