Web tasarımı

Yayına almadan önce site kontrol listesi

Yayın kontrol listesi iyi uygulamaların listesi değildir; yayından sonra pahalılaşan ya da hiç geri gelmeyen şeylerin listesidir. Dört sütunu vardır: teknik, içerik, hukuk ve ölçüm; en önemli maddesi de deneme sürümünden kalan yedi harflik bir etikettir.

  • Ders 11 / 12
  • Orta
  • Ücretsiz, kayıt yok

Yayından önce biten dört iş sütunu

Her sütundaki sayı, tam olarak altında yazan kartlardır.

  1. İçerik

    4
    • Olmazsa olmaz sayfalar

      İletişim, hakkımızda, şartlar, gizlilik

    • Nihai metin

      Canlı siteye yer tutucu metin taşınmaz

    • Genişlik ve yükseklikli görseller

      Metin okuyucunun altından kaymasın diye

    • Site simgesi ve paylaşım görseli

      Bağlantıyı bir sohbette göndererek sınanır

  2. Teknik

    5
    • noindex kaldırıldı

      Hem sayfa kaynağında hem robots.txt içinde

    • Tek ana bilgisayar adı ve geçerli SSL

      Diğer biçimler zincirsiz 301 ile

    • 404 koduyla bir 404 sayfası

      "Bulunamadı" yazan bir 200 değil

    • Site haritası ve robots

      CSS ve JavaScript engellenmemeli

    • Otomatik yedekleme çalışıyor

      Ve bir kez geri yükleme denenmiş

  3. Hukuk

    3
    • Alan adı sahibin adına

      Tasarımcı erişim alır, sahiplik sahibinde kalır

    • Barındırma hesabı ve DNS erişimi

      Teslim günü, bir yıl sonra değil

    • Sözleşme ve dosya teslimi

      Tasarım kaynakları da teslimin parçası

  4. Ölçüm

    4
    • Google Analytics 4

      Anlık raporda bir deneme ziyaretiyle

    • Search Console doğrulandı

      Tercihen DNS kaydıyla, site haritası gönderilmiş

    • İletişim formu olayı

      Yoksa iletişimi değil yalnızca ziyareti sayarsınız

    • Gerçek bir e-posta ulaşım sınaması

      İki hedefe, sonra sunucu günlüğüne bakın

Bu liste bir tanıtım ya da şirket sitesi içindir. Bir çevrimiçi mağazanın bu dersin konusu olmayan birkaç maddesi daha vardır.

Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.

Yayından önce gerçekten neyin bitmesi gerekir?

Sonradan pahalılaşan ne varsa o. Bir yayın kontrol listesini dilek listesinden ayıran tek ölçüt budur: bir düğmenin rengi yarın da değişir, ama üç şey asla geri gelmez.

Birincisi veri. Analitik ilk gün kurulmazsa o haftanın trafiği temelli gitmiştir ve hiçbir araç onu geri getirmez. İkincisi sahiplik. Ajans adına kayıtlı bir alan adı sonradan bir ayar değil, bir pazarlıktır. Üçüncüsü erişim. Barındırma hesabı, alan adı paneli ve site yönetici kullanıcısı teslim günü devredilmezse, genelde bir yıl sonra ve en kötü anda aranır.

Gerisi onarılabilir, ama bedelleri eşit değil. Kalmış tek bir etiket siteyi haftalarca sonuçların dışında tutabilir. Postası ulaşmayan bir iletişim formu, var olduğunu hiç öğrenmediğiniz talepler demektir. Bu yüzden bu liste dört sütunda duruyor ve teknik sütun önce geliyor: en önemli olduğu için değil, hataları en sessiz olduğu için.

Teknik: en çok zarar veren iki satır

İkisi de deneme sürümünden gelir ve ikisi de görünmezdir. Birincisi sayfanın head kısmındaki noindex etiketi, ikincisi robots.txt içindeki Disallow: / satırı. Yayına alınmış, çalışan, hızlı olan ve altı hafta sonra birinin neden Google'da olmadığını sorduğu siteyi gördünüz.

WordPress'te bu etiket genelde bir onay kutusundan gelir: Ayarlar ve Okuma altında, arama motorlarından siteyi dizine eklememelerini isteyen bir seçenek vardır. Deneme sürümünde açık olması doğrudur; yayın gününde kapanmalıdır ve bu, çevirdiğiniz ilk anahtar değil son anahtar olmalıdır.

