× Bu sayfa, en son 2026-05-17 03:23:29 tarihinde ve toplamda 1 kez sorgulandı. Güncel verileri görüntülemek için butona tıklayınız.
Çok uzun başlık (title) kullanılmamalı.
<title> etiketi 70 karakterden az olmalıdır. Aksi taktirde arama motorları spam olarak algılayabilir.
Başlık (title): Bulancak Firma Rehberi
Başlık uzunluğu: 22 karakter
Çok uzun açıklama bilgisi (description) kullanılmamalı.
description meta etiketi 160 karakterden az olmalıdır. Aksi taktirde arama motorları spam olarak algılayabilir.
Gereğinden fazla anahtar kelime (keywords) kullanılmamalı.
Anahtar kelime bulunmuyor. Google, anahtar kelimelere bakmadığı için çok önemli değil.
HX etiketi kriterlerine uyulmalı.
HX etiketleri, arama motorlarının sayfanızdaki içeriklerin hiyerarşik yapısını daha rahat anlayabilmesi için önemlidir. Bir sayfada H2, H3 ... etiketler birden fazla kullanılabilir, ancak H1 etiketi sadece 1 kere kullanılmalıdır.
<H1> Etiketleri: <H2> Etiketleri: Öne Çıkan Firmalar Fırsat ve Kampanyalar İş Fırsatları <span class="badge bg-primary-soft text-primary fs-6 ms-2">Yeni</span> Öne Çıkan Ürünler <span class="badge bg-warning text-dark fs-6 ms-2">Fırsat</span> Sistem Nasıl Çalışır? İşletmenizi Müşterilerinizin <span class="text-primary">Cebine Taşıyın!</span> BULANCAK FİRMA REHBERİ <H3> Etiketleri: Bulancak Taksi | Bulancak Yıldız Taksi Bulancak Taksi Ferah Halı Yıkama MIKBAL SOFT <H4> Etiketleri: FİRMA İŞ İLANLARI ÜRÜN KAMPANYA Hızlı Kayıt Firma Ekleme İhtiyaçlarınızı Duyurun <H5> Etiketleri: Hızlı Erişim Kategoriler İletişim & Destek <H6> Etiketleri:
Mümkün olduğunca az sayıda resim kullanılmalı.
Sayfanızdaki resimlerin sayısı çok fazlaysa, sunucuya çok sayıda istek gönderilir ve bu da sayfanın geç açılmasına sebep olur. Bu sebeple resim sayısı mümkün olduğunca az olmalıdır.
Resimler: https://bulancakfirmarehberi.com.tr/image/logo.png https://bulancakfirmarehberi.com.tr/image/digital_card.png https://bulancakfirmarehberi.com.tr/image/logo.png https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg https://upload.wikimedia.org/wikipedia/commons/3/3c/Download_on_the_App_Store_Badge.svg
Tüm resim (img) etiketlerinizde alt bilgisi olmalı.
alt etiketi resimlerin ne ile ilgili olduğunu göstermeye yarar. Görsel aramalarda çıkmak için resim açıklamalarını mutlaka yazmalısınız. Örnek: <img src="http://example.com/resim.png" width="80" height="80" alt="örnek resim" />
Tüm resimlerde alt etiketi bulunmaktadır.
Tüm resim (img) etiketlerinizde width ve height bilgisi olmalı.
Görsel aramalar için width ve height etiketlerini yazmalısınız. Örnek: <img src="http://example.com/resim.png" width="80" height="80" alt="örnek resim" />
Width veya height değeri olmayan resimler: https://bulancakfirmarehberi.com.tr/image/logo.png https://bulancakfirmarehberi.com.tr/image/digital_card.png https://bulancakfirmarehberi.com.tr/image/logo.png https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg https://upload.wikimedia.org/wikipedia/commons/3/3c/Download_on_the_App_Store_Badge.svg Width ve height değeri olmayan 5 adet resim bulunmaktadır.
Sayfanızdaki dış linklerinizin sayısı mümkün olduğunca az olmalı.
Dış linklerin normalden fazla olması arama motorları açısından spam olarak algılanabilir.
Dış linkler: https://www.instagram.com/bulancakfirmarehberi.com.tr_/ https://mikball.com.tr/ İç linkler: https://bulancakfirmarehberi.com.tr https://bulancakfirmarehberi.com.tr#one-cikanlar https://bulancakfirmarehberi.com.tr/sehir-rehberi https://bulancakfirmarehberi.com.tr/firmalar https://bulancakfirmarehberi.com.tr/ileti%C5%9Fim https://bulancakfirmarehberi.com.tr/giris https://bulancakfirmarehberi.com.tr/firma-ekle https://bulancakfirmarehberi.com.tr/firmalar https://bulancakfirmarehberi.com.tr/tum-is-ilanlari https://bulancakfirmarehberi.com.tr/tum-urunler https://bulancakfirmarehberi.com.tr/tum-kampanyalar https://bulancakfirmarehberi.com.tr/firmalar https://bulancakfirmarehberi.com.tr/firma/bulancak-taksi-bulancak-yildiz-taksi https://bulancakfirmarehberi.com.tr/firma/bulancak-taksi https://bulancakfirmarehberi.com.tr/firma/ferah-hali-yikama https://bulancakfirmarehberi.com.tr/firma/mikbal-soft # # https://bulancakfirmarehberi.com.tr/firma-ekle # # # # # # # # # # https://bulancakfirmarehberi.com.tr https://bulancakfirmarehberi.com.tr/firma-ekle # # # Toplam 2 adet dış link ve 37 adet iç link bulunmaktadır.
Güvenilmeyen sitelere verilen linklerde rel="nofollow" etiketi olmalı.
Sayfanızda nofollow link bulunmamaktadır.
Vurgulamak istenilen kelimelere biçim etiketleri verilmeli.
Arama motorlarının sayfa içeriğini daha rahat anlayabilmesi için önemli kelimeleri biçim etiketleri (kalın, eğik, altı çizili gibi) kullanarak belirtebilirsiniz.
<strong> Etiketleri: <b> Etiketleri: <em> Etiketleri: <i> Etiketleri: Toplam 1 adet biçim etiketi bulunmaktadır.
css ve javascript kodlar, harici bir sayfadan çağırılmalı.
css veya javascript kodları sayfa içinde kullanıldığında sayfanın boyutu artmaktadır. Bu da performansı olumsuz etkileyecektir.
Style kodları: :root { --brand-blue: #1e3a8a; --brand-gradient: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%); --accent-gold: #f59e0b; --glass-white: rgba(255, 255, 255, 0.7); --glass-border: rgba(255, 255, 255, 0.4); --text-slate: #334155; --card-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.05); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Plus Jakarta Sans', sans-serif; -webkit-tap-highlight-color: transparent; } body { background: #f8fafc; color: var(--text-slate); line-height: 1.6; overflow-x: hidden; padding-bottom: 0 !important; } /* --- MODERN DİNAMİK ARKA PLAN --- */ .bg-ornament { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; overflow: hidden; background: #f8fafc; } .bg-ornament div { position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.4; animation: float 20s infinite alternate; } .circle-1 { width: 600px; height: 600px; background: #3b82f6; top: -10%; right: -5%; } .circle-2 { width: 500px; height: 500px; background: #1e3a8a; bottom: -10%; left: -5%; animation-delay: -5s !important; } @keyframes float { 0% { transform: translate(0, 0) rotate(0deg); } 100% { transform: translate(50px, 100px) rotate(15deg); } } .container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 1.5rem; } /* --- GLASSMOPRHISM NAVBAR --- */ .header { background: var(--glass-white); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid var(--glass-border); padding: 0.8rem 0; position: sticky; top: 0; z-index: 1000; } .nav-inner { display: flex; justify-content: space-between; align-items: center; } .logo { height: 55px; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1)); transition: 0.3s; } .logo:hover { transform: translateY(-2px); } .nav-links { list-style: none; display: flex; gap: 2.5rem; } .nav-links a { color: var(--brand-blue); text-decoration: none; font-size: 14px; font-weight: 700; transition: 0.3s; position: relative; padding: 5px 0; } .nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 3px; background: var(--brand-gradient); border-radius: 10px; transition: 0.3s; } .nav-links a:hover::after { width: 100%; } .btn-premium { background: var(--brand-gradient); color: white; padding: 0.8rem 2rem; border-radius: 16px; text-decoration: none; font-weight: 800; font-size: 14px; box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.3); transition: 0.3s; } .btn-premium:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 20px 25px -5px rgba(30, 58, 138, 0.4); } /* --- HERO SECTION --- */ .hero { padding: 6rem 0 4rem; text-align: center; } .hero h1 { font-size: clamp(2.5rem, 8vw, 4.5rem); font-weight: 800; background: linear-gradient(to right, #1e3a8a, #3b82f6); -webkit-background-clip: text; -webkit-text-fill-color: transparent; line-height: 1.1; margin-bottom: 1.5rem; letter-spacing: -2px; } .hero p { font-size: 1.2rem; color: #64748b; margin-bottom: 3.5rem; max-width: 700px; margin-inline: auto; } /* --- ADVANCED SEARCH BOX --- */ .search-wrap { background: rgba(255, 255, 255, 0.5); backdrop-filter: blur(15px); border: 1px solid var(--glass-border); padding: 1rem; border-radius: 35px; max-width: 1000px; margin: 0 auto 6rem; box-shadow: var(--card-shadow); } .search-box { display: flex; background: white; padding: 12px; border-radius: 28px; gap: 12px; } .s-group { flex: 1; display: flex; align-items: center; padding: 0 1.2rem; border-right: 1px solid #f1f5f9; } .s-group:last-of-type { border-right: none; } .s-group i { color: var(--brand-light); font-size: 1.4rem; margin-right: 15px; } .s-group input, .s-group select { border: none; outline: none; width: 100%; font-size: 16px; font-weight: 600; color: var(--text-slate); } .s-btn { background: var(--brand-gradient); color: white; border: none; padding: 0 45px; border-radius: 22px; font-weight: 800; cursor: pointer; transition: 0.3s; text-transform: uppercase; letter-spacing: 1px; } .s-btn:hover { background: #1e3a8a; } /* --- ICON CATEGORIES --- */ .cat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; margin-bottom: 6rem; } .cat-item { background: var(--glass-white); backdrop-filter: blur(10px); border: 1px solid var(--glass-border); padding: 3rem 1.5rem; border-radius: 32px; text-align: center; transition: 0.4s; box-shadow: var(--card-shadow); } .cat-item:hover { transform: translateY(-15px) rotate(1deg); background: white; border-color: var(--brand-light); } .cat-item .icon-box { width: 80px; height: 80px; background: #eff6ff; border-radius: 24px; margin: 0 auto 2rem; display: flex; align-items: center; justify-content: center; transition: 0.4s; } .cat-item i { font-size: 35px; color: var(--brand-blue); transition: 0.3s; } .cat-item:hover .icon-box { background: var(--brand-gradient); transform: rotate(-10deg); } .cat-item:hover i { color: white; transform: scale(1.2); } .cat-item h4 { font-weight: 800; font-size: 15px; color: var(--brand-blue); letter-spacing: 0.5px; } /* --- FEATURED SECTION --- */ .section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2.5rem; } .section-head h2 { font-size: 2.2rem; font-weight: 800; color: var(--brand-blue); letter-spacing: -1px; } .see-all { color: var(--brand-light); font-weight: 800; text-decoration: none; font-size: 14px; } .firm-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .firm-card { background: white; border-radius: 30px; overflow: hidden; box-shadow: var(--card-shadow); border: 1px solid #f1f5f9; transition: 0.4s; position: relative; } .firm-card:hover { transform: translateY(-10px); box-shadow: 0 30px 45px rgba(0, 0, 0, 0.1); } .firm-img { width: 100%; height: 220px; background: #e2e8f0; } .firm-tag { position: absolute; top: 20px; left: 20px; background: var(--brand-gradient); color: white; padding: 6px 15px; border-radius: 12px; font-size: 11px; font-weight: 800; } .firm-body { padding: 2rem; } .firm-body h3 { font-size: 1.4rem; color: var(--brand-blue); margin-bottom: 0.5rem; } .firm-body p { font-size: 0.95rem; color: #94a3b8; display: flex; align-items: center; gap: 8px; } .firm-foot { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #f8fafc; display: flex; justify-content: space-between; align-items: center; } .star-box { color: var(--accent-gold); font-weight: 800; font-size: 15px; } /* --- FLOATING APP NAV --- */ .app-nav { display: none; position: fixed; bottom: 12px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 420px; background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(25px); height: 80px; border-radius: 30px; z-index: 2000; justify-content: space-around; align-items: center; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.1); } .app-nav a { color: rgba(255, 255, 255, 0.4); text-decoration: none; display: flex; flex-direction: column; align-items: center; font-size: 10px; gap: 8px; transition: 0.3s; } .app-nav a.active { color: white; transform: translateY(-5px); } .app-nav a.active i { color: #3b82f6; } .app-nav i { font-size: 26px; } @media (max-width: 768px) { .nav-links, .btn-premium { display: none; } .app-nav { display: flex; } .search-box { flex-direction: column; border-radius: 25px; } .s-group { border-right: none; border-bottom: 1px solid #f1f5f9; padding: 18px; } .s-btn { padding: 20px; margin-top: 10px; border-radius: 20px; } .hero { padding: 4rem 0 2rem; } .cat-row { grid-template-columns: repeat(2, 1fr); gap: 1rem; } } /* --- FOOTER STYLES --- */ .main-footer { background: #ffffff; padding: 80px 0 0 0; margin-top: 100px; border-top: 1px solid #f1f5f9; } .footer-logo { height: 60px; width: 60px; object-fit: cover; border: 2px solid var(--brand-blue); } .footer-brand h2 { font-size: 1.25rem; font-weight: 800; color: var(--brand-blue); letter-spacing: -1px; } .footer-desc { color: #64748b; font-size: 0.95rem; margin-top: 1.5rem; max-width: 350px; } .footer-title { font-size: 1.1rem; font-weight: 800; color: var(--brand-blue); margin-bottom: 2rem; position: relative; } .footer-title::after { content: ''; position: absolute; left: 0; bottom: -8px; width: 30px; height: 3px; background: var(--brand-gradient); border-radius: 10px; } .footer-links, .footer-contact { list-style: none; padding: 0; } .footer-links li { margin-bottom: 12px; } .footer-links a { color: #64748b; text-decoration: none; font-weight: 600; font-size: 0.95rem; transition: 0.3s; } .footer-links a:hover { color: var(--brand-light); padding-left: 5px; } .footer-contact li { color: #64748b; font-weight: 600; font-size: 0.95rem; margin-bottom: 15px; display: flex; align-items: center; gap: 12px; } .footer-contact i { color: var(--brand-light); font-size: 1.1rem; } .footer-social { display: flex; gap: 12px; margin-top: 2rem; } .footer-social a { width: 40px; height: 40px; background: #f1f5f9; color: var(--brand-blue); display: flex; align-items: center; justify-content: center; border-radius: 12px; text-decoration: none; transition: 0.3s; } .footer-social a:hover { background: var(--brand-gradient); color: white; transform: translateY(-5px); } .footer-bottom { margin-top: 60px; padding: 30px 0; border-top: 1px solid #f1f5f9; } .footer-bottom p { color: #94a3b8; font-size: 0.85rem; font-weight: 600; } .footer-legal { list-style: none; display: flex; justify-content: center; gap: 20px; padding: 0; } @media (max-width: 768px) { .footer-legal { justify-content: center; margin-top: 15px; } .footer-bottom { margin-bottom: 80px; /* Mobil menü kapanmasın diye */ } } .footer-legal a { color: #94a3b8; text-decoration: none; font-size: 0.85rem; font-weight: 600; } /* --- ISTATISTIK SAYACI STYLES --- */ .stats-badge-wrapper { display: flex; justify-content: center; animation: fadeInUp 1s ease-out; } .stats-badge { background: var(--glass-white); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--glass-border); padding: 10px 25px; border-radius: 50px; display: flex; align-items: center; gap: 20px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); } .stats-icon { width: 40px; height: 40px; background: var(--brand-gradient); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; } .stats-text { display: flex; flex-direction: column; align-items: flex-start; } .stats-number { font-size: 1.1rem; font-weight: 800; color: var(--brand-blue); line-height: 1; } .stats-label { font-size: 0.75rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; } .stats-divider { width: 1px; height: 30px; background: #e2e8f0; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 768px) { .stats-badge { padding: 8px 15px; gap: 12px; } .stats-label { font-size: 0.65rem; } } /* --- NAVBAR STATS STYLES --- */ .nav-auth-wrapper { display: flex; align-items: center; } .nav-stats { background: rgba(30, 58, 138, 0.05); border: 1px solid rgba(30, 58, 138, 0.1); padding: 8px 15px; border-radius: 12px; font-size: 13px; color: var(--brand-blue); gap: 10px; transition: 0.3s; } .nav-stats:hover { background: rgba(30, 58, 138, 0.1); } .stats-dot { width: 8px; height: 8px; background: #0d6efd; /* Canlı Yeşil */ border-radius: 50%; } /* Nabız Efekti (Sitenin canlı olduğunu hissettirir) */ .pulse { box-shadow: 0 0 0 #0d6efd; animation: pulse-animation 2s infinite; } @keyframes pulse-animation { 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } } .stats-label strong { font-weight: 800; } /* Mobilde butonun yanına sığmazsa gizlemek için */ @media (max-width: 992px) { .nav-stats { display: none !important; } } /* --- SAYFA GEÇİŞ EFEKTİ --- */ .page-animate { animation: pageReveal 0.8s cubic-bezier(0.2, 1, 0.2, 1) forwards; opacity: 0; } @keyframes pageReveal { 0% { opacity: 0; transform: translateY(30px); /* Aşağıdan başla */ } 100% { opacity: 1; transform: translateY(0); /* Normal pozisyona gel */ } } /* Sayfa yüklendiğinde hafif bir blur açılması (isteğe bağlı, çok şık durur) */ body::before { content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: white; z-index: 9999; pointer-events: none; animation: fadeOutWhite 0.5s ease-in-out forwards; } @keyframes fadeOutWhite { from { opacity: 1; } to { opacity: 0; } } .footer-bottom a { text-decoration: none !important; /* Alt çizgiyi tamamen kaldırır */ color: inherit; /* Yazı rengini footer rengiyle uyumlu yapar */ transition: all 0.3s ease; } .footer-bottom a:hover { color: var(--brand-light); /* Üzerine gelince senin safir mavisi rengini alır */ opacity: 0.8; } .footer-bottom b { color: var(--brand-blue); /* MIKBAL SOFT kısmını biraz daha belirgin yapar */ } .work-step-card { background: var(--glass-white); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--glass-border); padding: 40px 30px; border-radius: 35px; text-align: center; position: relative; transition: all 0.4s ease; height: 100%; box-shadow: var(--card-shadow); } .work-step-card:hover { transform: translateY(-15px); background: white; border-color: var(--brand-light); } .work-step-card.active { border: 2px solid var(--brand-blue); background: rgba(255, 255, 255, 0.9); } .step-number { position: absolute; top: 20px; right: 30px; font-size: 3rem; font-weight: 900; color: rgba(30, 58, 138, 0.05); /* Arka planda silik numara */ line-height: 1; } .step-icon { width: 80px; height: 80px; background: var(--brand-gradient); color: white; border-radius: 25px; display: flex; align-items: center; justify-content: center; font-size: 2rem; margin: 0 auto 25px; box-shadow: 0 10px 20px rgba(30, 58, 138, 0.2); } .work-step-card h4 { font-weight: 800; color: var(--brand-blue); margin-bottom: 15px; font-size: 1.25rem; } .work-step-card p { font-size: 0.95rem; color: #64748b; line-height: 1.7; } /* Mobilde numaraları daha belirgin yapalım */ @media (max-width: 768px) { .step-number { font-size: 2rem; opacity: 0.1; } } /* Giriş Yap Butonu - Sade ve Şık */ .btn-login-minimal { background: white; color: var(--brand-blue); border: 1.5px solid var(--brand-blue); padding: 8px 18px; border-radius: 50px; font-size: 13px; font-weight: 800; text-decoration: none; transition: all 0.3s ease; display: flex; align-items: center; white-space: nowrap; } .btn-login-minimal:hover { background: var(--brand-blue); color: white; box-shadow: 0 5px 15px rgba(30, 58, 138, 0.2); } /* Mobilde yazıların kaybolup sadece ikon kalması için yardımcı sınıf */ @media (max-width: 576px) { .btn-login-minimal, .btn-premium { padding: 10px 12px; } .nav-auth-wrapper { gap: 10px; } } /* Logo ve Metni yan yana tutan grup */ .logo-group { display: flex; align-items: center; } .mobile-brand-text { line-height: 1.1; } .mobile-brand-text span { font-size: 15px; /* Biraz küçülttük ki sığsın */ color: var(--brand-blue); white-space: nowrap; } /* Mobilde (iPhone 13 vb.) navigasyonun dağılmaması için */ @media (max-width: 991px) { .nav-inner { display: flex; justify-content: space-between; align-items: center; } .nav-auth-wrapper { margin-left: auto; } } .job-desc-text { display: -webkit-box; -webkit-line-clamp: 3; /* En fazla 3 satır göster */ -webkit-box-orient: vertical; overflow: hidden; line-height: 1.5; font-weight: 400; opacity: 0.8; } .job-card-modern { min-height: 200px; /* Açıklama gelince kart boyunu biraz uzattım */ transition: 0.4s ease; } .job-card-modern:hover { transform: translateY(-10px); } .fw-500 { font-weight: 500; } .job-card-modern { height: 320px; border: 0; } .job-bg-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; transition: 0.6s ease; } .job-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(30, 58, 138, 0.95) 100%); } .job-card-modern:hover .job-bg-img { transform: scale(1.1); } .backdrop-blur { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } .bg-white-20 { background: rgba(255, 255, 255, 0.2); } .border-white-10 { border-color: rgba(255, 255, 255, 0.1) !important; } .btn-white { background: #fff; color: #1e3a8a; border: 0; } .btn-white:hover { background: #ffbc00; color: #000; } .text-shadow { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); } .extra-small { font-size: 11px; } .stats-badge { background: #111; display: inline-flex; align-items: center; padding: 12px 30px; border-radius: 100px; gap: 20px; border: 1px solid rgba(255,255,255,0.05); } .stats-icon-box { width: 42px; height: 42px; background: var(--bs-primary); color: white; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 1rem; box-shadow: 0 0 15px rgba(13, 110, 253, 0.4); } .stats-item { display: flex; flex-direction: column; align-items: center; min-width: 70px; } .stats-number { color: #fff; font-weight: 800; font-size: 1.25rem; line-height: 1; margin-bottom: 2px; } .stats-label { color: rgba(255,255,255,0.4); font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; } .stats-divider { width: 1px; height: 30px; background: rgba(255,255,255,0.1); } @media (max-width: 991px) { .stats-badge { border-radius: 25px; justify-content: center; flex-wrap: wrap; padding: 20px; gap: 10px; } .stats-divider { display: none; } .stats-item { min-width: 30%; } } .vcard-promo-section { background: #ffffff; overflow: hidden; border-top: 1px solid #f1f5f9; } /* iPhone 17 Mockup Stili */ .iphone-17-mockup { position: relative; display: inline-block; } .iphone-frame { width: 320px; height: 650px; background: #000; border-radius: 55px; padding: 12px; box-shadow: 0 50px 100px -20px rgba(0,0,0,0.25), 0 30px 60px -30px rgba(0,0,0,0.3); border: 4px solid #1a1a1a; margin: 0 auto; } .iphone-screen { width: 100%; height: 100%; background: #fff; border-radius: 45px; overflow: hidden; position: relative; } .iphone-screen img { width: 100%; height: 100%; object-fit: cover; } /* Metin ve İkon Stilleri */ .fw-900 { font-weight: 900; } .fw-800 { font-weight: 800; } .icon-sq { width: 45px; height: 45px; display: flex; align-items: center; justify-content: center; border-radius: 12px; font-size: 1.2rem; } .bg-primary-soft { background: rgba(13, 110, 253, 0.1); } .bg-success-soft { background: rgba(25, 135, 84, 0.1); } .bg-info-soft { background: rgba(13, 202, 240, 0.1); } @media (max-width: 991px) { .vcard-promo-section { text-align: center; } .iphone-frame { width: 280px; height: 570px; margin-bottom: 40px; } .feature-list { display: inline-block; text-align: left; } } /* ANA KART AYARLARI */ .firm-card-full { height: 350px !important; /* Tüm kartlar aynı boyda, daha yüksek */ border: none; } /* ARKAPLAN RESMİ SİHİRİ */ .firm-img-full-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-position: center center; background-size: cover; background-repeat: no-repeat; transition: transform 0.6s ease; z-index: 1; } /* KARARTMA (Overlay) KATMANI */ .firm-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.85) 100%); z-index: 2; } /* EFEKTLER */ .firm-card-full:hover .firm-img-full-bg { transform: scale(1.1); /* Hoverda zoom */ } .transition-hover { transition: all 0.4s ease; } .transition-hover:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2) !important; } /* YAZI VE ETİKET AYARLARI */ .firm-tag-modern { color: white; padding: 5px 15px; border-radius: 50px; font-size: 11px; font-weight: 800; letter-spacing: 1px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .fw-800 { font-weight: 800; } .text-shadow { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); } /* Yazıların okunması için gölge */ .bg-white-10 { background-color: rgba(255, 255, 255, 0.1); } .border-white-10 { border-color: rgba(255, 255, 255, 0.1) !important; } .campaign-card-full { height: 320px !important; border: none; } .camp-img-full-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-position: center center; background-size: cover; background-repeat: no-repeat; transition: transform 0.8s cubic-bezier(0.2, 1, 0.3, 1); z-index: 1; } .camp-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.9) 100%); z-index: 2; } .campaign-card-full:hover .camp-img-full-bg { transform: scale(1.15); /* Kampanyalarda daha canlı bir zoom */ } /* MODERN ETİKETLER */ .camp-tag-modern { color: white; padding: 6px 18px; border-radius: 50px; font-size: 11px; font-weight: 900; letter-spacing: 1.5px; } .bg-white-20 { background-color: rgba(255, 255, 255, 0.2); backdrop-filter: blur(5px); } .border-white-10 { border-color: rgba(255, 255, 255, 0.1) !important; } JavaScript Kodları: (function() { const ENDPOINT = 'https://bulancakfirmarehberi.com.tr/_boost/browser-logs'; const logQueue = []; let flushTimeout = null; console.log('🔍 Browser logger active (MCP server detected). Posting to: ' + ENDPOINT); // Store original console methods const originalConsole = { log: console.log, info: console.info, error: console.error, warn: console.warn, table: console.table }; // Helper to safely stringify values function safeStringify(obj) { const seen = new WeakSet(); return JSON.stringify(obj, (key, value) => { if (typeof value === 'object' && value !== null) { if (seen.has(value)) return '[Circular]'; seen.add(value); } if (value instanceof Error) { return { name: value.name, message: value.message, stack: value.stack }; } return value; }); } // Batch and send logs function flushLogs() { if (logQueue.length === 0) return; const batch = logQueue.splice(0, logQueue.length); fetch(ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify({ logs: batch }) }).catch(err => { // Silently fail to avoid infinite loops originalConsole.error('Failed to send logs:', err); }); } // Debounced flush (100ms) function scheduleFlush() { if (flushTimeout) clearTimeout(flushTimeout); flushTimeout = setTimeout(flushLogs, 100); } // Intercept console methods ['log', 'info', 'error', 'warn', 'table'].forEach(method => { console[method] = function(...args) { // Call original method originalConsole[method].apply(console, args); // Capture log data try { logQueue.push({ type: method, timestamp: new Date().toISOString(), data: args.map(arg => { try { return typeof arg === 'object' ? JSON.parse(safeStringify(arg)) : arg; } catch (e) { return String(arg); } }), url: window.location.href, userAgent: navigator.userAgent }); scheduleFlush(); } catch (e) { // Fail silently } }; }); // Global error handlers for uncaught errors const originalOnError = window.onerror; window.onerror = function boostErrorHandler(errorMsg, url, lineNumber, colNumber, error) { try { logQueue.push({ type: 'uncaught_error', timestamp: new Date().toISOString(), data: [{ message: errorMsg, filename: url, lineno: lineNumber, colno: colNumber, error: error ? { name: error.name, message: error.message, stack: error.stack } : null }], url: window.location.href, userAgent: navigator.userAgent }); scheduleFlush(); } catch (e) { // Fail silently } // Call original handler if it exists if (originalOnError && typeof originalOnError === 'function') { return originalOnError(errorMsg, url, lineNumber, colNumber, error); } // Let the error continue to propagate return false; } window.addEventListener('error', (event) => { try { logQueue.push({ type: 'window_error', timestamp: new Date().toISOString(), data: [{ message: event.message, filename: event.filename, lineno: event.lineno, colno: event.colno, error: event.error ? { name: event.error.name, message: event.error.message, stack: event.error.stack } : null }], url: window.location.href, userAgent: navigator.userAgent }); scheduleFlush(); } catch (e) { // Fail silently } // Let the error continue to propagate return false; }); window.addEventListener('unhandledrejection', (event) => { try { logQueue.push({ type: 'error', timestamp: new Date().toISOString(), data: [{ message: 'Unhandled Promise Rejection', reason: event.reason instanceof Error ? { name: event.reason.name, message: event.reason.message, stack: event.reason.stack } : event.reason }], url: window.location.href, userAgent: navigator.userAgent }); scheduleFlush(); } catch (e) { // Fail silently } // Let the rejection continue to propagate return false; }); // Flush on page unload window.addEventListener('beforeunload', () => { if (logQueue.length > 0) { navigator.sendBeacon(ENDPOINT, JSON.stringify({ logs: logQueue })); } });})(); (function(window, document) { const merge = (first, second) => { if (Array.isArray(first) && Array.isArray(second)) { return [...first, ...second.filter(item => !first.includes(item))]; } if (typeof first === 'object' && typeof second === 'object') { for (const [key, value] of Object.entries(second)) { first[key] = key in first ? { ...first[key], ...value } : value; } return first; } return undefined; }; const mergeOptions = (...options) => { const result = {}; options.forEach(option => { Object.entries(option).forEach(([key, value]) => { result[key] = key in result ? merge(result[key], value) : value; }); }); return result; }; const renderCallback = (options) => { if(!window.flasher) { throw new Error('Flasher is not loaded'); } window.flasher.render(options); }; const render = (options) => { if (options instanceof Event) { options = options.detail; } if (['interactive', 'complete'].includes(document.readyState)) { renderCallback(options); } else { document.addEventListener('DOMContentLoaded', () => renderCallback(options)); } }; const addScriptAndRender = (options) => { const mainScript = '/vendor/flasher/flasher.min.js'; if (window.flasher || !mainScript || document.querySelector('script[src="' + mainScript + '"]')) { render(options); } else { const tag = document.createElement('script'); tag.src = mainScript; tag.type = 'text/javascript'; tag.setAttribute('nonce', '00abb612ae914741a36700afc15bd2ea'); tag.onload = () => render(options); document.head.appendChild(tag); } }; const addRenderListener = () => { if (1 === document.querySelectorAll('script.flasher-js').length) { document.addEventListener('flasher:render', render); } }; const options = []; options.push({"envelopes":[],"scripts":[],"styles":[],"options":[],"context":{"envelopes_only":false,"csp_script_nonce":"00abb612ae914741a36700afc15bd2ea","csp_style_nonce":"5f198feb52e8d70534bf29933f899c62"}}); /** {--FLASHER_REPLACE_ME--} **/ addScriptAndRender(mergeOptions(...options)); addRenderListener(); })(window, document); // Rakamların 0'dan sayarak yükselmesi için gereken JS document.addEventListener("DOMContentLoaded", () => { const counters = document.querySelectorAll('.counter'); const speed = 100; counters.forEach(counter => { const updateCount = () => { const target = +counter.getAttribute('data-target'); const count = +counter.innerText; const inc = target / speed; if (count < target) { counter.innerText = Math.ceil(count + inc); setTimeout(updateCount, 15); } else { counter.innerText = target; } }; updateCount(); }); }); document.addEventListener("DOMContentLoaded", () => { const counters = document.querySelectorAll('.counter'); counters.forEach(counter => { const updateCount = () => { const target = +counter.getAttribute('data-target'); const count = +counter.innerText; const speed = 100; const inc = target / speed; if (count < target) { counter.innerText = Math.ceil(count + inc); setTimeout(updateCount, 10); } else { counter.innerText = target; } }; updateCount(); }); }); Toplam 10 adet dahili style ve javascript kodu bulunmaktadır.
css ve js dosyalarınızın sayısı mümkün olduğunca az olmalıdır.
css ve js dosyaların sayısı normalden fazla olduğu taktirde site performansı düşecektir. Bu sebeple css ve js dosyalarınızdaki kodları tek bir dosyada toplayarak performansı artırabilirsiniz.
css Dosyaları: https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;600;700;800&display=swap https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css https://bulancakfirmarehberi.com.tr/css/toastr.css https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;800&display=swap js Dosyaları: https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js Toplam 7 adet css, 1 adet js dosyası bulunmaktadır.
css, js, resim vb. dosyalar başka bir siteden çağırılmamalı.
.css, .js, resim gibi dosyalar başka sunuculardan çekildiğinde kısa süreliğine ping gecikmesi yaşanabilir. Bu sebeple dışarıdan dosya çağrılmaması önerilir.
Dışarıdan çağırılan dosyalar: https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg https://upload.wikimedia.org/wikipedia/commons/3/3c/Download_on_the_App_Store_Badge.svg https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;600;700;800&display=swap https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;800&display=swap https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js Toplam 8 adet dışarıdan çağırılan dosya bulunmaktadır.
Sayfanızın W3 valid hataları mümkün olduğunca az olmalı.
Botların sayfanızı sağlıklı tarayabilmesi için html kodlamasının kurallara uygun şekilde yazılması gerekir. Ayrıca W3 standartlarına uyduğunuzda sitenizin farklı tarayıcılarda farklı görünme olasılığı minimum düzeyde olacaktır.
Sayfanızdaki html ve/veya css kodlar W3 kritlerlerine uygun değil.
Bir sayfanın birden fazla benzeri varsa, canonical etiketi kullanılmalı.
Sayfanızda canonical etiketi bulunmuyor.
Sayfanız mümkün olduğunca hızlı açılmalı.
Sayfanızın açılış süresi 5 saniyeyi geçmemeli.
Sayfanız 2.157 SN sürede açılıyor.
CSS kodlarda @import olmamalı.
Artık güncelliğini yitirmiş olan @import kullanılmamalı.
Sayfanızda @import etiketi ile çağırılan css dosyası yok.
Mümkün olduğunca html kod boyutu az, metin boyutu fazla olmalı.
Arama motorları, sayfadaki kelimeleri indeksleyeceği için gereksiz kodlamadan kaçınmakta fayda var.
Metin boyutu: 10.646 KBKod boyutu: 69.222 KBMetin kod oranı: %15.3803