Google SEO Adaptation Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Adapt dymka.app for Google indexing and ranking without losing existing Yandex positions.

Architecture: Single-deployment approach — fix technical blockers (robots.txt, hreflang, JSON-LD) and add content (MTProxy section, unlocks section, comparison expansion, 4 FAQ) in one PR. All changes are additive — nothing currently working in Yandex gets modified.

Tech Stack: Jekyll 4.3, HTML, CSS, JSON-LD structured data

Spec: docs/superpowers/specs/2026-04-05-google-seo-adaptation-design.md


File Map

File Action Responsibility
robots.txt Fix Sitemap URL old domain → dymka.app
_config.yml Update description field
_layouts/default.html Add hreflang, Organization JSON-LD, BreadcrumbList JSON-LD, 4 new FAQ in FAQPage JSON-LD
index.html Add 2 new sections, expanded comparison, 4 new FAQ items
styles.css Add Styles for .proxy-section and .unlocks

Task 1: Fix robots.txt and _config.yml

Files:

In robots.txt, replace line 4:

Sitemap: https://vpn.nnslvp.io/sitemap.xml

with:

Sitemap: https://dymka.app/sitemap.xml

In _config.yml, replace line 3:

description: "VPN для России с умным роутингом. Госуслуги, Авито, Wildberries работают без отключения. Telegram разблокирован. Бесплатно."

with:

description: "Бесплатный VPN бот в Telegram. Обход блокировок Telegram и сайтов в России. Умный роутинг  Госуслуги работают без отключения. Подключись за 30 секунд."

Run: bundle exec jekyll build 2>&1 | tail -5 Expected: Build succeeds, no errors.

git add robots.txt _config.yml
git commit -m "fix: update robots.txt sitemap URL and config description for Google indexing"

Task 2: Add hreflang and JSON-LD to layout

Files:

In _layouts/default.html, after line 14 (<meta name="robots" content="index, follow">), add:

  <link rel="alternate" hreflang="ru" href="https://dymka.app/docs/superpowers/plans/2026-04-05-google-seo-adaptation.html" />
  <link rel="alternate" hreflang="x-default" href="https://dymka.app/docs/superpowers/plans/2026-04-05-google-seo-adaptation.html" />

In _layouts/default.html, after the closing </script> of the FAQPage JSON-LD block (line 161), add:


<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Дымка VPN",
  "url": "https://dymka.app",
  "logo": "https://dymka.app/assets/favicon-96x96.png",
  "sameAs": ["https://t.me/dymkavpn_bot"]
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "Главная",
    "item": "https://dymka.app/"
  }]
}
</script>

Run: bundle exec jekyll build 2>&1 | tail -5 Expected: Build succeeds.

Run: grep -c 'hreflang' _site/index.html Expected: 2

Run: grep -c 'BreadcrumbList' _site/index.html Expected: 1

git add _layouts/default.html
git commit -m "feat: add hreflang tags, Organization and BreadcrumbList JSON-LD"

Task 3: Add 4 new FAQ entries to FAQPage JSON-LD

Files:

In _layouts/default.html, inside the FAQPage JSON-LD mainEntity array, after the last existing question object (the “Есть ли пробный период?” entry ending around line 157), add a comma after the closing } of the last entry, then add these 4 new question objects:

    ,
    {
      "@type": "Question",
      "name": "Какой VPN работает через Telegram?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Дымка VPN работает как Telegram-бот @dymkavpn_bot. Откройте бот, нажмите /start — бот определит ваше устройство и выдаст конфигурацию. Скачайте VPN-приложение из Play Store или App Store (v2rayNG для Android, Streisand для iOS), вставьте ссылку — VPN подключится за 30 секунд. Протокол VLESS+Reality обходит блокировки DPI в России."
      }
    },
    {
      "@type": "Question",
      "name": "Какой VPN скачать чтобы работал YouTube?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Для YouTube в России нужен VPN с обходом DPI-блокировок. Большинство популярных VPN (NordVPN, ExpressVPN, ProtonVPN) заблокированы. Дымка VPN использует протокол VLESS+Reality — трафик неотличим от обычного HTTPS, поэтому блокировки не срабатывают. YouTube работает без замедления, включая видео в HD и 4K."
      }
    },
    {
      "@type": "Question",
      "name": "Как сделать VPN в телеграмме?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Откройте @dymkavpn_bot в Telegram и нажмите /start. Бот спросит ваше устройство — Android, iPhone или ПК. Скачайте VPN-приложение из магазина: v2rayNG (Android, Play Store), Streisand (iOS, App Store), v2rayN (Windows/macOS/Linux). Бот выдаст ссылку подписки — скопируйте её в приложение. VPN подключится автоматически. Весь процесс — 30 секунд, регистрация не нужна."
      }
    },
    {
      "@type": "Question",
      "name": "Чем отличается прокси от VPN?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Прокси (MTProxy) разблокирует только Telegram — работает мгновенно, без установки приложений. Нажмите «Добавить прокси» — Telegram подключится за секунды. VPN разблокирует всё: YouTube, Instagram, ChatGPT и другие сервисы — но нужно скачать приложение из Play Store или App Store. Если нужен только Telegram — добавьте прокси. Нужны другие сервисы — подключите VPN через бота @dymkavpn_bot."
      }
    }

