- Регистрация
- 01.05.2015
- Сообщения
- 4 983
- Благодарностей
- 4 433
- Баллы
- 113
По идее эта статья является логическим продолжением и развитием серии «Король Социалок». Ведь всё равно заработок внутри социальных сетей крайне желательно совмещать со сливом трафика на свои ресурсы. Так надежнее, эффективнее, безопаснее. Также в этой статье вы найдёте показательный приём интеграции WP-сайта и Фейсбук. Так что я обосновано продолжаю нумерацию и присваиваю статье звание "Король Социалок №19".
Для справки: что такое ДДЛ?
ДДЛ (доры для людей ) – это категория копипастных, автогенерируемых нейронками, переводных сайтов или агрегаторов контента, которые достаточно сложно отличить от обычных сайтов, где контент в основном пишут люди. Обычно пользователи активно используют такие сайты и поисковые системы лояльно к ним относятся и не банят. Один из примеров – многочисленные переводные клоны stackoverflow, вы наверняка часто сталкивались с такими сайтами, когда гуглили методы C# или JS.
Кому будет полезна эта статья?
- Тем, кто хочет наконец-то начать зарабатывать на сайтах – на самом надёжном, предсказуемом и малозатратном ($50 расходов в год на один сайт) способе заработка в сети.
- Тем, кто уже перерос дорвеи и хочет получать более качественные трафик.
- Тем, кому нужны сетки трастовых PBN для прокачки ссылочным своих money-сайтов.
- Тем, кто кроме поискового трафика хочет получать трафик с соц. сетей и иметь постоянных возвращающихся посетителей.
- Тем, кто хочет монетизировать свои сайты не только редиректом на серые партнерки, но и подключить рекламу Гугла или Яндекса.
- Тем, кто хочет строить воронки, организовывать рассылки, формировать подписную базу пользователей, контактировать с ними в автоматическом режиме с помощью ботов.
- Тем, кто хочет создать не только обычный контентный проект основанный на ключах, а новостной сайт, user generated content, агрегатор данных, доходный сервис, полезный и развивающийся ресурс.
В конкурсах статей уже была статья по работе с REST API, в которой был шаблон по постингу в WP, но мы пойдём дальше и превратим WP+Zenno в мощнейший комбайн по генерации сайтов, которые любят поисковые системы, которые нравятся людям и которые помогают конвертировать посетителей в доходы с партнерок и рекламных сетей.
Возможно эксперты по WP сейчас зададутся вопросом – а зачем вообще нужна Зенка? Сейчас есть тысячи плагинов, которые решают грандиозные задачи по парсингу и автоматическому наполнению ВП сайтов без всякого участия администратора и только серверными скриптами. Зачем тут нужен десктопный софт?
Отвечаю:
Google.Random();1. Такого, что я описываю в этой статье, не делает ни один скрипт или плагин. Возможно я плохо искал, но найти мне не удалось и 1/10 требуемого функционала.
2. Зачем мне глючные чужие плагины, в основной массе платные, в которых ещё и разбираться нужно не один день, когда есть такой надежный и хорошо зарекомендовавший себя инструмент как ЗП?
3. Многие задачи нужно решать комплексно, системно. И тут функционала плагинов явно не хватает. Например, ЗП сохраняет ссылку на статью, которую потом запостит и в соц. сети, и сгенерирует нейросеткой текстовку в веб 2.0, и сформирует анкоры под спам через ГСА.
Вы, наверное, думаете, что возможности Зенки ограничиваются только рутинной работой по генерации контента, постингу и распихиванию ссылок на разные ресурсы? Да, Зенно постер всё это успешно умеет, но не только. ЗП помогает также и создавать сайты. Написав свои шаблоны, вы сможете создавать сложнейшие сайты (десятки вложенных категорий, куча языков, теги, несколько меню, мобильная версия + AMP) буквально за пару часов. Такие сайты обычные юзеры делают неделями. Да, я тоже многие вещи делаю руками (установка темы, набор плагинов, их настройка, логотип, описание сайта), но самую сложную и нудную часть отдаю на откуп Зенке.
Но зачем мне каждый день создавать по нескольку сайтов, скажете вы? Виной всему рандом Гугла. На личном опыте я и мои коллеги не раз убеждались, что далеко не всегда эффект от сайта зависит от количества и качества вложенных в него сил, ресурсов и денег. Сколько прекрасных проектов загибалось из-за неправильного подобранного дроп-домена, абузы за нарушение авторских прав из-за какой-то картинки или вообще без всякой на то причины. А иногда, наоборот, собранный на коленке сайт взлетал сам собой и давал тонны трафика. Поэтому важнейший принцип дорвейщика: бери больше, кидай дальше, в паузах внимательно анализируй. Из 10 созданных вами в течении недели сайтов, 5, по статистике, загнутся. 3-4 – выйдут на самоокупаемость. А вот один или два начнут приносить столько прибыли, что окупят все затраты и принесут вам не только масло на хлеб.
Категорически - начинаем.Дисклаймер. Описываемые ниже методы и примера я даю только в ознакомительном, общем виде. Нет смысла публиковать мои реальные шаблоны: они крайне запутанны и имеют взаимосвязи с другими проектами и могут только помешать нормальному решению задач. Поэтому лучше на основе предложенных примеров писать свой собственный велосипед, а не тупо копировать код, который в 99% случаев не будет работать в вашем проекте.
Во вложении есть шаблон в котором добавлены все методы описанные в этой статье, а также собственно плагин "WP Zenno".
Начнём с чего-нибудь простого. Мы создаём по сути дорвеи, поэтому нам нужны десятки категорий чтобы максимально расширить семантику. Ну, категории можно и руками добавить, скажете вы. А если дорвей мультиязычный? И если категории имеют уровни вложенности? Только автоматизировать!
Собрали ключи, откластеризовали – каждый кластер соответствует категории. Если кластеризуете Зенкой, то можно в том же шаблоне и категории создавать, но я предпочитаю сохранять в Эксель таблицы где каждый ключ в отдельной строке, к нему подкатегория с названием и id, и затем родительская категория с id. Вернее, сначала id нет, мы их получаем как результат POST запроса, который вы можете найти в приложенном шаблоне.
Согласно логике ваших ключей/подкатегорий/категорий настраиваете цикл, который последовательно создаёт указанные выше сущности и заполняет табличку. Пример запроса как всегда во вложенном шаблоне. и, да, это чистый WP REST API который работает "из коробки"– пока всё не сложно.
Официант, принесите меню!
Категории созданы, но какой сайт без меню! Нет проблем, но это задача посложнее. Для этого уже из коробки нет REST запросов и мы будем писать свой эндпоинт для подключения к хукам WP.
Да, мы будем создавать свой плагин для WP!
В новый PHP-файл добавляем хук add_action и в нём регистрируем эндпоинты для каждого действия – в данном случае для создания меню.
PHP:
add_action('rest_api_init', function() {
register_rest_route('create_menu/v1', '/menus/', [
'methods' => 'POST',
'callback' => 'generate_site_nav_menu',
]);
}
PHP:
function generate_site_nav_menu(WP_REST_Request $request) {
$data = $request->get_params();
$menu_primary = $data['menu_name'];
$result = wp_create_nav_menu( $menu_primary );
$menu_primary_obj = get_term_by( 'name', $menu_primary, 'nav_menu' );
$location_target = $data['location_target'];
$menu_items_array = json_decode($data['menu_items_array']);
$menu_items_array_count = count($data);
for ($x = 0; $x < $menu_items_array_count; $x++) {
$str = $data['menu_items_array_'.$x];
if (strlen($str) > 0 && $pos1 == -1) {
$pos1 = $x;
} elseif (strlen($str) > 0 && $pos2 == -1) {
$pos2 = $x;
}
}
$i = 0;
$parent_id = array();
foreach( $menu_items_array as $page_name => $page_location ){
$parent_id[$i] = generate_site_nav_menu_item( $menu_primary_obj->term_id, $page_name, $page_location );
$i++;
}
$locations_primary_arr = get_theme_mod( 'nav_menu_locations' );
$locations_primary_arr[$location_target] = $menu_primary_obj->term_id;
set_theme_mod( 'nav_menu_locations', $locations_primary_arr );
update_option( 'menu_check', true );
}
//функция создания родительского итема
function generate_site_nav_menu_item( $term_id, $title, $url ) {
$p_id = wp_update_nav_menu_item($term_id, 0, array(
'menu-item-title' => sprintf( __('%s', 'text_domain'), $title ),
'menu-item-url' => home_url( '/' . $url ),
'menu-item-status' => 'publish'
) );
return $p_id;
}
Если сайт многоязычный или меню имеет иерархию, то код выше подлежит дополнительной обработке напильником.
После создания файла плагина (он, кстати, есть во вложении), добавляем его также как остальные плагины и активируем.
Теперь уже в Зенно Постере в цикле берём ранее созданный при генерации категорий Эксель и заполняем меню в цикле с помощью POST запроса.HINT: когда вы станете массово создавать сайты по этой технологии, то наверняка захотите объединить три стартовых шаблона (Basic Auth, Rest API meta endpoints и Zenno) в один и добавлять его во все новые сайты в три клика.
Авторские аватарки ручной работы
А зачем на доре нужно много авторов? Чтобы создавалась имитация большого комьюнити, чтобы статьи были от разных авторов, чтобы в комментариях были дискуссии и сложные диалоги, чтобы один бот спрашивал, а другой отвечал. У нас же не какой-то дорвей!
Создание автора возможно с помощью обычного WP API, но установить аватару у вас вряд ли получится. Для этого мы создадим отдельный эндпоинт. Действовать нужно в 2 этапа: сначала заливаем картинку в медиа-каталог, затем присваиваем автору эту картинку по id как аватару.
И затем устанавливаем аватарку по URL
PHP:
function set_avatar_url(WP_REST_Request $request) {
$data = $request->get_params();
include_once( ABSPATH . 'wp-admin/includes/image.php' );
$imageurl = $data['avatar_url'];
$imagetype = end(explode('/', getimagesize($imageurl)['mime']));
$uniq_name = date('dmY').''.(int) microtime(true);
$filename = $uniq_name.'.'.$imagetype;
$uploaddir = wp_upload_dir();
$uploadfile = $uploaddir['path'] . '/' . $filename;
$contents= file_get_contents($imageurl);
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);
$wp_filetype = wp_check_filetype(basename($filename), null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => $filename,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $uploadfile );
$imagenew = get_post( $attach_id );
$fullsizepath = get_attached_file( $imagenew->ID );
$attach_data = wp_generate_attachment_metadata( $attach_id, $fullsizepath );
wp_update_attachment_metadata( $attach_id, $attach_data );
global $wpdb;
$resultss = update_user_meta($data['id'], $wpdb->get_blog_prefix() . 'user_avatar', $attach_id);
print_r($resultss);
}
Звезданутые кастомные поля
Отлично! Сайт создан, настроен и организован регулярный постинг. Но нам же нужно чтобы пост был не просто в виде скопипастенного текста. Важно добавлять какую-то ценность контенту. Рейтинги, отзывы, рекламные фреймы, вставки динамического текста, блоков внимания. Всё это позитивно влияет на поведенческие факторы и улучшает SEO нашего ДДЛ. Давайте рассмотрим, как добавлять кастомное поле во все публикуемые посты.
Поможет нам в этом плагин ACF (Advanced Custom Fields). Создаём кастомное поле – например, рейтинг. Конкретно для рейтинга в виде звёзд потребуется ещё одно дополнение - Advanced Custom Fields: Star Rating Field. Создаём поле «rating» с типом «Star Rating». Затем нам нужно вывести это поле, допустим в начале статьи:
Для этого редактируем в теме файлик отвечающий за контент поста. Например в теме Kadence это single-entry.php (template-parts/content/single-entry.php). Добавляем в нужное место вывод рейтинга в цифрах и в виде звёздочек:
PHP:
$rating = get_field( 'rating' );
if ( $rating ) {
$average_stars = round( $rating * 2 ) / 2;
$drawn = 5;
echo 'Rating: <div class="star-rating">';
// full stars.
for ( $i = 0; $i < floor( $average_stars ); $i++ ) {
$drawn--;
echo '<svg aria-hidden="true" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star fa-w-18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"/></svg>';
}
// half stars.
if ( $rating - floor( $average_stars ) === 0.5 ) {
$drawn--;
echo '<svg aria-hidden="true" data-prefix="fas" data-icon="star-half-alt" class="svg-inline--fa fa-star-half-alt fa-w-17" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 536 512"><path fill="currentColor" d="M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"/></svg>';
}
// empty stars.
for ( $i = 0; $i < $drawn; $i++ ) {
echo '<svg aria-hidden="true" data-prefix="far" data-icon="star" class="svg-inline--fa fa-star fa-w-18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"/></svg>';
}
echo '</div>';
}
Добавляем в наш Зенно-плагин код:
PHP:
function acf_posts(WP_REST_Request $request) {
$data = $request->get_params();
update_field("rating", $data['rating'], $data['id']);
print_r("success ".$data['id']);
}
PHP:
register_rest_route('acf/v4', '/posts/(?P<id>\d+)', [
'methods' => 'POST',
'callback' => 'acf_posts',
]);
Не стесняемся, обновляемся
Чем ещё помогает ЗП при работе с WP? Обновления статей.
Вы не знали, что ПС очень любят, чтобы не только сайт наполнялся свежими статьями, но и сами статьи иногда обновлялись и дополнялись? И не просто новым контентом, но комментариями, и чтобы в статьях появлялась вставка UPTATED (как вариант с датой) и добавлено 1-2 абзаца, который наша труженица Зенка заботливо допарсила по ключу статьи.
Алгоритм такой:
1. Экспортируем из GSC (консоль вебмастера) таблицу по вашему сайту.
2. Во вкладке «Страницы» собираем в список самые трафиковые страницы за последние 6-12 месяцев.
3. Скармливаем этот список Зенке, которая по АПИ получает тайтл страницы, тэги, если вы их проставляли, категорию, и на основе комбинации этих данных ищет свежий контент (да, ищем с параметром……).
4. Формируем блок «UPDATE», его можно выделить стилями и добавить дату обновления, и по АПИ редактируем страницу с заданным интервалом (например 1 страница в сутки).
5. Желательно отправить страницу через GSC в переобход.
ZP + WP = $$$
Безусловно, методы генерации сайта и его наполнения, в которых помогает ЗенноПостер, намного шире: генерация картинок, создание динамических виджетов (это такие блоки на сайте), контекстная перелинковка. Или например такая тема. ЗП при постинге статьи добавляет не один вариант заголовка, а 2-4, и WP сайт при каждом просмотре юзера главной показывает ему случайный заголовок, анализирует на какие заголовки чаще кликают и, по результатам тестов, начинает подставлять заголовок, который обладает самым высоким CTR. В результате растут ПФ и вовлеченность пользователей.
Ну и наконец, высший пилотаж комплексной интеграции ЗенноПостера и WordPress я могу на продемонстрировать на примере одного мини-сервиса – раздела прогнозов на криптовалютном сайте. Многие из вас следят за курсом биткоина и пытаются спрогнозировать его курс. Чтобы добавить геймофикацию в обычный информационник я модернизировал плагин квизов и добавил в него имитацию голосования ботами ЗенноПостера и шеринга в ФБ. Это довольно сложно описать словами, проще показать на видео. Смотрите видео, которое является приложением к этой статье, там же я расскажу о настройках WP сайта и покажу какие темы и плагины я чаще всего использую при создании ДДЛ.
БОНУС: Как подобрать ключи по правилу «золотого сечения»?
Где-то год назад в буржунете всплыла в паблике одна методика поиска траффиковых ключей. Например, вот статья. Не так давно я попробовал адаптировать её под свои ДДЛ и автоматизировал с помощью Зенно-постера.
Основной алгоритм поиска таких ключей и подготовки контента такой:
- Выгружаем с какого-либор сервиса типа Ahrefs (платно) или Google keyword planner (бесплатно) низкочастотные ключи по вашей тематике. Я беру volume в интервале от 100 до 1000 если по США. Желательно чтобы не было откровенного шлака и лучше отфильтровать на кол-во символов (не более 70), слов (не более 7) и наличие чисел.
- Зенкой собираем с выдачи Гугла значение allintitle по вашим запросам. Запрос выглядит примерно так, если нужны ТОП США
https://www.google.com/search?q=allintitle:{-Variable.key -}&hl=en&gl=us
- Затем фильтруем запросы по формуле allintitle/volume – они должны быть не более 0.3
- Полученные ключи ещё раз проверяем руками и заряжаем Зенку на парсинг и составление статей по этим ключам. Желательно сделать контентный микс (текст, картинки, Youtube видео) со вставками различных блоков: FAQ, посты с соц. сетей (embed Facebook и Twitter), таблицы сравнения, авторское цитирование и т. п. Желательно небольшая уникализация переводами или синонимизация.
- Отправляем URL на индексацию через GSC или сервис индексации.
- Опционально: проставляем 1-2 бэклинка с соц. сетей или web 2.0. Делается также на автомате.
- Если Гуглу понравится контент, то ТОП 1-10 обычно приходит на 5-7 сутки.
- Тема статьи
- SEO / PPC, Генерация
- Номер конкурса статей
- Пятнадцатый конкурс статей
Вложения
-
57,3 КБ Просмотры: 1 558
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование модератором: