Pushizo Docs
Guides

Tanıtım sitesi, SEO ve AI SEO: pushizo.com yayın adımları

Pushizo'nun tanıtım sitesi (apps/web, https://pushizo.com), geliştirici dokümantasyonu (apps/docs-site, https://docs.pushizo.com) ve müşteri paneli (apps/dashboard, https://app.pushizo.com; API https://api.pushizo.com)…

Pushizo'nun tanıtım sitesi (apps/web, https://pushizo.com), geliştirici dokümantasyonu (apps/docs-site, https://docs.pushizo.com) ve müşteri paneli (apps/dashboard, https://app.pushizo.com; API https://api.pushizo.com) arama motorları ve yapay zekâ asistanları için hazırdır. SITE_URL / DOCS_SITE_URL verilmeden yapılan derlemeler noindex üretilir. Bu rehber, pushizo.com'u yayına almak için gereken adımları sırasıyla listeler. Tasarım kararları: ADR-0034.

1. Yüzeyler ve ortam değişkenleri

YüzeyÖrnek alan adıDeğişkenNe zaman okunur
Tanıtım sitesi (apps/web, port 3200)pushizo.comSITE_URLDerleme (imaj build argümanı)
Dokümantasyon (apps/docs-site, port 3300)docs.pushizo.comDOCS_SITE_URLDerleme (imaj build argümanı)
Müşteri paneli (apps/dashboard, port 3100)app.pushizo.comAPP_URLÇalışma anı

Tanıtım sitesinin diğer değişkenleri (hepsi derleme anında):

DeğişkenVarsayılanAçıklama
WEB_DASHBOARD_URLAPP_URL, yoksa http://localhost:3100"Ücretsiz başla" ve "Giriş yap" bağlantılarının kökü (/register, /login).
WEB_DOCS_URLDOCS_SITE_URL, yoksa http://localhost:3300Dokümantasyon bağlantılarının kökü.
WEB_CONTACT_EMAILboşHakkında sayfasında ve Organization JSON-LD'de iletişim e-postası. Boşsa e-posta yayınlanmaz.
WEB_BILLING_ENABLEDfalsetrue: ödeme sağlayıcısı devrede; ücretli planlar kayda yönlenir ve SoftwareApplication JSON-LD offers yayınlanır. false: ücretli planlarda "Satış ekibiyle iletişime geçin" (mailto: WEB_CONTACT_EMAIL, boşsa support@pushizo.com), offers yok.
WEB_COMPANY_NAME, WEB_COMPANY_ADDRESS, WEB_COMPANY_TAX_ID, WEB_COMPANY_MERSISboşŞirket künyesi: alt bilgide ve /legal/imprint sayfasında. Unvan boşsa künye yayınlanmaz ve sayfa 404 döner; MERSİS 16 hanelidir.
WEB_AI_SEARCH_CRAWLERSallowYanıt/arama yapay zekâ ajanları (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot…).
WEB_AI_TRAINING_CRAWLERSallowModel eğitimi tarayıcıları (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot…).
INDEXNOW_KEYboşIndexNow anahtarı (8–128 harf/rakam/tire). Doluysa /indexnow-key.txt yayınlanır.

SITE_URL boşken derleme şu uyarıyı yazar ve site noindex, nofollow + robots.txt'de Disallow: / ile üretilir: [web] UYARI: SITE_URL tanımlı değil…. Aynı kural DOCS_SITE_URL için dokümantasyonda, APP_URL https değilken dashboard'da geçerlidir.

2. DNS ve TLS

  1. Tanıtım sitesi için kök alan adı (A/AAAA veya sağlayıcının ALIAS/ANAME kaydı), docs. ve app. için A/CNAME kayıtları oluşturun. www. kullanılacaksa kökten birine kalıcı (301/308) yönlendirme yapın; iki adresin de içerik sunması kopya içerik oluşturur. SITE_URL seçilen tek adres olmalıdır.
  2. Compose (tek sunucu): .env.prod içinde WEB_HOST, DOCS_HOST, APP_HOST değerlerini girin; ilk sertifikalar için ./infra/scripts/certbot-init.sh (WEB_HOST dahil tüm alan adları), ardından docker compose --env-file .env.prod -f infra/compose/docker-compose.prod.yml up -d web docs nginx.
  3. Kubernetes (Helm): web.enabled=true ve ingress.hosts.web=<alan-adı> verin; sertifika cert-manager ile ingress TLS'ine eklenir. values.yaml içindeki web bölümü kaynak ve sağlık denetimi ayarlarını içerir.