Denetlemek otuz saniye sürer ve sayfaya bakmak yanıt vermez, çünkü ikisi de görünmez. Sayfa kaynağını açıp robots etiketini arayın ve robots.txt'yi doğrudan tarayıcıda açın. Terminaliniz varsa tam komut bu dersin hızlı yol bölümünde.

Aynı sütunda üç madde daha:

  • Tek bir asıl ana bilgisayar adı. Site yalnızca tek bir adresten açılmalı ve diğer bütün biçimler ona 301 ile gitmeli: https'siz olandan https'liye ve www'lu olandan www'suza ya da tersi. Yönlendirme zinciri kurmayın; her biçim doğrudan son hedefe gitsin. SSL sertifikası hem www'lu hem www'suz geçerli olmalı; SSL denetleyicisi son kullanma tarihini ve veriliş zincirini gösterir.
  • Gerçek bir 404. Anlamsız bir adres açın. Hem kendi 404 sayfanızı görmelisiniz hem de durum kodu gerçekten 404 olmalı; üstünde "bulunamadı" yazan bir 200 değil. 200 dönen bir sayfa, Google açısından sağlıklı bir sayfadır.
  • Site haritası ve robots. Site haritası erişilebilir olmalı ve yalnızca dizine eklenebilir adresleri taşımalı; robots.txt de CSS ve JavaScript'i engellememeli. robots ve sitemap aracı ikisini birlikte okur.

İçerik: ilk gün yarım kalmaması gereken sayfalar

On sayfası bitmiş bir site, kırk sayfası yarım bir siteden daha iyi yayına çıkar. Asgari şudur: gerçekten yanıt veren bir kanalı olan bir iletişim sayfası, gerçek kişilerin adlarının geçtiği bir hakkımızda sayfası, şartlar ve gizlilik sayfaları ve çıkmaz sokak yerine ana sayfaya ve aramaya bir yol veren bir 404 sayfası.

Sonra küçük şeyler; hepsi beş dakika sürer ve hepsi genelde unutulur. Site simgesini koyun, yoksa tarayıcı sekmesi boş bir yaprak gösterir. Paylaşım görselini koyun ve sınayın: kendi bağlantınızı bir WhatsApp ya da Telegram sohbetinde kendinize gönderin ve ne göründüğüne bakın; o etiketlerin tek gerçek sınaması budur. Her sayfanın başlığı ve meta açıklaması benzersiz olmalı; meta etiket denetleyicisi bunu sayfa sayfa gösterir.

Bir de doğrudan deneyime çarpan iki şey: yer tutucu metin canlı siteye taşınmamalı ve her görsel bir genişlik ile yükseklik taşımalı. İkincisi, görsel gelmeden tarayıcı yerini tutsun diyedir; yoksa metin okuyucunun altından kayar. Bunu site hızı tarafında yerleşim kayması diye biliyoruz.

Sitenin e-postası gerçekten ulaşıyor mu?

Bu, tüm listede bozukluğu hiçbir işaret vermeyen tek maddedir. İletişim formu yeşil bir "gönderildi" gösterir, WordPress işini yaptığını söyler ve ileti kimsenin gelen kutusuna hiç ulaşmaz.

Sebebi şu: WordPress'in posta işlevi true döndürdüğünde yalnızca tek bir şey söylemiştir: iletiyi gönderim sistemine devrettim. Hedef sunucunun onu kabul edip etmediği, spam klasörüne düşürdüğü ya da büsbütün reddettiği o işlevin görüş alanının dışındadır. Yani yeşil iletide duran her sınama hiçbir şey kanıtlamamıştır.

Bunu üç DNS kaydı belirler ve üçü de yayından önce yerinde olmalıdır. SPF, alan adınız adına hangi sunucuların posta gönderebileceğini söyler. DKIM, iletinin kendisine kriptografik bir imza koyar; böylece alıcı iletinin bozulmadığından ve iddia ettiği yerden geldiğinden emin olabilir. DMARC, o ikisi tutmadığında alıcının ne yapacağını ve raporu nereye göndereceğini söyler. Bir de sizin DNS'inizde hiç bulunmayan, sunucu sağlayıcısında duran dördüncü bir kayıt var: gönderen IP'yi yeniden bir ada çeviren ters kayıt, yani PTR. Büyük posta sağlayıcıları, ters adı olmayan bir IP'den gelen postaya kuşkuyla bakar.

Doğru sınama iki adımdır. Önce gerçek bir gönderim; bir eklentinin içinden değil, sitenin kendi formundan ve iki ayrı hedefe: bir Gmail ve bir kurumsal adres. Sonra sunucudaki gönderim günlüğünü okumak; hedef sunucunun kabul satırının yazıldığı yer. O satırı görmediğiniz sürece postanın ulaştığını tahmin ediyorsunuz.

Bir e-postanın yolu: gönder düğmesinden gelen kutusuna

Yeşil ileti birinci adımda basılır; sınamanız beşinci adımda bitmelidir.

  1. 1

    Sitenin formu

    "Gönderildi" iletisi tam burada basılır ve henüz hiçbir şey kanıtlanmamıştır.

  2. 2

    WordPress posta işlevi

    true değeri devredildi demektir, ulaştı değil.

  3. 3

    Sunucudaki gönderim servisi

    Gerçek bir günlük satırının yazıldığı ve okunabildiği ilk yer.

  4. 4

    Alıcıdaki denetimler

    Burada SPF, DKIM, DMARC ve IP'nin ters adı okunur.

  5. 5

    Gelen kutusu ya da spam

    Sınamanızın bitmesine izin verilen tek yer.

Bu yol, sitenin kendi sunucusundan gönderilen posta içindir. Dış bir gönderim servisi kullanırsanız üçüncü adım başka yere taşınır ve kayıtları da değişir.

Ölçüm: sonradan telafi edilemeyen şey

Analitik ve Search Console yayından önce kurulur, sonra değil. Sebebi basit ve SEO ile ilgisi yok: geriye dönük veri diye bir şey yoktur. Bir ay sonra kurarsanız o ay hiçbir aracın dolduramayacağı bir kara deliktir.

Bu sütunda üç iş var. Önce Google Analytics 4'ü kurun ve verinin gerçekten geldiğini doğrulamak için bir deneme isabeti yapın; anlık rapor yanıtı orada verir. Sonra Search Console'da site sahipliğini doğrulayın, tercihen bir DNS kaydıyla; çünkü o yöntem sitedeki bir dosyaya ya da etikete bağlı değildir ve tema değişince kaybolmaz. Üçüncü olarak site haritasını gönderin; siteyi Google'a tanıtma rehberi bu adımı tek tek anlatıyor.

Genelde atlanan bir şey: iletişim formu gönderimini bir olay olarak tanımlayın. O olmadan gelecek ay kaç kişinin geldiğini bilirsiniz, kaç kişinin iletişime geçtiğini bilmezsiniz; yayından sonraki her kararı ikinci sayı şekillendirir.

Sahiplik ve hukuk: sözleşmede olması gerekenler

Bu sütunda kod yoktur ve teslimden sonraki tartışmaların çoğu buradan çıkar. Yayın gününde dört şey netleşmeli ve tercihen daha önce sözleşmeye yazılmalı: alan adı kimin adına kayıtlı, barındırma hesabı kimin adına, DNS yönetimi kimde ve site dosyalarıyla tasarım kaynakları kime teslim ediliyor.

Tek cümle bunu basitleştirir: tasarımcının erişimi olmalı, sahibin sahipliği. Ajans adına kayıtlı bir alan adı, ilişki iyiyken hiç sorun değildir; soğuduğu gün sitenin tek gerçek varlığı karşı tarafın elindedir. Web tasarım sözleşmesi, bu dört maddeyi yazmanın doğru yeridir.

Sayfalar tarafında iki tanesi gerekir: şartlar ve koşullar ile bir gizlilik sayfası. Gizlilik sayfası hangi veriyi hangi araçlarla topladığınızı söylemeli; analitik kullanıyorsanız yeri orasıdır.

Bir de dürüstçe söylenmiş bir sınır: siteniz bir mağazaysa, çevrimiçi satış için gereken izinler ve işaretler kendi süreci olan ayrı bir konudur ve yayından sonra değil önce başlar. Ayrıntıları hakkında burada bir şey söylemiyoruz, çünkü onları incelemedik.

Yayın gününün sırası ve noindex neden en son kalkar

Bunların hepsini daha önce yaptınız; burada yalnızca sıraları önemli.

  1. Deneme sürümü kapalı kalsın

    Yalnızca noindex ile değil parolayla; bir sitenin iki kopyası sonuçlarda sorundur.

    1
  2. Alan adı, SSL ve tek ana bilgisayar adı

    DNS değişikliğinden sonra her yerde oturması için birkaç saat verin.

    2
  3. Analitik ve Search Console

    İlk gerçek ziyaretten önce; yoksa o veri temelli gider.

    3
  4. Gerçek bir form ve e-posta sınaması

    Sitenin kendi formundan, iki hedefe, sonra sunucu günlüğü.

    4
  5. noindex'i kaldırın

    Çevirdiğiniz son anahtar; sonra sayfa kaynağını yeniden okuyun.

    5
  6. Site haritasını gönderin

    Sayfalar artık dizine eklenebilir olduğuna göre bu adım anlam taşır.

    6

Önceki bir site varsa bütün bunlardan önce bir adım daha gelir: eski adreslerin yönlendirme haritası, ki bu listeden büyük ve kendi başına bir iştir.

Yayından sonraki ilk kırk sekiz saat

Yayına almak işin sonu değil, hataların çoğunun yüzeye çıktığı iki günün başıdır. Dört şeye bakın: sunucu hata günlüğü, 404 dönen adresler (önceki bir site varsa eksik yönlendirme burada kendini gösterir), form e-postalarının ulaşması ve sonraki günlerde Search Console'un sayfalar bölümü.

Bir de kimsenin önceden düşünmediği için çok vakit yiyen bir şey: önbellek katmanları. Küçük bir değişiklik yaparsınız, sayfayı açarsınız, önceki sürümü görürsünüz ve değişikliğin geçmediğine hükmedersiniz. Genelde geçmiştir ve baktığınız şey bir önbellekten gelmiştir.

Bu sitede sizinle PHP arasında üç katman var: sunucunun kendi sayfa önbelleği, içerik dağıtım ağının kenardaki önbelleği ve tarayıcının önbelleği. Buradaki genel sayfaların başlıkları kenara HTML sürümünü 2592000 saniye, yani otuz gün, saklamasını söyler. Yani sunucuda şu anda duran bir düzeltme, o önbellek temizlenene kadar bir ziyaretçiye ulaşmayabilir. Yayından önce hangi katmanların olduğunu ve her birinin nasıl temizlendiğini bilin; yayın günü bunu keşfetme zamanı değildir.

Yapay zekayla hızlı yol

Alışılmış yöntem tarayıcıda tıklayıp sayfa sayfa bakmaktır; noindex etiketinin kaçırılmasının sebebi de tam budur: görülemez. Hızlı yol bunu tersine çevirir. Önce birkaç satır komutla sitenin kendisine gerçekte ne döndürdüğünü sorarsınız, sonra durum hakkındaki anlatımınızı değil o ham çıktıyı bir modele verip sıralatır ve önceliklendirirsiniz. Tamamı iki dakikadan kısa sürer ve çıktıyı sıralamak için hızlı ve ucuz bir model yeter; güncel tercihimiz <a class="text-link" href="/tr/ai/">yapay zeka bölümünde</a>.

  1. Aşağıdaki tarifin ilk yarısını terminalde çalıştırın ve yuvanın yerine kendi alan adınızı koyun. Terminaliniz yoksa aynı adresleri tarayıcıda açıp sayfa kaynağını okuyun.
  2. Çıktıyı olduğu gibi alın. Onu özetlemek ya da "her şey yolundaydı" yazmak, bu yöntemin işe yaramaz olduğu tam noktadır.
  3. Tarifin ikinci yarısını o çıktıyla çalıştırın ve önceliklendirilmiş listeyi alın.
  4. Modelin işaretlediği her maddeyi aynı komutla kendiniz yeniden denetleyin. Bir düzeltme, model bitti dediğinde değil, komutun çıktısı değiştiğinde bitmiştir.

Kopyalamaya hazır şablon

Birinci bölüm, terminalde:

SITE=https://{kendi alan adınız}
for u in / /contact/ /blog/ /a-page-that-does-not-exist/; do
  printf "%s  " "$u"
  curl -s -o /dev/null -w "status=%{http_code} redirect=%{redirect_url}\n" "$SITE$u"
done
curl -s "$SITE/" | grep -oiE "<meta[^>]+name=.robots.[^>]*>|<link[^>]+rel=.canonical.[^>]*>"
curl -s "$SITE/robots.txt"

İkinci bölüm, yukarıdaki çıktıyı şu metinle verin:

Rol: site yayın gözden geçiricisi.

Aşağıdaki çıktı, yukarıdaki komutların sitemde çalıştırılmasından geldi:
{çıktıyı tam buraya yapıştırın}

Site bugün yayına giriyor ve {tek satır: yeni mi, yoksa önceki bir sitenin yerine mi geçiyor}.

- Yayına giren bir siteye yakışmayan her şeyi, en önemliden en önemsize sırala.
- Her madde için neyin bozulduğunu ve hangi komutla yeniden denetlendiğini yaz.
- Bu denetimin hiç göremediklerini ayrıca listele.
- Çıktıda olmayan bir şeyi tahmin etme ve yazma.

Çıktıya güvenmeden önce: Bu denetim, sunucunun curl'e söylediğini gösterir ve bu sınırı bilmelisiniz: Google'ın tarayıcısı başka bir şey görebilir, çünkü bazı siteler kullanıcı aracısına ya da ülkeye göre farklı yanıt verir ve bazı etiketler JavaScript ile eklenir; o durumda kesin yanıtı Search Console'daki URL inceleme aracı verir. Bir önbellek katmanı da size eski bir kopya verebilir; kuşkulanıyorsanız adrese rastgele bir parametre ekleyin. Bir de kendimizin vakit kaybettiği bir ayrıntı: yukarıdaki desen tırnağı bilerek noktayla değiştiriyor. Bu sitenin teması robots etiketini tek tırnakla basar; bu yüzden çift tırnaklı bir name araması hiçbir şey bulmaz ve etiket tam oradayken yok olduğu sonucuna varırsınız.

Bu işte yapay zeka

Bu konuda dil modeli, yapılandırma metnine bakan ikinci bir çift gözdür ve bu işte gerçekten iyidir: robots.txt'yi, yanıt başlıklarını, bir yönlendirme listesini ve DNS kayıtlarını doğru okur ve her satırın ne anlama geldiğini söyler. Konumumuz tek cümle: ona durumla ilgili anlatımınızı değil gerçek çıktıyı verin. Bu ikisi arasındaki fark, bir denetimle güven verici bir sohbet arasındaki farktır.

Gerçekten işe yarayan araçlar

  • Claude Ham bir çıktıyı okuyup önceliklendirilmiş bir listeye çevirmekte iyidir ve isterseniz her maddenin gerekçesini de açıklar. İran, Anthropic'in desteklenen ülkeler listesinde yok; bunu Anthropic'in kendi sayfasında okuduk.
  • Gemini Yapılandırma soruları ve bir DNS kaydının Türkçe açıklanması için yeter. Google'ın kendi sayfası Gemini web uygulamasının 230'dan fazla ülke ve bölgede çalıştığını söylüyor ve İran o listede yok.
  • Claude Code Kendi terminalinizde çalıştığı için komutları kendisi çalıştırıp yanıtı orada okuyabilir; arka arkaya birkaç site denetlenecekse bu kazandırır. Kurulumu ücretsizdir ama Anthropic aboneliği ister ve İran desteklenen ülkeler listesinde değil.

Nerede geri teper

Üç risk ve birincisi hepsinin en yaygını: model size inanır. noindex'i kaldırdım diye yazarsanız yanıt bunun üzerine kurulur ve hiçbir şey onu yalanlamaz, çünkü model sitenizi açamaz. Bunu düzelten tek şey gerçek çıktıyı vermektir. İkincisi, robots.txt önerilerini dikkatle okuyun: CSS ve JavaScript'i engelleyen kurallar yanıtlarda hâlâ çıkıyor, oysa Google sayfayı işlemek için o dosyalara ihtiyaç duyar; deneme sürümü için yazılmış toptan bir Disallow da canlı sürüme kopyalanırsa, tam da bu dersin uyardığı felakettir. Üçüncüsü ve basiti: DNS servisinizin API anahtarı, barındırma parolası ve giriş bilgileri bir sohbet penceresinde yer almaz. Her aracın İran'dan nasıl ödenebileceği için satın alma rehberine bakın.