Run: bundle exec jekyll build && python3 -c "import json; data=open('_site/index.html').read(); [json.loads(s.split('</script>')[0]) for s in data.split('application/ld+json\">')[1:]]; print('All JSON-LD blocks valid')" Expected: All JSON-LD blocks valid

git add _layouts/default.html
git commit -m "feat: add 4 new FAQ entries to FAQPage JSON-LD for Google PAA"

Task 4: Add MTProxy section to index.html

Files:

In index.html, after the closing </section> of the Hero section (line 51, after <!-- Hero --> section ends), add:


<!-- Proxy -->
<section class="proxy-section" id="proxy">
  <div class="wrap">
    <div class="slabel">Прокси</div>
    <h2>Бесплатный прокси для Telegram — доступ за 30 секунд</h2>
    <div class="proxy-content">
      <div class="proxy-text">
        <p>Telegram заблокирован? <strong>Добавьте MTProxy прокси</strong> — Telegram подключится мгновенно, без установки приложений и регистрации. MTProxy — это встроенная в Telegram технология прокси, которая работает на уровне мессенджера и не требует дополнительного ПО.</p>
        <p>Прокси разблокирует переписки, каналы, звонки и видеозвонки в Telegram. Настройка занимает 30 секунд: нажмите кнопку или отсканируйте QR-код — Telegram сам предложит подключиться к прокси. В 2026 году это самый быстрый способ вернуть доступ к Telegram в России.</p>
        <p>Нужен доступ к YouTube, Instagram или ChatGPT? Через прокси откройте бота <a href="https://t.me/dymkavpn_bot">@dymkavpn_bot</a> и подключите полноценный VPN — он разблокирует все заблокированные сервисы.</p>
      </div>
      <div class="proxy-action">
        <a href="tg://proxy?server=proxy.dymka.app&port=2087&secret=ee9294cd43917c945d88db17fa0c0988617777772e636c6f7564666c6172652e636f6d" class="btn">
          Добавить прокси в Telegram
          <span class="btn-arr">&rarr;</span>
        </a>
      </div>
    </div>
  </div>
</section>

Run: bundle exec jekyll build 2>&1 | tail -3 Expected: Build succeeds.

Run: grep -c 'proxy-section' _site/index.html Expected: 1

git add index.html
git commit -m "feat: add MTProxy section targeting 'прокси для телеграм' keyword cluster"

Task 5: Add “Какие сервисы разблокирует” section to index.html

Files:

In index.html, after the closing </section> of the VLESS section (after <!-- VLESS section --> ends), add:


<!-- Unlocks -->
<section class="unlocks" id="unlocks">
  <div class="wrap">
    <div class="slabel">Доступ</div>
    <h2>Какие сервисы разблокирует Дымка VPN</h2>
    <div class="unlocks-grid">
      <div class="unlock-card">
        <h3>Видео и музыка</h3>
        <p><strong>YouTube</strong> — видео без буферизации в HD и 4K, Shorts загружаются мгновенно, YouTube Music работает в фоне. <strong>Spotify</strong> — полный каталог без региональных ограничений. <strong>Netflix</strong> — зарубежные библиотеки контента. <strong>Twitch</strong> — стримы без задержек.</p>
      </div>
      <div class="unlock-card">
        <h3>Соцсети</h3>
        <p><strong>Instagram</strong> — лента, Stories, Reels и Direct без ограничений. <strong>Twitter/X</strong> — полный доступ к ленте и Space. <strong>Facebook</strong> — страницы, группы и Marketplace. <strong>LinkedIn</strong> — поиск вакансий и деловые контакты. <strong>TikTok</strong> — просмотр и публикация видео.</p>
      </div>
      <div class="unlock-card">
        <h3>Мессенджеры</h3>
        <p><strong>Telegram</strong> — мгновенный доступ через MTProxy прокси без установки приложений, или полный VPN для всего трафика. <strong>WhatsApp</strong> — голосовые и видеозвонки, которые блокируются без VPN. <strong>Discord</strong> — голосовые каналы, стримы и экран.</p>
      </div>
      <div class="unlock-card">
        <h3>Работа и AI</h3>
        <p><strong>ChatGPT</strong> — доступ к GPT-4 и генерации изображений. <strong>Claude</strong> — полный доступ к claude.ai. <strong>Google Gemini</strong> — AI-функции Google без ограничений. <strong>Notion AI</strong>, <strong>GitHub Copilot</strong> — инструменты для разработчиков и продуктивности.</p>
      </div>
    </div>
    <p class="unlocks-note">Умный роутинг гарантирует, что российские сайты — Госуслуги, Авито, Wildberries, Сбербанк, банковские приложения — продолжают работать напрямую, без замедления. VPN включается только для заблокированных сервисов.</p>
  </div>
</section>

Run: bundle exec jekyll build 2>&1 | tail -3 Expected: Build succeeds.

Run: grep -c 'unlocks' _site/index.html Expected: at least 3 (section class, grid class, note class)

git add index.html
git commit -m "feat: add 'Какие сервисы разблокирует' section with service categories"

Task 6: Expand comparison text and add 4 FAQ HTML items

Files:

In index.html, after the existing <p class="cmp-note"> paragraph in the comparison section (line 143), add:

    <div class="cmp-detail">
      <p>В 2024–2026 годах Роскомнадзор усилил блокировки VPN через систему глубокой инспекции пакетов (DPI) и ТСПУ. Протоколы OpenVPN, WireGuard и L2TP имеют характерные «отпечатки» в трафике и легко обнаруживаются. NordVPN, ExpressVPN и ProtonVPN перестали работать в России именно по этой причине.</p>
      <p>Дымка VPN использует протокол VLESS+Reality — трафик маскируется под обычное TLS-соединение и неотличим от обычного HTTPS. DPI-системы не могут его обнаружить. VPN-приложения (v2rayNG, Streisand, v2rayN) доступны в Play Store и App Store — не нужно скачивать файлы с непроверенных сайтов. Бот @dymkavpn_bot выдаёт только конфигурацию подключения.</p>
    </div>

In index.html, after the last <div class="faq-item"> (the “Есть ли пробный период?” item ending around line 296), but before the closing </div> of .faq-list, add:


      <div class="faq-item">
        <div class="faq-q">Какой VPN работает через Telegram?</div>
        <div class="faq-a">
          <p>Дымка VPN работает как Telegram-бот <a href="https://t.me/dymkavpn_bot">@dymkavpn_bot</a>. Откройте бот, нажмите /start — бот определит ваше устройство и выдаст конфигурацию. Скачайте VPN-приложение из Play Store или App Store (v2rayNG для Android, Streisand для iOS), вставьте ссылку — VPN подключится за 30 секунд. Протокол VLESS+Reality обходит блокировки DPI в России.</p>
        </div>
      </div>

      <div class="faq-item">
        <div class="faq-q">Какой VPN скачать чтобы работал YouTube?</div>
        <div class="faq-a">
          <p>Для YouTube в России нужен VPN с обходом DPI-блокировок. Большинство популярных VPN (NordVPN, ExpressVPN, ProtonVPN) заблокированы. Дымка VPN использует протокол VLESS+Reality — трафик неотличим от обычного HTTPS, поэтому блокировки не срабатывают. YouTube работает без замедления, включая видео в HD и 4K.</p>
        </div>
      </div>

      <div class="faq-item">
        <div class="faq-q">Как сделать VPN в телеграмме?</div>
        <div class="faq-a">
          <p>Откройте <a href="https://t.me/dymkavpn_bot">@dymkavpn_bot</a> в Telegram и нажмите /start. Бот спросит ваше устройство — Android, iPhone или ПК. Скачайте VPN-приложение из магазина: v2rayNG (Android, Play Store), Streisand (iOS, App Store), v2rayN (Windows/macOS/Linux). Бот выдаст ссылку подписки — скопируйте её в приложение. VPN подключится автоматически. Весь процесс — 30 секунд, регистрация не нужна.</p>
        </div>
      </div>

      <div class="faq-item">
        <div class="faq-q">Чем отличается прокси от VPN?</div>
        <div class="faq-a">
          <p><strong>Прокси (MTProxy)</strong> разблокирует только Telegram — работает мгновенно, без установки приложений. Нажмите «Добавить прокси» — Telegram подключится за секунды. <strong>VPN</strong> разблокирует всё: YouTube, Instagram, ChatGPT и другие сервисы — но нужно скачать приложение из Play Store или App Store. Если нужен только Telegram — добавьте прокси. Нужны другие сервисы — подключите VPN через бота <a href="https://t.me/dymkavpn_bot">@dymkavpn_bot</a>.</p>
        </div>
      </div>

