Про мене Послуги Детальні кейси Блог Інструменти Відгуки Партнерам Контакти

SEO сайту доставки їжі: що я зробив і навіщо — розбір реального звіту

SEO сайту доставки їжі: розбір реального звіту

Я спеціаліст з Google Ads, але реклама не живе окремо від сайту. Якщо сайт повільний, з неактуальними умовами доставки і помилками, реклама приводить людей у нікуди, а органічний трафік просто проходить повз.

Нижче розбираю реальний звіт про SEO і технічну оптимізацію сайту доставки їжі. Інтернет-магазин на OpenCart (ocStore 3.0.2.0), дві мовні версії — українська і російська. Роботи завершено 29.10.2026. Результатів у позиціях ще немає, їх буде видно через кілька тижнів, тому тут тільки про те, що зроблено і навіщо.

Зміст статті
  1. Як я вносив зміни
  2. Контент: категорії, головна, заклади, контакти
  3. Блог
  4. Умови доставки: однакові на всіх сторінках
  5. Сторінки доставки по районах
  6. Технічне SEO
  7. Внутрішня перелінковка
  8. Мікророзмітка і прев’ю
  9. Новий заклад у Чугуєві
  10. Google Business
  11. Швидкість
  12. Оформлення замовлення
  13. Що лишилось програмісту
  14. Зведена таблиця змін
  15. Що далі
  16. Скільки коштують такі роботи
  17. FAQ
ПоказникБулоСтало
Категорії з текстами і мета-тегамизастарілі або порожні15 × 2 мови
Статті блогузастарілі49 переписано + 4 нові
Сторінки доставки по районах011 × 2 мови
URL у карті сайту620 зі сміттям, UA-карта з помилкою408 живих у кожній карті
CLS головної на мобільних0,3830
Переадресації 301—64
Перша сторінка звіту про SEO і технічну оптимізацію сайту доставки їжі з ключовими цифрами
Перша сторінка звіту з ключовими цифрами

Як я вносив зміни

Усі зміни в базі і файлах я робив скриптами. Кожен скрипт спочатку показує попередній перегляд «було → стане», робить резервну копію і має кнопку відкату. Це важливо, коли працюєш на живому сайті, через який щодня йдуть замовлення.

Повторний запуск скрипта нічого не дублює: якщо блок уже додано, скрипт його пропускає. Після кожного застосування очищався кеш шаблонів, а результат я перевіряв на сайті і в Search Console.

Попередній перегляд скрипта: опис категорії і мета-теги «було → стане»
Попередній перегляд скрипта «було → стане»

Контент: категорії, головна, заклади, контакти

Категорії. Для 15 категорій меню (піца, бургери, фрі, акції, WOK, піцоне, суші, суші-сети, салати, супи, десерти, сніданки, напої, пиво, алкоголь) двома мовами написав блок «Детально» внизу сторінки, meta title і meta description. Категорії — головні посадкові сторінки під запити на кшталт «піца доставка Бровари» чи «суші Троєщина». Раніше тексти були застарілими або порожніми, ще й з неправильною сумою безкоштовної доставки. Нові тексти зібрав під реальні запити з Search Console.

Блок «Детально» внизу категорії «Піца» з умовами доставки і посиланнями на статті блогу
Блок «Детально» в категорії «Піца» з посиланнями на статті

Головна і сторінки закладів. Новий текст і мета-теги, актуальні умови доставки. Сторінки трьох закладів (Троєщина і два в Броварах) отримали нові тексти. Закриті точки позначив «закрито» з пропозицією замовити доставку з чинних закладів. Інформація про закриті точки вводила клієнтів в оману, а трафік на ці сторінки не повинен губитися. Локальні запити на кшталт «піцерія Троєщина» ведуть саме сюди. У шаблон сторінки закладу додав стилі, бо текст там погано читався.

Контакти. У заголовку H1, title і description сторінки контактів не було Чугуєва, де відкрився новий заклад. Тепер є: «Телефони та адреси піцерій — Київ, Бровари, Чугуїв». Заодно прибрав застарілу позначку «оновлено» з датою в title.

Скрипт для сторінки контактів: title і description «було → стане», додано Чугуїв
Контакти: Чугуїв у заголовку, title і description

Мета-теги товарів. Раніше всі товари мали однакові шаблонні заголовки. Для 100 пріоритетних записів (топ-50 товарів за показами × 2 мови) написав індивідуальні title і description. Код картки товару доопрацював так: якщо в товару заповнені власні мета-теги, використовуються вони, інакше — загальний шаблон, як і раніше. Заодно виправив емодзі в мета-тегах: база в кодуванні utf8 не зберігає 4-байтові емодзі, і вони перетворювались на «?». Таких записів було 172, емодзі замінив на допустимі символи.

Картка товару «Гамбургер» з перевіркою мета-тегів: новий title, description, мова і canonical
Картка товару: новий title, description і canonical

Блог

49 статей переписано. Взяв статті, які вже мали покази в Google: нові заголовки H1, тексти, мета-теги, внутрішні посилання на категорії й інші статті, блок «Читайте також» наприкінці. Прибрав застарілі акції, неправильні суми й адреси закритих точок. Обидві мовні версії. У шаблоні статті виправив стилі: заголовки наїжджали на текст.

Оновлена стаття блогу зі структурою заголовків H2 і внутрішніми посиланнями
Оновлена стаття зі структурою H2, посиланнями і умовами доставки

4 нові статті під інформаційні запити, кожна двома мовами і з банером 1920×600:

СтаттяПід які запитиПублікація
Калорійність піцикалорійність піци, ккал у шматкуопубліковано
Піца 30 чи 40 смяку піцу замовити, скільки піц на компаніюопубліковано
Чікен рол: що це, склад і ціначікен рол що це, склад, ціна30.10
Скільки ролів замовити на людинускільки ролів замовити, суші-сет на компанію30.10
Банер нової статті блогу «Скільки ролів на людину» для сайту доставки суші
Банер нової статті «Скільки ролів на людину»

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

Умови доставки: однакові на всіх сторінках

Це, мабуть, найважливіша частина для бізнесу. Сторінка «Доставка та оплата» була лише російською, з застарілими умовами і без правого берега. Тепер вона двома мовами, з таблицями по зонах:

ЗонаРайониМін. замовленняПриймаємо доЧас доставки
1Київ: Троєщина, Воскресенка, Лісовий, Русанівка, Лівобережний, Березняки; Бровари400 грн22:00до 59 хв
2Села біля Броварів: Погреби, Калинівка, Квітневе, Требухів, Княжичі800 грн22:00до 89 хв
3Київ: ДВРЗ; біля Броварів: Гоголів, Безуглівка, Чубинське, Щасливе, Гора1200 грн21:00до 89 хв
4Київ: Позняки, Осокорки, Харківський, Дарниця, Бортничі + правий берег2000 грн21:00до 89 хв
Чугуїв 1Центр міста400 грн21:00до 59 хв
Чугуїв 2Мікрорайон Авіатор та околиці800 грн20:30до 89 хв
Чугуїв 3Есхар, Малинівка, Клугино-Башкирівка1300 грн20:00до 89 хв
Нова сторінка умов доставки з таблицею по зонах: мінімальна сума, час прийому замовлень, час доставки
Нова сторінка умов доставки з таблицею по зонах
Карта зон доставки по Києву і Броварах з межами районів
Карта зон доставки: Київ і Бровари
Карта зон доставки по Чугуєву: центр, Авіатор, Есхар, Малинівка
Карта зон доставки: Чугуїв

Але оновити одну сторінку мало. Старі умови розійшлися по описах категорій, статтях і сторінках закладів. Окремий скрипт виправив їх усюди. Наприклад, для дальньої зони в текстах стояло «від 400 грн, до 59 хвилин», а реально — «від 2000 грн, до 89 хвилин, до 21:00». Для ДВРЗ і сіл указав їхні мінімальні суми і всюди додав посилання на сторінку умов.

