WordPress
WordPress 404 hatası nasıl çözülür?

Kısa yanıt
WordPress 404 hatası, bir yazı, sayfa veya kategori adresine gidildiğinde WordPress’in o adrese karşılık gelen içeriği bulamadığında çıkar. İçerik çoğu zaman veritabanında güvenle durur; sorun genellikle adresleri içeriğe eşleştiren kalıcı bağlantı (permalink) kurallarının bozulmuş veya güncel olmamasıdır. WordPress 404 hatası nasıl çözülür sorusuna,
en sık karşılaşılan senaryodan en nadirine doğru, adım adım yanıt veriyoruz.. Doğru sırayla ilerlendiğinde çoğu durum birkaç dakika içinde ve veri kaybı riski olmadan çözülür.
WordPress 404 hatası neden çıkar?
WordPress, “güzel” adresleri (örneğin /blog/yazi-basligi/) gerçek içerik sorgularına çeviren bir yeniden yazma (rewrite) katmanı kullanır. Bu katman birkaç farklı nedenle bozulabilir:
- Kalıcı bağlantı kuralları hiç oluşturulmamış veya zamanla eksik kalmış olabilir
- Sunucudaki
.htaccessdosyası silinmiş, bozulmuş veya üzerine yazılmış olabilir - Bir eklenti ya da tema, kendi özel adres yapısını ekleyip mevcut kurallarla çakışabilir
- Site başka bir sunucuya taşınmış ama sunucu yapılandırması (mod_rewrite gibi) aynı şekilde kurulmamış olabilir
- Yazının kendisi silinmiş, taşınmış veya yayından kaldırılmış olabilir (bu durumda hata gerçektir, bir yapılandırma sorunu değildir)
Bu nedenlerin ortak noktası, çoğunun içerikle değil, WordPress’in adresi içeriğe bağlama mantığıyla ilgili olmasıdır.
Hata tüm sitede mi, yoksa belirli adreslerde mi çıkıyor?
Çözüme başlamadan önce kapsamı netleştirin. Ana sayfa normal açılıyor ama tüm yazı ve sayfalar 404 veriyorsa, sorun büyük olasılıkla kalıcı bağlantı kuralları veya .htaccess dosyasıdır. Sadece belirli bir yazı ya da kategori 404 veriyorsa, o içeriğin durumunu (taslak mı, silinmiş mi, adresi değişmiş mi) kontrol etmek önceliklidir.
Bu ayrım önemlidir çünkü ilk durumda yönetim paneline erişebiliyor olsanız da aşağıdaki genel çözüm adımları işe yarar; ikinci durumda ise asıl ihtiyacınız doğru adresi veya içeriğin güncel durumunu bulmaktır.
WordPress 404 hatası nasıl çözülür: kalıcı bağlantıları yeniden kaydedin
En hızlı ve en sık işe yarayan çözüm, kalıcı bağlantı kurallarını sıfırdan ürettirmektir. Yönetim panelinde Ayarlar → Kalıcı Bağlantılar ekranına girin, hiçbir ayarı değiştirmeden sayfanın en altındaki “Değişiklikleri Kaydet” düğmesine basın. Bu işlem görünürde hiçbir şey değiştirmez ama arka planda WordPress, adres yapısını içeriğe eşleştiren kuralları yeniden üretir ve Apache sunucularda bu kuralları .htaccess dosyasına yazar.
Tek tıkla çözülmezse, farklı bir yapı seçip (“Sade” gibi) kaydedip ardından eski yapınıza (örneğin “Yazı adı”) geri dönmeyi deneyin; bu, kuralları zorla sıfırdan ürettirir. Herhangi bir değişiklik yapmadan önce sitenizin yedeğini almanız her zaman iyi bir alışkanlıktır.
.htaccess dosyasını elle yeniden oluşturun
Yönetim paneline erişemiyorsanız veya kalıcı bağlantıları kaydetmek sonuç vermediyse, .htaccess dosyasını elle kontrol edin. FTP veya hosting panelinizin dosya yöneticisiyle site kök dizinine gidin, mevcut dosyayı yedek olarak farklı bir adla kopyalayın, ardından aşağıdaki standart WordPress kural bloğunun dosyada eksiksiz bulunduğundan emin olun:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Dosya hiç yoksa oluşturup bu blok ile kaydedebilirsiniz. Sunucunuzda Apache’nin mod_rewrite modülü etkin değilse bu kurallar hiçbir işe yaramaz; bu durumda hosting sağlayıcınızın modülü etkinleştirmesi gerekir.
Yönetim paneline giremiyorsanız: veritabanından sıfırlama
Panele hiç giremiyorsanız (örneğin giriş ekranı da 404 veriyorsa), kalıcı bağlantı kurallarını veritabanı üzerinden sıfırlayabilirsiniz. PhpMyAdmin veya hosting panelinizin veritabanı aracını açıp wp_options tablosunda rewrite_rules adlı satırı bulun ve silin. WordPress bir sonraki sayfa yüklemesinde bu kuralları otomatik olarak yeniden üretir. WP-CLI erişiminiz varsa aynı işi wp rewrite flush komutu tek satırda yapar.
Eklenti veya tema çakışması kontrolü
Kalıcı bağlantıları yeniden kaydetmek kalıcı bir çözüm sağlamıyorsa (hata birkaç gün sonra tekrar çıkıyorsa), bir eklenti veya temanın kendi adres yapısını mevcut kurallarla çakıştırdığından şüphelenin. Özellikle özel yazı tipi (custom post type) veya çoklu dil ekleyen eklentiler, kendi adres kalıplarını WordPress’in çekirdek kurallarının önüne veya arkasına ekler; bu sıralama bozulduğunda bazı adresler 404 vermeye başlar. Eklentileri tek tek devre dışı bırakıp her birinden sonra kalıcı bağlantıları yeniden kaydederek sorumlu eklentiyi bulabilirsiniz.
Site taşındıktan sonra 404 hatası
Bir siteyi yeni bir sunucuya veya hosting sağlayıcısına taşıdıktan sonra 404 hatalarının artması yaygındır. Bunun nedeni genellikle eski sunucudaki .htaccess dosyasının taşınmaması, yeni sunucuda mod_rewrite modülünün farklı yapılandırılmış olması veya Nginx kullanan sunucularda Apache’ye özel kuralların hiç işlemediğidir (Nginx, kendi sunucu bloğunda eşdeğer bir yönlendirme kuralı ister). Taşıma sonrası 404 artışı görüyorsanız öncelikle yeni sunucunun web sunucusu türünü (Apache mı, Nginx mi) ve kuralların doğru formatta aktarıldığını kontrol edin.
Tarayıcı veya CDN önbelleği, çözülmüş bir 404 hatasını taklit edebilir
Kalıcı bağlantıları yeniden kaydettiniz ve sorun giderildi, ama bazı ziyaretçiler hâlâ 404 görmeye devam ediyorsa, suçlu artık WordPress değil, önbellek olabilir. Tarayıcılar 404 yanıtlarını bir süre saklar; siz düzeltmeden önce o adresi ziyaret eden biri, düzeltme sonrasında bile eski (hatalı) yanıtı görmeye devam edebilir. Gizli pencerede veya farklı bir cihazda test etmek, bunun gerçek bir sorun mu yoksa yerel bir önbellek izi mi olduğunu hemen ortaya çıkarır.
Sitenizin önünde bir CDN veya sayfa önbellekleme eklentisi varsa (Cloudflare gibi), bu katman da eski 404 yanıtını saklayıp ziyaretçilere sunmaya devam edebilir. Bu durumda CDN panelinizden veya önbellekleme eklentinizin ayarlarından ilgili adresin önbelleğini (cache) temizlemeniz gerekir; aksi halde kalıcı bağlantıları doğru şekilde düzeltmiş olsanız da WordPress 404 hatası bazı ziyaretçiler için görünmeye devam eder.
Silinen veya taşınmış içerik için 404 gerçek bir hata mı?
Bazı 404 hataları bir yapılandırma sorunu değil, gerçek bir durumdur: yazı silinmiş, taslağa alınmış veya adresi değiştirilmiştir. Bu durumda doğru çözüm, eski adresten yeni adrese bir 301 yönlendirmesi kurmaktır (eklenti üzerinden veya .htaccess’e elle bir Redirect 301 satırı ekleyerek). Bu adım özellikle arama motorlarından gelen trafiği kaybetmemek için önemlidir; sayfayı sessizce kaldırmak, o adrese gelen tüm ziyaretçileri ve arama motoru sinyalini 404 sayfasına göndermiş olur.
WordPress 404 hatasını tekrar yaşamamak için
Bu hatanın büyük kısmı önlenebilir. İçerik yapısını (kategori, özel yazı tipi) değiştirmeden önce kalıcı bağlantıları yeniden kaydetmeyi alışkanlık edinin; bir sayfayı kaldırırken veya adresini değiştirirken her zaman bir yönlendirme kurun; site taşıma işlemlerinde .htaccess dosyasının da taşındığını doğrulayın. Bu konuyu sunucu erişim katmanı üzerinden ele alan WordPress 403 Forbidden hatası rehberimizde görüldüğü gibi, 403 ve 404 farklı katmanlardan gelir: biri isteği WordPress’e ulaşmadan reddeder, diğeri isteği WordPress karşılar ama eşleşen içerik bulamaz. Daha genel bir erişim sorunuyla karşılaşıyorsanız WordPress beyaz ekran hatası rehberimiz teşhis sırasını adım adım anlatıyor.
WordPress’in bu eşleştirme kurallarını çekirdek kodunda nasıl ürettiğini görmek isterseniz, WordPress’in resmî wp-includes/class-wp-rewrite.php kaynak kodunu inceleyebilirsiniz; flush_rules() metodunun belgelendirmesi, kalıcı bağlantıları “sert” biçimde sıfırlamanın tam olarak .htaccess dosyasını güncellediğini, “yumuşak” sıfırlamanın ise yalnızca veritabanındaki kural seçeneğini güncellediğini açıkça belirtir; kalıcı bağlantıları yeniden kaydetmenin neden işe yaradığının teknik karşılığı budur.
Sonraki adım
WordPress 404 hatası ürkütücü görünse de çoğu zaman kalıcı bağlantıları yeniden kaydetmek veya .htaccess dosyasını tazelemekle çözülen, içeriğinize dokunmayan bir eşleştirme sorunudur. Sorun site taşıma veya eklenti çakışması gibi daha köklü bir nedenden geliyorsa, grup şirketimiz Web Tasarım Ofisi WordPress bakımı ve teknik sorun giderme konusunda destek veriyor.
Sitenizin teknik altyapısını veya özel yazılım ihtiyaçlarınızı birlikte değerlendirmek için özel yazılım hizmetimizi inceleyebilir ya da bizimle iletişime geçebilirsiniz.
Sıkça sorulan sorular
WordPress’te 404 hatası ne anlama gelir?
WordPress’in, tarayıcının istediği adrese karşılık gelen bir yazı, sayfa veya kategori bulamadığı anlamına gelir. İçerik veritabanında hâlâ duruyor olabilir; sorun genellikle içeriğin kendisinde değil, WordPress’in adresleri içeriğe eşleştirdiği kalıcı bağlantı (permalink) kurallarındadır.
404 hatası veri kaybına yol açar mı?
Hayır. Bu bir yönlendirme/eşleştirme sorunudur, yazılarınız veya sayfalarınız veritabanında güvende kalır. Kalıcı bağlantı ayarlarını yeniden kaydetmek veya .htaccess dosyasını yeniden oluşturmak içeriğe dokunmaz.
Kalıcı bağlantıları yeniden kaydetmek neden işe yarıyor?
Ayarlar → Kalıcı Bağlantılar ekranında "Değişiklikleri Kaydet" düğmesine bastığınızda WordPress, adres yapısını içeriğe eşleştiren kuralları sıfırdan üretir ve (Apache sunucularda) bu kuralları .htaccess dosyasına yazar. Zamanla bozulan veya eksik kalan eşleştirme bu sayede tazelenir.
Yönetim paneline giremiyorsam ne yapmalıyım?
Kalıcı bağlantı kurallarını veritabanı üzerinden sıfırlamak mümkündür: phpMyAdmin’den wp_options tablosunda rewrite_rules satırını silmek, WordPress’e bir sonraki sayfa yüklemesinde kuralları yeniden üretmesi için işaret verir. FTP erişiminiz varsa .htaccess dosyasına standart WordPress kural bloğunu elle de ekleyebilirsiniz.
Hiçbir adım işe yaramazsa ne yapmalıyım?
Hangi URL’lerde hatanın çıktığını ve hangi adımları denediğinizi hosting sağlayıcınızın teknik destek ekibiyle paylaşın; sunucuda mod_rewrite modülünün kapalı olması gibi panelden göremeyeceğiniz bir neden söz konusu olabilir.