Run: bundle exec jekyll build 2>&1 | tail -3 Expected: Build succeeds.

Run: grep -c 'faq-item' _site/index.html Expected: 12 (8 existing + 4 new)

git add index.html
git commit -m "feat: expand comparison text and add 4 new FAQ entries for Google"

Task 7: Add CSS for new sections

Files:

In styles.css, after the .features styles block (after line 262, before .howto), add:

/* ─── PROXY SECTION ─── */
.proxy-section { padding:80px 0; border-top:1px solid var(--border); }
.proxy-content { max-width:700px; }
.proxy-content p { font-size:16px; color:var(--muted); line-height:1.75; margin-bottom:18px; }
.proxy-content strong { color:var(--smoke-light); font-weight:500; }
.proxy-content a { color:var(--smoke); text-decoration:underline; text-decoration-color:rgba(124,58,237,.3); text-underline-offset:3px; }
.proxy-content a:hover { text-decoration-color:var(--smoke-deep); }
.proxy-action { margin-top:32px; }

In styles.css, after the .vless styles block (after line 333), add:

/* ─── UNLOCKS ─── */
.unlocks { padding:80px 0; border-top:1px solid var(--border); }
.unlocks-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border); }
.unlock-card {
  background:var(--bg); padding:36px 32px; transition:background .2s;
}
.unlock-card:hover { background:rgba(124,58,237,.03); }
.unlock-card h3 {
  font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:400;
  color:var(--text); margin-bottom:14px;
}
.unlock-card p { font-size:15px; color:var(--muted); line-height:1.75; }
.unlock-card strong { color:var(--smoke-light); font-weight:500; }
.unlocks-note { font-size:15px; color:var(--muted); line-height:1.7; margin-top:32px; max-width:700px; }

In styles.css, after the .cmp-note style (around line 328), add:

.cmp-detail { max-width:700px; margin-top:24px; }
.cmp-detail p { font-size:15px; color:var(--muted); line-height:1.75; margin-bottom:14px; }
.cmp-detail strong { color:var(--smoke-light); font-weight:500; }

Find the existing mobile media query in styles.css (look for @media with max-width). Add inside it:

  .proxy-section { padding:48px 0; }
  .unlocks-grid { grid-template-columns:1fr; }
  .unlock-card { padding:28px 20px; }

Run: bundle exec jekyll build 2>&1 | tail -3 Expected: Build succeeds.

Run: bundle exec jekyll serve and check http://localhost:4000 in browser. Verify:

git add styles.css
git commit -m "feat: add CSS for proxy section, unlocks grid, and comparison detail"

Files:

Run: bundle exec jekyll build && python3 -c "import json; data=open('_site/index.html').read(); blocks=[json.loads(s.split('</script>')[0]) for s in data.split('application/ld+json\">')[1:]]; print(f'{len(blocks)} JSON-LD blocks valid'); [print(f' - {b.get(\"@type\", \"unknown\")}') for b in blocks]"

Expected output:

5 JSON-LD blocks valid
  - WebSite
  - SoftwareApplication
  - FAQPage
  - Organization
  - BreadcrumbList

Run: python3 -c "from html.parser import HTMLParser; import re; h=HTMLParser(); text=re.sub(r'<[^>]+>','',open('_site/index.html').read()); words=len([w for w in text.split() if len(w)>0]); print(f'Word count: {words}')"

Expected: Word count should be ~1200-1500 (up from 784).

Run: grep -ic 'прокси' _site/index.html && grep -ic 'mtproxy' _site/index.html && grep -ic 'youtube' _site/index.html && grep -ic 'обход блокировок' _site/index.html

Expected: All counts > 0.

Check that links in .proxy-content, .unlock-card, .cmp-detail, and new FAQ items have proper underline styling. If .proxy-content a was already added in Task 7, verify it. If .unlock-card a or .cmp-detail a is missing, add to styles.css line 20:

.feat-d a, .faq-a a, .vless-content a, .cmp-note a, .cmp-detail a, .review a, .proxy-content a, .unlock-card a, .unlocks-note a {

And the matching hover rule on line 24.

Run these checks to confirm nothing was modified:

grep '<title>' _site/index.html | head -1
# Expected: contains "Дымка — бесплатный VPN для Telegram через бота"

grep 'meta name="description"' _site/index.html
# Expected: contains "Бесплатный VPN бот в Telegram"

grep -c '<h1>' _site/index.html
# Expected: 1

grep '<h1>' _site/index.html
# Expected: contains "Бесплатный VPN" and "для Telegram"

If any fixes were made in step 4:

git add styles.css
git commit -m "fix: add link styles for new content sections"

If no fixes needed, skip this step.