Що це означало на практиці: клієнти з віддалених районів читали «безкоштовно від 400 грн» і отримували відмову від оператора. Однакові умови на всіх сторінках — менше відмов і скарг, більше довіри і від людей, і від Google.

Сторінки доставки по районах

Створив 11 посадкових сторінок під запити «доставка піци + район», кожну двома мовами — 22 URL: Позняки, Осокорки, Харківський масив, Бортничі, ДВРЗ, Березняки, Русанівка, Воскресенка, Лісовий масив, Лівобережний масив, Правий берег.

  • на кожній сторінці: умови саме цієї зони, орієнтири району, популярні страви, акції, блок «Питання та відповіді», кнопки на меню і телефон;
  • банери 1920×600 згенерував у Gemini і конвертував у WebP, окремо для UA і RU версій;
  • на сторінки районів поставив посилання зі сторінки умов доставки і зі статей про лівий берег;
  • публікація 30.10, того ж дня — запит індексації в Search Console для 6 головних URL.

Раніше за запитами на кшталт «піца Осокорки» чи «доставка піци Позняки» на сайті просто не було відповідної сторінки. Окрема сторінка під район — основний спосіб отримати такий трафік.

Сторінка доставки піци на район Осокорки з банером, умовами зони і кнопками на меню
Сторінка «Доставка піци на Осокорки» з банером

Технічне SEO

Карти сайту. Стара карта містила 620 URL: видалені товари, дублі, адреси виду index.php?route=…, сторінки пагінації. Українська карта взагалі віддавала помилку і не потрапляла в Google. Тепер дві карти, /sitemap.xml (RU) і /sitemap-ua.xml (UA), по 408 URL: тільки товари з активних категорій, категорії, статті і заклади. Статус у Search Console — «Успішно».

Стара карта сайту в Search Console: 620 URL, українська карта зі статусом «Не отримано»
До: 620 URL і помилка «Не отримано»
Нові карти сайту RU і UA в Search Console: статус «Успішно», по 408 URL
Після: обидві карти «Успішно», по 408 URL

robots.txt. Додав рядок з українською картою, закрив службові розділи (логін, адмінку, системні папки), пошук і сортування.

Новий robots.txt сайту доставки їжі: закриті службові розділи, пошук і сортування, дві карти сайту
Новий robots.txt

«Биті» товари і 301. Знайшов товари без активної категорії: їхні сторінки віддавали помилку 500. 32 товари вимкнув і прибрав з карт сайту. Додав 64 правила 301 зі старих URL вимкнених товарів і застарілих сторінок на актуальні розділи меню. Помилки 500 псують оцінку сайту в Google, а переадресації зберігають накопичену вагу і клієнтів, які приходять за старими посиланнями.

Правила переадресацій 301 і адреси карт сайту в .htaccess
Переадресації в .htaccess

Canonical. Search Console показував сторінки закладів як «Копія, канонічний варіант не вибрано»: кожна відкривалася ще й за адресою з чужим мовним slug, а тегу canonical не було (у статей він був). Додав canonical, як у статтях блогу — один рядок у контролері.

Код сторінки закладу: тег canonical і hreflang для UA і RU версій
Canonical на сторінці закладу

Мова сторінки. Було lang="ua", стало lang="uk". Коду «ua» в стандарті немає, і Google міг неправильно визначати мову.

Внутрішня перелінковка

  • в описи 13 категорій (обидві мови, 26 записів) додав блок «Корисне з блогу» з 1–4 профільними статтями;
  • під статтями — 3 картки схожих статей «Ще з блогу», добір за темою: піца, суші, бургери, акції, діти. Показуються тільки там, де немає власного «Читайте також», а старі акції і закриті заклади не пропонуються;
  • на сторінки районів поставив посилання зі сторінки умов доставки і зі статей про відповідні райони.
Перевірка скрипта перелінковки: скільки посилань на статті додається в кожну категорію
Перевірка скрипта перед застосуванням: посилання з категорій на статті
Стаття з ручним блоком «Читайте також» і автоматичними картками «Ще з блогу»
Стаття з «Читайте також» і блоком «Ще з блогу»

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

Мікророзмітка і прев’ю