3. Yayın derlemesi

Release iş akışı (.github/workflows/release.yml) imajları GitHub depo değişkenleriyle derler. Şu değişkenleri Settings → Secrets and variables → Actions → Variables altında tanımlayın:

Depo değişkeniDeğer
PROD_SITE_URLhttps://pushizo.com
PROD_DOCS_URLhttps://docs.pushizo.com
PROD_APP_URLhttps://app.pushizo.com (zaten tanımlı olabilir)
PROD_INDEXNOW_KEYisteğe bağlı IndexNow anahtarı

Elle derleme örneği:

docker build -f infra/docker/web.Dockerfile \
  --build-arg SITE_URL=https://pushizo.com \
  --build-arg WEB_DASHBOARD_URL=https://app.pushizo.com \
  --build-arg WEB_DOCS_URL=https://docs.pushizo.com \
  -t ghcr.io/exec0de/pushizo-web:local .
docker build -f infra/docker/docs-site.Dockerfile \
  --build-arg DOCS_SITE_URL=https://docs.pushizo.com \
  --build-arg SITE_URL=https://pushizo.com \
  -t ghcr.io/exec0de/pushizo-docs-site:local .

Staging: release imajı staging ve üretimde aynıdır; staging alan adında tarayıcıları uç katmanda engelleyin (nginx sunucu bloğuna add_header X-Robots-Tag "noindex, nofollow" always; veya temel kimlik doğrulama). Canonical adresler üretim alan adını gösterdiği için staging sayfaları kopya olarak dizine girmez, ancak taranmamaları önerilir.

4. Yayın sonrası doğrulama

curl -s https://pushizo.com/robots.txt        # Allow + Sitemap satırı, yapay zekâ tarayıcı grupları
curl -s https://pushizo.com/sitemap.xml | head  # mutlak https adresleri, xhtml:link alternatifleri
curl -sI https://pushizo.com/ | grep -i x-robots-tag   # çıktı OLMAMALI (noindex kalkmış olmalı)
curl -s https://pushizo.com/llms.txt | head
curl -s https://docs.pushizo.com/llms.txt | head
curl -s https://app.pushizo.com/robots.txt     # yalnızca /login ve /register izinli
  • Google Rich Results Test ve Schema Markup Validator ile ana sayfa (Organization, WebSite, SoftwareApplication), /faq (FAQPage) ve bir dokümantasyon sayfasını (TechArticle) doğrulayın.
  • PageSpeed Insights / Lighthouse ile mobil ve masaüstünde performans, erişilebilirlik ve SEO puanlarının ≥ 95 olduğunu kontrol edin.
  • Paylaşım kartları: https://<alan-adı>/og/tr/home görselinin açıldığını ve LinkedIn Post Inspector / X kart önizlemesinde başlığın doğru göründüğünü kontrol edin.

5. Google Search Console

  1. Alan adı mülkü ekleyin (DNS TXT doğrulaması; tüm alt alan adlarını ve http/https sürümlerini kapsar).
  2. Site haritaları: https://pushizo.com/sitemap.xml ve https://docs.pushizo.com/sitemap.xml gönderin.
  3. URL denetimi ile ana sayfa, /en, /pricing ve /features/push için "Dizine eklenmesini iste".
  4. Birkaç gün sonra Sayfalar raporunda "noindex nedeniyle hariç tutuldu" görünmemeli (görünüyorsa imaj SITE_URL olmadan derlenmiştir). Uluslararası hedefleme için ayrı ayar gerekmez; hreflang etiketleri sayfada.
  5. Dashboard'da yalnızca /login ve /register dizine girer; diğer panel adresleri "robots.txt tarafından engellendi" olarak görünür, bu beklenen durumdur.

