Привіт, друзі. Представляю вашій увазі дуже цікаву тему, яку написав мій колега Артем, — автоматизація в SEO з Zennoposter.

Як за допомогою декількох нехитрих (насправді, хитрих) дій заощадити багато годин часу? Покрокова інструкція з картинками і т. д. – все додається.

Передаю слово Артему.

Всім привіт! І відразу до справи.

Робота по оптимізації будь-якого сайту складається з двох основних частин.

  • Аналітична частина – цікава робота, яка змушує думати і показувати свою креативність.
  • Рутина – частина роботи, яку складно назвати цікавою, вона монотонна і не передбачає будь-яких викликів.
  • Нижче я розповім, як можна автоматизувати нудну роботу.

    Автоматизація роботи з мета-тегами сторінок

    Давайте уявимо стандартну ситуацію, коли ми провели технічний аудит (професійний seo аудит самостійно), перевірили сайт на помилки і виявили безліч проблемних сторінок, які потрібно коригувати. Прикидаємо, що це кілька годин нудної роботи, сумуємо і приступаємо до пошуку цих сторінок в адмінці.

    Але цю проблему можна вирішити набагато легше і не напружуючись!

    В залежності від наявності доступів і CMS сайту, є кілька шляхів. Якщо у нас повний доступ до сайту (FTP, phpMyAdmin), то оптимальною буде робота безпосередньо з базою даних.

    Розглянемо алгоритм роботи на прикладі якого-небудь сайту:

  • Першим ділом – бекап. Навіть не думайте продовжувати без резервної копії. Я серйозно! Робіть, як вам зручно: через панель хостингу, панель управління сервером або спеціальним скриптом (я в середині 2000-х користувався Sypex Dumper, виявляється, він живий і навіть активно розвивається).
  • Йдемо в phpMyAdmin. Знаходимо таблицю, яка містить необхідні нам дані (в залежності від CMS, вона може мати назву: posts, post content або щось в цьому дусі, але головна відмінна риса – це найбільша таблиця за розміром).
  • Знайшли таблицю. Переходимо до неї. Бачимо, що таблиця містить meta-дані і унікальну частина URL, до якої можна звернутися.
  • Переконавшись, що ми знайшли всі потрібні дані, можна приступати до їх виправлення. Для цього натискаємо кнопку «Експорт»:
  • Вибираємо наступні налаштування:
  • Отримуємо таблицю, з якою можна працювати і редагувати через Excel.
  • Для зручності подсветим потрібні клітинки, використовуючи умовне форматування:
  • Прокручуючи таблицю, ми відразу бачимо дублікати, сторінки з порожніми дескрипшенами тощо. (На замітку, заодно можна прибрати сміттєві символи через пошук та заміну).
  • Правки таким чином займуть набагато менше часу, ніж правити кожну сторінку через веб-інтерфейс. Коли закінчили, імпортуємо таблицю назад таким чином:
  • Перевіряємо сайт. А якщо щось пішло не так, повертаємо все через бекап. Але якщо руки з правильного місця, то проблем бути не повинно 🙂
  • Теж саме можна реалізувати для всіх типів CMS.

    Приклад для сайту на OpenCart

    В даній CMS нас цікавить таблиці:

    • oc_category_description – містить мета-теги категорій,
    • oc_product_description – мета-теги товарів.

    За аналогією експортуємо таблиці в CSV, вносимо правки і заливаємо назад.

    Можна для імпорту використовувати phpMyAdmin, який імпортує тільки формат CSV, але цей формат не завжди коректно імпортується і має ряд обмежень, які не дозволять застосовувати його для великих сайтів.

    Тому я використовую більш зручний софт Navicat Premium, він дозволяє настроїти імпорт набагато зручніше в XLSX формат, який не має описаних недоліків.

    Приклад роботи з Navicat Premium

    Спочатку треба перевірити, що підключення до БД доступно віддалено, а не тільки через phpMyAdmin. Це можна зробити через підтримку хостингу, або безпосередньо в панелі керування сервером.

    Зрозуміло, робимо бекап.

    Створюємо пряме підключення до бази даних:

    Якщо у вас раптом виникли проблеми, наприклад, хостер вирішив не допомагати або існують інші обмеження, то не проблема, — можна реалізувати підключення через http-тунель.

    Для цього заливаємо один із зазначених файлів на хостинг. Як правило, використовується БД MySQL, тому заливати треба ntunnel_mysql.php, а якщо ви використовуєте інший тип бази ви точно про це знаєте.

    У налаштуваннях вказуємо шлях (повний URL):

    Перевіряємо підключення. Після успішного підключення, ми повинні побачити структуру бази даних, як і через phpMyAdmin.

    Вибираємо потрібну нам таблицю (в даному прикладі xpamxpi_post):

    Робимо її експорт:

    Відключаємо висновок зайвих чарунок, щоб вони не заважали при редагуванні. Для цього знімаємо галочки, крім потрібних нам таблиць:

    Виконання займе кілька хвилин.

    Редагуємо отриману таблицю як у першому прикладі. А після редагування імпортуємо її назад.

    Що це дає?

    Наприклад, у нас на сайті 500 сторінок, які мають проблеми. Щоб знайти і відредагувати одну сторінку йде 1-3 хвилини (нехай в середньому 90 секунд). Помножимо на 500 – виходить 750 хвилин (або 12,5 годин).

    Експорт бази – 10 хвилин, редагування – 1 годину, імпорт – 10 хвилин.

    Загальна: 12 проти 2 годин роботи!

    Погодьтеся, це непогана економія часу. Крім того, редагувати мета теги зручніше, коли вони всі в одній таблиці, ніж повторення монотонних нудних дій.

    Що робити, якщо доступу до бази немає?

    В такому випадку ми будемо використовувати чудову програму, яка дозволяє економити час в промислових масштабах – ZennoPoster.

    Розглянемо, як його налаштувати, щоб вона автоматично виправив всі проблемні сторінки через адмінку.

    Парсим сайт через ComparseR, беремо з краулера список проблемних сторінок, експортуємо його в таблицю. Ось дані, які нам потрібні: URL, Title, Description. Коректуємо ці дані в таблиці. А тепер приступимо до налаштування їх автоматичного заповнення.

    Для демонстрації роботи я просто буду додавати топонім в title. Отже.

    Створюємо новий проект в Зеннопостере. І відразу вчимо софт авторизовуватись в адмінці, щоб не було проблем з разлогированием. Задати заповнення форми можна через візуальний редактор, для цього клікаєм по формі:

    Вибираємо пункт SET з атрибутом «value» і його значення (ті дані, які ми хочемо передати у форму) в конструкторі дій:

    Натискаємо кнопку «Тестувати». Якщо все правильно, це значення повинно з’явиться у вибраному полі у формі авторизації. Натискаємо на кнопку «Додати в проект».

    За аналогією чинимо і з полем пароль. Клік по полю введення правою кнопкою миші, вибираємо конструктор дій. Вказуємо параметр SET і атрибут «value».

    Натискаємо «Тестувати», якщо все ок, і поле заповнилося, натискаємо «Додати в проект».

    Так само чинимо з кнопкою «Увійти» тільки замість пункту SET вибираємо «Rise» подія «click»:

    Далі робимо перевірку якогось унікального шматка тексту, який з’являється після успішної авторизації, щоб зрозуміти, увійшли ми в адмінку чи ні. Нехай у нас це буде «Головна сторінка панелі управління»:

    Клікаєм правою кнопкою і вибираємо пункт «Перевірка виділеного тексту на сторінці:

    У міні карті з’явиться 2 кубика «Взяти текст» і логічний оператор.

    Таким чином, якщо Зенно знайде текст на сторінці, то логічний оператор продовжить виконання завдання з зеленим гілці (це успішне проходження умови). Якщо ні, то софт завершить виконання завдання по червоній гілці (це помилка, щось пішло не так, умова на спрацювало).

    Далі ми завантажуємо створену раніше таблицю, щоб Зенно міг оперувати з даними з неї. Для цього переходимо в розширений режим. І оголошуємо таблицю:

    Підключаємо таблицю зі списком проблемних сторінок, яку видав нам ComparseR. Проставляємо галочки «Завантажити з файлу» (вказує, що таблицю потрібно завантажити з файлу, а не створити в оперативній пам’яті), «Зберегти зміни в таблиці файл» (щоб всі зміни таблиці записувалися відразу в файл), «Залишати порожній файл» (не дає видалити файл, навіть якщо з нього видалити всі рядки) і «Перший рядок — заголовки». Список, що випадає, дозволяє вказати формат або текст з роздільником. Коротше, проставляємо галочки, як на скріні і вказуємо шлях до файлу:

    Невеликий відступ. Я перепробував безліч програм і прийомів для автоматизації дій в браузері, але Зеннопостер виграє тим, що він відмінно працює з усіма типами даних (таблиці, текстові файли, бази даних) і можна необмежено розширювати його можливості, підключаючи додаткові бібліотеки. І ця настройка підключення таблиці тому приклад.

    Тепер ми можемо робити звернення до таблиці з візуального конструктора і оперувати цими даними. Обираємо дію з таблицею:

    Виконавши кубик, ми отримали три змінні, що містять URL (з якого ми отримаємо значення ID для формування посилання на редагування новини), старий title і значення нового title.

    Через пункт «Обробка тексту» застосовуємо формальним виразом (Regex):

    На змінну URL ми застосовуємо регулярний вираз (?<=/)[0-9][0-9][0-9].*?(?=-) і говоримо Зенно покласти результат в змінну id.

    Тепер в посиланні виду https://xpam-xpicta.ru/admin43.php?mod=editnews&action=editnews&id=10579#tabextra замінюємо 10579 на змінну.

    Де 10579 — наш id (потрібно на місце цих цифр поставити висновок змінної, яку ми отримали при обробці тексту {-Variable.id}). Повинно вийти:

    https://xpam-xpicta.ru/admin43.php?mod=editnews&action=editnews&id={-Variable.id-}#tabextra

    Треба додати цю посилання кубик: Клік правою клавішею на робочу область -> Вибрати -> Таби -> «Перехід на сторінку»:

    Після виконання, ми потрапляємо на сторінку редагування мета-тегів.

    Аналогічно як ми вчили софт заповнювати форму авторизації, додаємо заповнення форми з title і її відправлення.

    Робимо виконання циклічним і дивимося, як комп’ютер працює за нас!

    Спочатку це здається складним і незрозумілим, але витративши пару годин на вивчення, ви зможете робити це набагато швидше й вирішувати безліч інших завдань.

    Наприклад, власник сайту планує почати просування в декількох регіонах. Для цього були створені регіональні поддоменны, і залиті точні копії основного сайту. Не найкраще рішення, але краще, ніж нічого.

    Наше завдання полягає в тому, щоб прописати топонім у всіх title товарів і категоріях. Потім затерти всі SEO-тексти, попередньо зібравши размешенные для генерації завдань копірайтеру. А потім готові переписані тексти повернути на колишнє місце. Там 900 категорій.

    Скільки, по-вашому, займе ця робота?

    Всього пару годин на налаштування Zennoposter!

    Налаштовуємо автоматичну авторизацію в адмінці:

    Принцип той же, що і раніше. З адмінки отримуємо список ID розділів:

    Ці дані використовуємо для генерації посилання на редагування:

    Замість виділеного ID потрібно підставити висновок змінної:

    Через пункт «Перехід на сторінку» відкриваємо форму редагування за посиланням:

    bitrix/admin/iblock_section_edit.php?IBLOCK_ID=16&type=catalog&ID={-Variable.idlink-}&lang=ru&from=iblock_section_admin&find_section_section=0

    Як у прикладі вище налаштовуємо спочатку одержання даних для збереження в таблиці, потім їх зміни:

    В результаті у візуальному конструкторі ми отримаємо кубик, який покладе текст в змінну, де його вже можна обробити, як душі завгодно. Ми ж збережемо його в таблицю.

    Тепер текст потрібно затерти, оскільки він неунікальний, т. к. виводиться на основному домені. Для цього робимо все, як і раніше, для отримання даних, але замість Get вибираємо пункт Set:

    І видаляємо всі з поля «Значення».

    В результаті при виконанні цього кубика значення форми буде передана порожнеча.

    Всі інші поля, які необхідно змінити обробляємо за аналогією:

    Потім робимо повідомлення, що розділ оброблений і збільшуємо лічильник циклу.

    Вказуємо зациклення. Запускаємо і чекаємо поки Зенно закінчить правити тайтли і дискрипшены у категорій і товарки і видаляти seo-тексти.

    Отже, у нас 900 розділів. За константу беремо на ручну обробку одного розділу 4 хвилини. Виходить 60 годин рутинної роботи, від якої можуть повіситися навіть найстійкіші контент-менеджери. При цьому не виключена ймовірність помилок.

    А щоб повернути тексти, коли вони будуть переписані, ми просто вказуємо не Null, а змінну з текстом, яку отримуємо через кубик «Отримати рядок таблиці:

    Ось як-то так.

    І на закінчення можу сказати, що дана стаття – це лише вступна частина. Zennoposter – багатофункціональний інструмент, з його допомогою можна автоматизувати майже будь рутинне дію. Тому в майбутньому, якщо цей пост ви оціните, я постараюся викласти сюди ще пару корисних постів по автоматизації seo-завдань.

    На цьому все, друзі. Артем обіцяв написати продовження, якщо вам це цікаво. Так що ставимо питання в коментарях!

    Дякую за увагу. До зв’язку!

    З повагою, Олександр Алаєв