Товари (Product). Стара розмітка була з помилками: замість назви страви — назва категорії, помилка в полі ціни (lowprice замість lowPrice), без фото і опису, а для товарів без розмірів ціна рахувалася з рядка «250 грн». Тепер є назва страви, фото, опис, бренд, ціна (для піци 30/40 см — діапазон «від–до», для решти — одна ціна), наявність. Перевірка Google «Описи товарів» і «Дані про товари продавця» — без помилок. Коректна розмітка дозволяє показувати у видачі ціну і фото, а це помітніше за звичайне посилання.

Перевірка розширених результатів Google для сторінки товару: 3 елементи без помилок
Перевірка розширених результатів Google для товару без помилок

Заклади (Restaurant). На сторінках чотирьох чинних закладів: назва, адреса, телефон, години роботи (10:00–22:00, у Чугуєві до 21:00), кухня, посилання на меню і на профіль у Google Картах. Розмітка підтверджує Google адреси й години роботи для локального пошуку.

Перевірка розширених результатів Google для сторінки закладу: «Місцеві компанії» і «Організація» без помилок
Перевірка Google: «Місцеві компанії» без помилок

Організація (Organization) — у шапці сайту: назва і альтернативна назва, логотип у PNG, телефон, служба підтримки українською і російською, соцмережі (Facebook, Instagram, YouTube, Telegram), застосунки в App Store і Google Play.

FAQPage — на сторінках районів блок «Питання та відповіді» автоматично перетворюється на розмітку: на Осокорках 3 питання, на Позняках 5.

Open Graph. Раніше картинкою прев’ю на всіх сторінках був логотип у SVG, який месенджери не показують. Посилання в Telegram, Viber і Facebook надсилалися без картинки. Тепер у товару — фото страви, у статті — її банер, на решті сторінок — загальна картинка 1200×630 з логотипом і телефонами. Мова прев’ю (og:locale) залежить від мови сторінки: uk_UA або ru_UA. Гарне прев’ю — більше переходів з чатів.

Застосування скрипта Open Graph і розмітки закладів: 7 правок і нова картинка прев’ю
Застосування скрипта: 7 правок, картинку прев’ю створено

Новий заклад у Чугуєві

1 липня 2026 року мережа відкрила заклад у Чугуєві, а на сайті його не було. Створив сторінку двома мовами: дата відкриття, самовивіз і місця в залі, 3 зони доставки, меню, акції, карта. Фото взяв із банера новини про відкриття.

  • розмітка Restaurant: адреса, телефон, час закриття 21:00;
  • Чугуїв доданий у H1, title і description сторінки контактів;
  • перевірка Google «Місцеві компанії» і «Організація» — без помилок.
Нова сторінка закладу в Чугуєві з банером відкриття, режимом роботи і телефоном
Сторінка закладу в Чугуєві
Перевірка розширених результатів Google для закладу в Чугуєві: 4 елементи без помилок
Перевірка Google: «Місцеві компанії» та «Організація» без помилок

Google Business

У розмітку Restaurant чотирьох закладів додав посилання на їхні профілі в Google Картах (hasMap, sameAs). Так Google пов’язує сторінку сайту з профілем закладу на картах.

Під час перевірки знайшов, що в одному з акаунтів Google Business висять 3 старі заблоковані профілі зі старими адресами. Чинні заклади — в іншому акаунті. Такі речі варто знати до того, як розбиратися з локальною видачею.

Швидкість

Зсув верстки (CLS). На мобільних головна «стрибала» під час завантаження слайдера: CLS 0,383 при нормі до 0,1. Зарезервував місце під слайдер і завантажив перший слайд одразу з високим пріоритетом. Результат — CLS 0. У Search Console 29.10 запустив перевірку виправлення, вона триває до 28 днів.

Банери у WebP. Банери слайдера головної тепер віддаються у WebP: вони легші за JPG за тієї самої якості. Для цього модуль обробки картинок отримав параметр WebP, а на головній змінено 6 викликів. Шрифти отримали font-display: swap, щоб текст було видно одразу, без очікування шрифту. З головної прибрав 4 картинки «лоадера», які вантажилися з тестового домену.