6. Bing Webmaster Tools ve IndexNow

  1. Bing Webmaster Tools'ta Google Search Console'dan içe aktar seçeneğiyle mülkü ve site haritalarını alın (veya DNS/XML dosyası ile doğrulayıp site haritalarını elle gönderin).

  2. IndexNow: rastgele bir anahtar üretin (openssl rand -hex 16), PROD_INDEXNOW_KEY olarak tanımlayıp siteyi yeniden derleyin; https://pushizo.com/indexnow-key.txt anahtarı döndürmelidir. Her yayından sonra:

    SITE_URL=https://pushizo.com INDEXNOW_KEY=<anahtar> npm run indexnow --workspace @pushizo/website

    Betik sitemap'teki tüm URL'leri api.indexnow.org'a bildirir (Bing, Yandex ve diğer IndexNow ortakları).

7. Yasal metinler

Gizlilik Politikası, Kullanım Şartları, KVKK Aydınlatma Metni, Çerez Politikası, Veri İşleme Sözleşmesi (dpa), Alt İşleyenler (subprocessors) ve Kabul Edilebilir Kullanım Politikası (aup) sayfaları metin dosyaları gelene kadar yayınlanmaz. Hukuk ekibinin metinleri şu dosyalara eklenir (iki dil de zorunlu; biri eksikse sayfa üretilmez):

apps/web/content/legal/privacy.tr.md   apps/web/content/legal/privacy.en.md
apps/web/content/legal/terms.tr.md     apps/web/content/legal/terms.en.md
apps/web/content/legal/kvkk.tr.md      apps/web/content/legal/kvkk.en.md
apps/web/content/legal/cookies.tr.md   apps/web/content/legal/cookies.en.md
apps/web/content/legal/dpa.tr.md       apps/web/content/legal/dpa.en.md
apps/web/content/legal/subprocessors.tr.md   apps/web/content/legal/subprocessors.en.md
apps/web/content/legal/aup.tr.md       apps/web/content/legal/aup.en.md

Eksik dosyalar npm run check:legal --workspace @pushizo/website ile listelenir (yalnızca uyarı verir, derlemeyi durdurmaz).

İsteğe bağlı ön bilgi ---\nupdated: 2026-10-16\n--- sayfada "Son güncelleme" olarak gösterilir. Dosyalar eklenince sayfalar /legal/<ad> ve /en/legal/<ad> adreslerinde üretilir, sitemap'e, alt bilgiye ve llms.txt'ye otomatik girer. Site çerez kullanmadığından (tema tercihi tarayıcı depolamasında) çerez onay bandı yoktur; analitik aracı eklenirse çerez politikası ve onay mekanizması yeniden değerlendirilmelidir.

Güvenlik açığı bildirimi için /.well-known/security.txt (RFC 9116; Contact: mailto:security@pushizo.com, Expires derleme anından bir yıl sonra) derleme sırasında üretilir: süre dolmadan site yeniden derlenip yayınlanmalıdır. Kötüye kullanım bildirimi adresi (abuse@pushizo.com) Hakkında sayfasında yayınlanır.

8. Yapay zekâ görünürlüğü (AI SEO)

  • llms.txt / llms-full.txt tanıtım sitesinde ve dokümantasyonda yayınlanır; içerik site metinlerinden ve plan matrisinden üretildiği için ayrıca bakım gerektirmez.
  • Yapay zekâ tarayıcıları varsayılan olarak izinlidir. Model eğitimi tarayıcılarını kapatmak için WEB_AI_TRAINING_CRAWLERS=disallow, yanıt/arama ajanlarını kapatmak için WEB_AI_SEARCH_CRAWLERS=disallow ile yeniden derleyin.
  • Metin güncellerken tanım cümlelerini kısa, olgusal ve tek başına anlamlı tutun; fiyat ve limitleri metne yazmayın (yer tutucular plan matrisinden doldurulur).

9. Yerel geliştirme

npm run dev --workspace @pushizo/website          # http://localhost:3200 (Türkçe /, İngilizce /en)
npx turbo run build --filter=@pushizo/website     # SITE_URL olmadan: noindex uyarısı beklenir
npx playwright test tests/e2e/web-site.spec.ts       # sayfalar, tr/en geçişi, SEO etiketleri, axe

Bu sayfada