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şken | Ne zaman okunur |
|---|---|---|---|
Tanıtım sitesi (apps/web, port 3200) | pushizo.com | SITE_URL | Derleme (imaj build argümanı) |
Dokümantasyon (apps/docs-site, port 3300) | docs.pushizo.com | DOCS_SITE_URL | Derleme (imaj build argümanı) |
Müşteri paneli (apps/dashboard, port 3100) | app.pushizo.com | APP_URL | Çalışma anı |
Tanıtım sitesinin diğer değişkenleri (hepsi derleme anında):
| Değişken | Varsayılan | Açıklama |
|---|---|---|
WEB_DASHBOARD_URL | APP_URL, yoksa http://localhost:3100 | "Ücretsiz başla" ve "Giriş yap" bağlantılarının kökü (/register, /login). |
WEB_DOCS_URL | DOCS_SITE_URL, yoksa http://localhost:3300 | Dokümantasyon bağlantılarının kökü. |
WEB_CONTACT_EMAIL | boş | Hakkında sayfasında ve Organization JSON-LD'de iletişim e-postası. Boşsa e-posta yayınlanmaz. |
WEB_BILLING_ENABLED | false | true: ö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_MERSIS | boş | Ş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_CRAWLERS | allow | Yanıt/arama yapay zekâ ajanları (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot…). |
WEB_AI_TRAINING_CRAWLERS | allow | Model eğitimi tarayıcıları (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot…). |
INDEXNOW_KEY | boş | 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
- Tanıtım sitesi için kök alan adı (
A/AAAAveya sağlayıcınınALIAS/ANAMEkaydı),docs.veapp.içinA/CNAMEkayı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_URLseçilen tek adres olmalıdır. - Compose (tek sunucu):
.env.prodiçindeWEB_HOST,DOCS_HOST,APP_HOSTdeğerlerini girin; ilk sertifikalar için./infra/scripts/certbot-init.sh(WEB_HOST dahil tüm alan adları), ardındandocker compose --env-file .env.prod -f infra/compose/docker-compose.prod.yml up -d web docs nginx. - Kubernetes (Helm):
web.enabled=trueveingress.hosts.web=<alan-adı>verin; sertifika cert-manager ile ingress TLS'ine eklenir.values.yamliçindekiwebbö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şkeni | Değer |
|---|---|
PROD_SITE_URL | https://pushizo.com |
PROD_DOCS_URL | https://docs.pushizo.com |
PROD_APP_URL | https://app.pushizo.com (zaten tanımlı olabilir) |
PROD_INDEXNOW_KEY | isteğ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/homegö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
- Alan adı mülkü ekleyin (DNS TXT doğrulaması; tüm alt alan adlarını ve http/https sürümlerini kapsar).
- Site haritaları:
https://pushizo.com/sitemap.xmlvehttps://docs.pushizo.com/sitemap.xmlgönderin. - URL denetimi ile ana sayfa,
/en,/pricingve/features/pushiçin "Dizine eklenmesini iste". - Birkaç gün sonra Sayfalar raporunda "noindex nedeniyle hariç tutuldu" görünmemeli (görünüyorsa imaj
SITE_URLolmadan derlenmiştir). Uluslararası hedefleme için ayrı ayar gerekmez; hreflang etiketleri sayfada. - Dashboard'da yalnızca
/loginve/registerdizine girer; diğer panel adresleri "robots.txt tarafından engellendi" olarak görünür, bu beklenen durumdur.
6. Bing Webmaster Tools ve IndexNow
-
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).
-
IndexNow: rastgele bir anahtar üretin (
openssl rand -hex 16),PROD_INDEXNOW_KEYolarak tanımlayıp siteyi yeniden derleyin;https://pushizo.com/indexnow-key.txtanahtarı döndürmelidir. Her yayından sonra:SITE_URL=https://pushizo.com INDEXNOW_KEY=<anahtar> npm run indexnow --workspace @pushizo/websiteBetik 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.mdEksik 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.txttanı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çinWEB_AI_SEARCH_CRAWLERS=disallowile 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