Головна сторінка сайту доставки їжі після переведення банерів слайдера у WebP
Головна після переведення банерів у WebP
Застосування скрипта швидкості: підтримка WebP, правки модуля картинок, головної, стилів і шапки
Застосування скрипта: WebP і font-display

Зайве з кожної сторінки:

ЩоЧому прибрано
Шрифт Open Sans з Google FontsНе використовується (на сайті інший шрифт), блокував відмальовування
select2 (JS + CSS)Не викликається в жодному шаблоні, а вантажився на всіх сторінках
swiper (JS 204 КБ + CSS)Слайдери працюють на іншій бібліотеці
Google Maps APIТепер вантажиться лише на сторінці з картою
4 картинки «лоадера»Вантажилися з тестового домену
Застосування скрипта очищення: прибрано select2, swiper, Google Fonts і зайве підключення Google Maps
Застосування скрипта очищення скриптів і стилів

Після застосування перевірив: у шапці лишилися тільки jQuery і основний файл стилів, слайдер, кошик і оформлення замовлення працюють, помилок у консолі немає.

Оформлення замовлення

Поле Email у формі оформлення ніхто не заповнював. Я його приховав, але значення й надалі передається, тож обробка замовлення і вивантаження в облікову систему iiko (Syrve) не зачеплені. Тестове замовлення після правки пройшло.

Форма оформлення замовлення на сайті доставки їжі, поле Email до правки
Форма оформлення замовлення, поле Email до правки
Тестове замовлення на мобільній версії після правки форми: повідомлення «Дякуємо»
Тестове замовлення після правки

Довге оформлення. Після натискання «Оформити замовлення» індикатор крутився 5–6 секунд. Я заміряв кожен крок і знайшов причину: при кожному замовленні сайт заново завантажує з iiko (Syrve) усе меню, близько 9 МБ. Тільки це займає 4,35 секунди.

Замір часу кроків оформлення замовлення: завантаження всього меню з облікової системи займає 4,35 секунди
Замір часу кроків оформлення замовлення
Крок оформленняЧас
Токен Syrve0,05 с
Завантаження всього меню (9 072 КБ)4,35 с
Розбір меню (61 МБ пам’яті)0,10 с
Групи терміналів0,05 с
Лист адміністратору через SMTP0,02 с, помилка
Разом без створення замовлення4,57 с
Створення замовлення і перевірка статусуще ~1–3 с

Рішення — зберігати меню на сервері 10 хвилин і не тягнути його щоразу. Деталі нижче, у задачах для програміста.

Голодна людина не хоче чекати 6 секунд після кліку на кнопку. Про те, як оформлення замовлення вбиває конверсію в доставці їжі, я писав окремо.

CRO для Google Ads: не реклама зливає бюджет, його зливає ваш сайт Google Ads · МаркетингCRO для Google Ads: не реклама зливає бюджет. Його зливає ваш сайтЧому реклама не витягне кривий сайт: два реальні CRO-розбори (лендинг медичного сенсора і картка товару) та чекліст першого екрана.6 жов 2026Читати

Що лишилось програмісту

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

1. Кеш меню iiko (Syrve) — важливо

Сайт при кожному замовленні завантажує все меню з облікової системи — 9 МБ і 4,35 секунди. Рішення: зберігати меню на сервері 10 хвилин. Якщо в кеші не знайдеться товару з кошика (наприклад, його щойно додали в iiko), сайт сам завантажить свіже меню і повторить спробу, тож замовлення не загубляться. Готовий скрипт з бекапом і відкатом передав — його можна застосувати або взяти за зразок.

2. Замовлення в лозі лишаються у статусі «pending»

Кожне замовлення в лозі закінчується записом «Після трьох перевірок створення замовлення ще триває». Сайт тричі перевіряє статус у Syrve з паузою 0,2 секунди і не дочікується підтвердження, тож звірка суми не виконується. Треба переконатися, що всі замовлення доходять в iiko, і збільшити паузу, наприклад, до 1 секунди.