Kaynaklar: Google: block search indexing with noindex Google: build and submit a sitemap Google: verify site ownership in Search Console Google: email sender guidelines Anthropic: supported countries Google: where Gemini Apps are available

Bu tavsiyenin sınırı

Bu liste, siteyi kendi kalesine gol atmadan yayına çıkarır; siteyi iyi yapmak ayrı bir iştir ve bir listeden çıkmaz. Üç açık sınırı var. Birincisi, bir tanıtım ya da şirket sitesi için yazıldı; çevrimiçi bir mağazanın ayrıca bir ödeme yolu, daha fazla hukuki sayfa ve gerçek bir deneme satın alması gerekir. İkincisi, eski bir siteden taşınmak bu dersin konusu değildir ve kalbi önceki adreslerin yönlendirme haritası olan daha büyük bir iştir; bu bir kontrol listesinin tek satırına indirgenemez. Üçüncüsü, kendi sunucumuzdan aktardığımız sayılar, otuz günlük kenar önbelleği gibi, bu sunucunun yapılandırmasıdır, doğa yasası değil; sizin barındırmanızda öyle bir katman hiç olmayabilir.

Kendi işimizden

Bu sitenin kendi sunucusunda denetlenebilir üç şey; üçü de bu dersin uyardığı maddelerden. Birincisi posta: gönderim yolu Postfix ve iki ayarı bilerek protokolün dördüncü sürümüne sabitlenmiş, inet_protocols ve smtp_address_preference ikisi de ipv4. Sebebini bugün yeniden denetledik: bu sunucunun dördüncü sürüm adresinin bir ters adı var, altıncı sürüm adresinin ise hiç yok; ters adı olmayan bir adresten çıkan postaya baştan kuşkuyla bakılır. DKIM imzasını da 127.0.0.1 ve 11332 numaralı bağlantı noktasındaki bir milter atıyor. Ve gerçekten baktığımız şey gönderim günlüğü, formdaki yeşil ileti değil. İkincisi önbellek: buradaki genel sayfaların başlıkları kenara HTML'i 2592000 saniye, yani otuz gün saklamasını söyler; bu tek satır, yayından sonra yapılan bir düzeltmenin bir ziyaretçiye neden saatlerce ulaşmayabileceğini açıklar. Üçüncüsü kendi düştüğümüz küçük bir tuzak: bu sitenin teması robots etiketini tek tırnakla basar; bu yüzden name'i çift tırnakla yazan her arama hiçbir şey bulmaz ve etiket tam oradayken size yok olduğunu söyler.

Gerçek devam soruları

Siteyi yayına aldım ama Google'da yok. Ne kadar beklemeliyim?

Beklemeden önce iki şeyi denetleyin: sayfa kaynağındaki robots etiketi ve robots.txt dosyası. İkisi de doğruysa Search Console'u açın ve adresi URL inceleme aracıyla sınayın; Google'ın sayfayı görüp görmediğini ve neyin engellediğini orada söyler. Bu iki denetim olmadan beklemek boşa zamandır.

Eski bir sitem var ve yenisiyle değiştirmek istiyorum. Bu liste yeter mi?

Hayır. Değiştirme ayrı bir iştir ve en önemli parçası yönlendirme haritasıdır: her eski adresin listesi ve her birinin 301 ile nereye gittiği. O harita olmadan yıllarca sıralanan sayfalar 404'e çarpar ve birikimleri kaybolur. Bu listeyi o haritadan sonra çalıştırın, onun yerine değil.

Gerçekten ayrı bir deneme sürümüne ihtiyacım var mı?

Beş sayfalık bir site için hayır; aynı alan adında bir "çok yakında" sayfasının arkasında kurmak işi görür. Canlı sitenin trafiği olduğu andan itibaren yanıt değişir: doğrudan canlıda yapılan her değişiklik gerçek ziyaretçiler üzerinde sınanır. Bir deneme sürümü tutuyorsanız onu yalnızca noindex ile değil parolayla kapatın.