Записи експорту замовлень у лог: після трьох перевірок замовлення лишається у статусі pending
Останні записи експорту замовлень у лог

3. Захист від помилки 500 на товарах без категорії — важливо

Якщо в товару немає категорії або її видалили, відкриття картки товару йде в нескінченну рекурсію в методі побудови «хлібних крихт», і сайт віддає 500. Наслідки я прибрав вручну (32 товари вимкнено), але причина лишилась: після будь-якого видалення чи перенесення категорії помилка повернеться. Для програміста описав три кроки: безпечний метод із захистом від порожнього результату й обмеженням глибини, перевірку в контролері товару і, бажано, 404 або 301 для товарів без активної категорії. Плюс як це перевірити на тестовому товарі.

4. jQuery підключається двічі

Одна версія в шапці, друга в підвалі. Друга перезаписує першу, і плагіни, підключені до першої, губляться. Треба залишити одну версію, перевірити вбудовані скрипти в шаблонах і перенести завантаження скриптів у кінець сторінки або підключити з defer.

5. main.css на 232 КБ блокує відмальовування

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

6. Очищення сервера і персональні дані

  • прибрати тимчасові скрипти, бекапи і сміття з кореня сайту після перевірки всіх правок;
  • файли вивантажень з iiko (~90 МБ) з телефонами й іменами клієнтів лежать у публічній папці. Прямий доступ я закрив, але їх треба винести за межі сайту або видалити;
  • очистити error.log на 17 МБ.

7. Листи про замовлення через SMTP

Лист адміністратору надсилається синхронно через Gmail з таймаутом 5 секунд, а під час заміру він повернув помилку. Треба перевірити, чи листи доходять. Якщо не потрібні — вимкнути, це скоротить оформлення замовлення.

Зведена таблиця змін

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

ФайлЩо змінено
product/product.phpВласні мета-теги товару; фото для Open Graph; коректна розмітка Product і розрахунок ціни
product/product.twigСтарий блок розмітки замінено новим
posts/news.php«Ще з блогу»; банер статті в прев’ю; FAQPage
posts/news_info.twigСтилі тексту статті; картки «Ще з блогу»; вивід FAQPage
posts/restaurantsList.phpCanonical; розмітка Restaurant (4 заклади, час закриття, hasMap / sameAs)
restaurantsList_info.twigСтилі тексту; вивід розмітки Restaurant
common/header.phpКартинка й мова для Open Graph; lang="uk"
common/header.twigog:image і og:locale; розмітка Organization; прибрано Google Fonts
common/footer.twigGoogle Maps API лише на сторінці з картою
common/home.twigCLS: місце під слайдер, перший слайд без відкладеного завантаження, прибрано лоадер
common/home.php, tool/image.phpБанери у WebP
main.cssfont-display: swap
checkout/form.phpВимкнено підключення select2
module/banner.phpВимкнено підключення swiper (також carousel і slideshow)
checkout/form.twigПоле Email приховано
feed/custom_sitemap.phpЧисті карти сайту RU і UA
robots.txtКарта UA, закриття службових URL
.htaccess64 переадресації 301, адреси карт сайту
image/og-default.jpgНова типова картинка прев’ю
Таблиця базиЩо змінено
oc_category_descriptionТексти, мета-теги, «Корисне з блогу», умови доставки — 15 категорій × 2 мови
oc_posts_description49 статей оновлено; 4 нові статті, 11 сторінок районів, сторінка закладу × 2 мови; умови доставки; контакти; тексти закладів і головної
oc_product_descriptionМета-теги 100 записів, виправлення емодзі в 172 записах
oc_product32 товари без категорії вимкнено

Резервні копії бази і файлів збережені, відкат — кнопкою у відповідному скрипті.

Що далі

  • 30.10: поле «Сайт» у профілях Google Business — посилання на сторінку свого закладу з UTM-мітками;
  • 30.10: запит індексації сторінок районів і замір PageSpeed після правок швидкості;
  • через 2–3 тижні в Search Console: CLS, індексація сторінок районів і нових статей, зникнення дублів закладів, розширені результати (товари, місцеві компанії);
  • через 4–6 тижнів: позиції і кліки за запитами «доставка піци + район» і за новими статтями;
  • сторінка «Доставка піци в Чугуєві» за аналогією з районами Києва;
  • наповнення профілів Google Business: меню, фото, дописи;
  • наступні статті: «Піца на тонкому тісті», «Бортики для піци», «Запечені чи темпура роли», «Що замовити до пива».

Коли з’являться цифри, покажу їх окремо.

Скільки коштують такі роботи

Орієнтовна оцінка такого обсягу робіт на ринку України — $3 500–6 500, якщо робить фрилансер. Агентство за такий обсяг виставило б приблизно $6 000–10 000. Це орієнтир за поточними ставками на ринку, а не прайс.

БлокОбсягОцінка
Аудит: Search Console, індексація, коданаліз і план$150–300
Контент категорій15 × 2 мови, тексти і мета-теги$300–450
Оновлення блогу49 статей × 2 мови$1 000–2 000
Нові статті4 × 2 мови$150–300
Сторінки районів і умови доставки11 × 2 мови + сторінка умов$450–900
Головна, заклади, контактитексти, мета-теги, новий заклад у Чугуєві$200–350
Мета-теги товарів100 шт. + виправлення емодзі$100–200
Технічне SEOкарти сайту, 64 редиректи, помилка 500, canonical, lang$300–600
Мікророзмітка і Open GraphProduct, Restaurant, Organization, FAQ$200–400
ШвидкістьCLS, WebP, очищення скриптів$250–500
Банери~25 шт., генерація і WebP$100–250
Діагностика оформлення замовленнязаміри, ТЗ для програміста$100–200
Звіти2 PDF$100–200
Разом≈ $3 400–6 650

Таке SEO я роблю в пакеті з Google Ads і рекламою в ChatGPT — $1000 на місяць.

Кейс доставки їжі у Google Ads: мережа доставки піци, CPL 42 грн Кейс Google Ads · Доставка їжіКейс доставки їжі у Google Ads | Локальний бізнес | CPL 42 грн6+ років співпраці з мережею доставки піци. CPL 41,26 грн по всіх кампаніях, 174 грн без бренду. Як маніпулюють цифрами в кейсах Google Ads.14 вер 2026Читати 16 — СайтCRO-аудит сайтуАналіз сайту з погляду конверсії: що заважає користувачу з реклами залишити заявку чи зробити замовлення. Список конкретних правок із пріоритетами.від $50Детальніше
Сайт гальмує рекламу? Напишіть, подивлюсь, де губляться замовлення

FAQ по темі

Часті запитання

Чи потрібне SEO, якщо вже працює Google Ads?
Так. Реклама і SEO ведуть людей на той самий сайт. Актуальні умови, швидкість і зручне оформлення замовлення підвищують конверсію і для рекламного, і для органічного трафіку.
Навіщо окремі сторінки під райони доставки?
Люди шукають доставку саме у своєму районі. Без окремої сторінки з умовами цієї зони сайту нема чого показати за таким запитом.
Чому в карті сайту не повинно бути зайвих URL?
Google витрачає ресурс сканування на сміттєві й неіснуючі сторінки замість корисних. Чиста карта з живими сторінками допомагає швидше індексувати те, що справді важливо.
Що таке CLS і чому він важливий?
CLS — показник зсуву верстки під час завантаження. Коли сторінка «стрибає», людина промахується по кнопках і раніше залишає сайт. Норма — до 0,1.
Скільки чекати результатів від SEO?
Технічні виправлення Google перевіряє протягом кількох тижнів. Перші зміни в індексації видно через 2–3 тижні, у позиціях і кліках — зазвичай через 1–2 місяці.



Заявка

Обговоримо
ваш проєкт

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

🏆
Як Google Partner, я можу допомогти отримати рекламний бонус від Google до 55 000 грн на перші кампанії.
❌ Не працюю з: гемблінг · беттінг · алкоголь · тютюн · крипта · сірі ніші · МФО/PDL
Або напишіть напряму:
▸ new_project.init()
Обговорити проєкт