Popüler bir front end web geliştirme aracı olan React JS, dünya çapında yaklaşık 10.2 milyon web sitesi tarafından kullanılmaktadır. Çoğunlukla React olarak anılan React JS, JavaScript tabanlı bir UI geliştirme kütüphanesi olup Facebook ve açık kaynaklı bir geliştirici topluluğu tarafından yürütülür. Jordan Walke’un Facebook’ta çalışırken oluşturduğu React tek sayfalık uygulama ya da mobil uygulama geliştirme sürecinde kullanılabilir.
Çok yönlü bir araç olması nedeniyle birçok farklı projede JavaScript kütüphanesi React kullanılabilir. Material UI, Redux ya da Create React App gibi farklı kütüphane ve araçlarla React kullanılması mümkündür. Farklı çerçevelerle daha büyük projeler oluşturulurken ek bir kütüphane olarak React kullanılabilir. Bildirime dayalı bileşenlere örnek olarak verilebilecek React Router ya da React Navigation gibi araçlarla ya da kütüphaneyle çalışan navigasyon çözümleriyle de React çalışabilir.
React tek başına SEO açısından bazı zorluklar içerebilir. Bunun nedeni, bazı arama motorlarının JavaScript tabanlı içerikleri indeksleme konusunda sınırlamalar uygulayabilmesidir. Bu yüzden, React ile geliştirilen web uygulamalarını SEO dostu bir hale getirmek için çeşitli stratejilerden ve tekniklerden faydalanılması gerekir.
İçindekiler
- 1 React SEO Nedir?
- 2 React Neden Özel Bir Yaklaşım Gerektirir?
- 3 React SEO Dostu mu?
- 4 Hangi Yöntemi Tercih Etmelisiniz?
- 5 React SEO Nasıl Yapılır?
- 5.1 URL Yapısı
- 5.2 setTimeOut Kullanımı
- 5.3 URL’lerde Küçük – Büyük Harf ve Slash Sorunu
- 5.4 Meta Verileri
- 5.5 Onclick Link Kullanımı
- 5.6 Görsellerin Sunumunda Kullanılan Yöntem
- 5.7 404 Hata Sayfası ve 404 Durum Kodu
- 5.8 Server Side Rendering, Client Side Rendering ve Pre-rendering
- 5.9 React.Lazy
- 5.10 React Helmet
- 6 React SEO Hakkında Sıkça Sorulan Sorular
React SEO Nedir?
React SEO, modern web uygulamalarının en önemli bileşenlerinden biridir. React, bileşen tabanlı bir mühendislik yaklaşımla geliştirilmiş ve kullanıcı deneyimini artırmak amacıyla tasarlanmış bir JavaScript kütüphanesidir. Ancak, JavaScript tabanlı bu yapılar, arama motorlarının sayfalarınızı etkili bir şekilde indekslemesinde bazı zorluklar oluşturabilir.
İlk olarak, SEO yani Arama Motoru Optimizasyonu, web sitenizin arama motorları tarafından kolayca bulunması ve kullanıcılar tarafından daha rahat gezilebilmesi için yapılan çeşitli teknik düzenlemeleri içerir. React kullanarak yaptığınız bir web uygulamasında, Google botlarının bu dinamik yapıya sahip sayfaları indekslemekte zorlanabileceğini görebilirsiniz. Bu durumda, SEO açısından uygun teknikleri kullanmanız oldukça önemlidir.
React uygulamalarında SEO uyumluluğu sağlamak için, genellikle üç temel yaklaşım kullanılır. Bunlar: İstemci Taraflı Rendering (CSR), Önceden Hazırlama (Pre-rendering) ve Sunucu Taraflı Rendering (SSR) olarak sıralanabilir. Bu yöntemlerin her biri, kendi avantaj ve dezavantajları ile gelir, bu yüzden projenizin gereksinimlerine ve kullanıcı kitlenize bağlı olarak en uygun yöntemi seçmelisiniz. İlerleyen bölümlerde, bu yöntemlerin her birini ayrıntılı olarak ele alacağız.
React Neden Özel Bir Yaklaşım Gerektirir?
React çok yüksek derecede etkileşimli ve son derece hızlı arayüzler geliştirme imkanı sunan bir JavaScript kütüphanesidir. React tabanlı web sitelerinde sayfalar çok hızlı yüklenir. Bu durum, Single Page Application yaklaşımından kaynaklanır.
React ya da benzeri JS frameworkleriyle inşa edilmeyen internet sitelerinde, gerçekleştirilen işlemler sonucu DOM, HTML dokümanı seviyesinde güncellenir. Diğer bir deyişle DOM’da bir değişiklik söz konusu olduğunda, sadece ufak bir değişiklik olsa bile, tüm HTML sonucu tarafından yeniden tarayıcıya iletilmelidir. Bu durum, temelde kullanıcı navigasyonunu olumsuz yönde etkileyen bir unsur olarak kabul edilir.
Single Page Application yaklaşımıyla yönlendirme işlemleri sunucu tarafından değil, JavaScript aracılığıyla istemci tarafından gerçekleştirilir. Bu yaklaşımda tek bir HTML dokümanı vardır ve tüm değişiklikler bu inden dosyasında dinamik bir şekilde gerçekleştirilir. Bu sayede sayfanın yeniden yüklenmesi gerekmeksizin değişikliklerin kullanıcı tarafından anlık olarak gerçekleştirilmesi sağlanır.
Bu yaklaşım kulanıcı deneyimi üzerinde son derece olumlu etkilere sahiptir. Söz konusu SEO performansı olduğunda ise bu kadar net konuşmak mümkün değildir. Google günümüzde tamamen CSR yöntemini kullanan JavaScript tabanlı web sitelerini dahi tarayıp indeksleyebilir. Ancak bu konuda mükemmel bir performansa eriştiğinden bahsedilemez. Bu nedenle, React ile oluşturulan internet sitelerinde bazı noktalara dikkat etmek ve meydana gelmesi olası SEO problemlerini önlemek gerekir.
React SEO Dostu mu?
En çok aranan framework olan React SEO dostudur. Statik, dinamik ve tek sayfalık uygulamaların hepsinin React ile oluşturulması mümkündür. Ancak bu üç uygulama türü SEO dostu olma konusunda eşit konumda değildir.
Statik bir web uygulaması SEO ile tamamen uyumludur. Bunun nedeni, gerekli tüm materyali anında bir HTML dosyasına dönüştürüp Google’ın sayfaları hızlı bir şekilde izlemesine ve sıralamasına imkan vermesidir. Dinamik web sitelerinin özelliği ise gerçek zamanlı veri ve sayfa oluşturmadır. Sunucu ucundaki her istek için belirli bir yanıt tetiklenmekte ve daha sonra istemci ucuna gitmektedir. Buna bağlı olarak Google dinamik sayfaları herhangi bir sorun yaşamadan yorumlayıp sıralayabilir.
Tek sayfalı uygulama (SPA), sadece bir HTML sayfası yükleyen ve kullanıcı girdisine yanıt olarak bu sayfası dinamik bir şekilde değiştiren web uygulaması türü olarak tanımlanabilir. SPA’da sunucu yalnızca ilk HTML sayfasını ve gerekli verileri sağlar. İstemcinin web tarayıcısı ise tüm uygulama mantığını yürütme görevini üstlenir. Kullanıcının gerçekleştirdiği her eylemin ardından web sitesinin yenilenmesi ve yeniden çizilmesi gerekmez. Böylece reaktif bir kullanıcı deneyimi sağlanır.
Hangi Yöntemi Tercih Etmelisiniz?
React SEO konusu, birçok geliştiricinin ve web sitesi sahibinin üzerine kafa yorduğu bir alan haline gelmiştir. Bu konudaki en önemli sorulardan biri, hangi yöntemin tercih edilmesi gerektiğidir. Doğru yöntemi seçmek, sitenizin arama motoru sonuçlarında daha üst sıralarda yer almasını sağlar ve bu da organik trafiğin artmasına yol açar.
CSR ve Pre-rendering Kullanımı
React uygulamalarında SEO optimizasyonu yaparken, birçok farklı yaklaşım kullanılabilir. Bu yaklaşımlar arasında Client-Side Rendering (CSR) ve Pre-rendering yöntemleri, geliştiriciler tarafından sıkça tercih edilen iki yaygın metod olarak karşımıza çıkar. CSR, uygulamanın tüm HTML ve JavaScript kodlarının tarayıcı tarafından yüklenmesi ve çalıştırılması esasına dayanır. Bu yöntem, dinamik içerik oluşturma ve kullanıcı etkileşimi açısından oldukça esneklik sunar.
CSR yönteminin temel avantajı, uygulamanın ilk yükleme süresinin daha hızlı olmasıdır. Ancak, tüm içerik tarayıcı tarafında oluşturulduğu için, arama motorları tarafından kolayca taranamayabilir ve indekslenemeyebilir. Bu nedenle, arama motoru sıralamalarında kayda değer bir düşüş yaşanabilir. Bunun önüne geçmek adına, Pre-rendering kullanmak mantıklı bir çözüm olabilir. Pre-rendering, sayfaların önceden oluşturulup, kullanıcıya sunulması anlamına gelir.
Pre-rendering kullanarak, sayfalar sunucu tarafında önceden işleme girer ve statik HTML dosyaları oluşturulur. Bu HTML dosyaları, kullanıcı tarayıcısına doğrudan gönderildiği için, arama motorları tarafından daha rahat taranabilir ve indekslenebilir. Böylece, SEO performansı artar ve sayfalar arama motorlarında daha iyi sıralamalara sahip olabilir. Ancak, bu yöntemde sayfa yükleme süresi biraz daha uzun olabilir ve sürekli değişen içeriklerin güncel tutulması için ek konfigürasyonlar gerektirebilir.
SSR Kullanımı
SSR (Sunucu Tarafı Rendering), web sayfalarının içeriklerinin sunucuda oluşturularak tarayıcıya gönderilmesini ifade eder. Bu yöntem, SEO açısından oldukça verimli bir yöntemdir çünkü web sayfasının içeriği kullanıcıya sunulmadan önce sunucuda bütünleştirilir ve tarayıcıda hemen görüntülenebilir hale gelir. Bu sayede arama motorları sayfanın içeriklerini kolaylıkla indeksleyebilir ve sitenizin organik trafiği artar.
SSR kullanarak, kullanıcı sayfaya ilk kez girdiğinde içeriğin hızlı bir şekilde yüklenmesini sağlarız. Sunucu, istemciden gelen isteği alır ve bu isteğe göre HTML sayfasını oluşturur. Böylece kullanıcı, içeriği doğrudan ve gecikme yaşamadan görebilir. Ayrıca, SSR aynı zamanda mobil cihazlarda da performans artışı sağlar ve kullanıcı deneyimini önemli derecede iyileştirir.
React projelerinde SSR kullanarak, hem SEO performansınızı iyileştirebilir hem de kullanıcı deneyimini artırabilirsiniz. Örneğin, Next.js gibi framework’ler SSR’yi kolaylıkla uygulamanıza olanak tanır ve React bileşenlerinizi sunucu taraflı olarak render edebilir. Bu, sayfa açılış hızınızı artırarak, kullanıcıların sitenizde daha uzun süre vakit geçirmesini sağlar ve dönüşüm oranlarını olumlu yönde etkileyebilir.
React SEO Nasıl Yapılır?
React tabanlı sitelerde SEO performansını optimize etmek için uygulanması gereken birkaç farklı adım bulunmaktadır.
URL Yapısı
React, SPA prensiplerine uygun arayüzler inşa etme amacıyla kullanılır. Bu yaklaşım dahilinde HTML dokümanı sürekli olarak değişmediği için standart bir index dosyası vardır. Standartta oluşturulan tüm sayfalara ait URL’ler “#” işareti barındırmaktadır. Bu durum, ilgili URL’lerin parametre benzeri bir muamele görmesine neden olur.
On-page SEO’nun temel kriterlerinden biri, anlaşılabilir ve temiz bir URL yapısına sahip olmaktır. Bu durum, JavaScript tabanlı internet siteleri için de çok önemlidir. Ancak, URL’lerde kullanılan “#” işareti biraz daha farklı bir konumdadır.
Arama motoru botlarına, oluşturulan her bir sayfanın ayrı ve gerçek birer sayfa olduğunu gösterebilmek için URL yapısı mümkün olduğunca hatalardan arındırılmalı ve temiz bir şekilde oluşturulmalı, önerildiği üzere “#” işareti kullanılmamalıdır. Bu sorunu React Router kullanarak gidermek mümkündür. Reach Router, React ile oluşturulan arayüzlerde URL’lerin sorunsuz bir şekilde yönetilebilmesini sağlar.
setTimeOut Kullanımı
JavaScript tabanlı internet sitelerinde en sık kullanılan fonksiyonlardan biri setTimeOut’tur. setTimeOut kullanımı kullanıcı açısından herhangi bir problem yaratmasa da, arama motoru robotları devreye girince setTimeOut kullanımına bağlı sorunlar gündeme gelebilir.
setTimeOut fonksiyonu, içeriklerin belirli bir süre sonra ekrana gelmesini sağlar. Ancak, Google’ın her internet sitesini taramak için ayırdığı bir bütçe vardır. Arama motoru botları bir URL’i tararken herhangi bir içerikle karşılaşmazsa, bu URL’de daha fazla zaman kaybetmez.
URL’lerde Küçük – Büyük Harf ve Slash Sorunu
İnternet sitesindeki URL’lerin büyük & küçük harf ya da “/” benzeri farklı varyasyonlarla dahi 200 durum koduyla açılması halinde ciddi sorunlar yaşanabilir. Parametreler çoğu zaman bir sayfanın alternatif versiyonu olarak ele alınmakla birlikte farklılaşan URL’ler söz konusu olduğunda, arama motoru robotları tüm URL’leri ayrı ve eşsiz bir sayfa olarak değerlendirir.
İlgili varyasyonlar halihazırda internet sitesinde bulunan bir sayfanın birebir kopyası olacağı için duplicate content ve keyword cannivalization sorunlarıyla karşılaşılması olasıdır. Oluşabilecek sorunları önleyip web sitesinde başarılı bir standart oluşturmak için yapılması gerekenler şu şekilde sıralanabilir:
- URL’lerin tamamı küçük harfler kullanılarak oluşturulmalıdır.
- Herhangi bir URL’de küçük harf yerine büyük harf kullanılması halinde, oluşan yeni varyasyon otomatik olarak standart versiyona 301 durum koduyla yönlendirilmeli ya da 404 hatası vermelidir.
- URL sonunda bulunan “/” işareti konusunda bir standart belirlenmeli ve aynı şekilde oluşan varyasyon URL’lerin standart URL’lerine 301 durum koduyla otomatik olarak yönlendirilmelidir.
Bu hataları önlemek için canonical zaman zaman tercih edilse de, canonical bir direktif değil bir sinyal olduğu için yetersiz bir önlem olabilir. Özellikle bu varyasyonlara çok sayıda backlink gelmesi halinde, arama motoru robotları bu URL’leri keşfeder ve canonical sinyallere rağmen indeksler.
Meta Verileri
Meta verileri SEO açısından çok önemlidir. Tüm internet sitelerinin head etiketleri arasında bulunmaları ve HTML dokümanı seviyesinde görünür olmaları gerekir. Reach tabanlı internet sitelerinde tüm içerikler standart bir şekilde JavaScript ile sunulduğu için herhangi bir düzenleme yapılmadıkça meta verileri ve yapısal veriler kaynak kodda görülmez. Bu sorunu gidermek için React Helmet kullanılmalıdır. React Helmet kullanarak herhangi bir bileşenin meta verilerini tanımlamak mümkündür.
Bir internet sitesinin head etiketleri arasında bulunması gereken en önemli meta verileri; title, description ve canonical olarak sıralanabilir. Meta verilerin yanı sıra yapısal veri işaretlemelerinin de HTML dokümanı seviyesinde kendine yer bulması gerekir. Diğer bir deyişle tüm yapısal veriler hem Raw hem de Rendered versiyonda arama motoru robotları tarafından keşfedilebilmelidir.
Onclick Link Kullanımı
Onclick link kullanımı, arama motoru robotlarının crawl sürecini olumsuz yönde etkiler. Onclick ile sağlanan bağlantılar arama motoru robotları nezdinde URL özelliği taşımadığı için takip edilemez ve farklı sayfalar taranmaz. React tabanlı internet sitesinin tüm iç bağlantıları Onclick’ten oluştuğunda arama motoru robotları bu bağlantıları takip edemez. Bu sorunu giderme amacıyla linkler için “a href” tercih edilebilir.
Görsellerin Sunumunda Kullanılan Yöntem
React ile oluşturulan arayüz tasarımlarında görseller kullanıcılara genellikle CSS ile sunulur. Google CSS ile sunulan görselleri tarayabilse de bu görselleri indekslemez. Bu nedenle, site içinde kullanılan görselleri “img src” yöntemiyle sunmak gerekir.
404 Hata Sayfası ve 404 Durum Kodu
Var olmayan URL’ler ve hatalı yazılımlar kullanıcılara da arama motoru robotlarına da 404 hata kodu göstermelidir. Reach ile geliştirilmiş internet sitelerinde gerekli düzenlemeler yapılmazsa 404 hatası dönmesi gereken tüm sayfalardan sort 404 hatası döner. Diğer bir deyişle web sitesinde hata sayfası tasarımı varsa ve yanlış yazılımlarda kullanıcıya bu sayfa gösteriliyorsa, hata sayfası 200 durum koduyla açılır.
SSR yöntemi tercih edildiğinde, var olmayan URL’lerin 404 hatası döner. CSR yöntemi tercih edildiğinde bu mümkün olmaz. Bu tür durumlarda hatalı URL’ler JavaScript ile 404 hata sayfasına yönlendirilmelidir.
Server Side Rendering, Client Side Rendering ve Pre-rendering
Gerekli düzenlemeler yapılırsa Google CSR yöntemini kullanan React tabanlı web sitelerini başarılı bir şekilde tarar. Ancak sayfa sayısı arttıkça, ilgili internet sitesinin taranabilirliği sırasında sorunlar yaşanabilir.
Client side rendering Yöntemi kapsamında;
- Kullanıcı ya da robot bir istek oluşturur.
- Oluşturulan isteğe bağlı olarak sunucu sayfa içeriğini ve JS dosyalarını tarayıcıya iletir.
- JS dosyaları tarayıcı tarafından indirilir.
- Tarayıcı JS dosyalarını çalıştırır.
- JS dosyalarının çalışmasıyla sayfa içeriği kullanıcılar ve arama motoru robotları tarafından görülebilir hale gelir.
CSR yönteminin son aşamasında sayfa içeriği kullanıcılar ve arama motoru robotları tarafından görülüp işlenebilir hale gelse de, bu içeriklerin sitenin kaynak kodlarında gösterilmesi söz konusu olmaz. Kullanıcı tarayıcısında JavaScript’i engellediği takdirde site içeriği kullanıcıya hiçbir şekilde gösterilmez.
Server Side Rendering yönteminde kullanıcı ya da arama motoru robotları sunucuya istek gönderdiğinde dosyalar doğrudan tarayıcıya gönderilmez. Sunucu HTML dokümanı oluşturur ve tarayıcıya bu dokümanı iletir. Tarayıcı, dokümanı ve JS dosyalarını teslim alınca JS dosyalarını çalıştırır. JS dosyalarının execute işlemi tamamlanmamış olsa dahi sayfa içeriği kullanıcılar ve arama motoru robotları tarafından görülebilir. Son aşamada stil dosyaları işlenerek stil tasarımı bütün haliyle kullanıcıya sunulur ve kullanıcı siteyle etkileşime girebilir.
React.Lazy
React Lazy fonksiyonu, React uygulamalarında dinamik kod yükleme ve bileşen yükleme süreçlerini geciktirme amacıyla kullanılır. Bu özellik, performansı artırmak ve sayfa yükleme sürelerini optimize etmek için önemlidir.
Genellikle büyük React uygulamalarında tüm bileşenlerin tek seferde yüklenmesi yerine, kullanıcının ihtiyaç duyduğu bileşenlerin yüklendiği zamanların geciktirilmesi istenir. Bu sayede, başlangıçta tüm uygulama kodunu indirmek yerine, sayfaların ve işlevlerin gerektiği zamanlarda yüklenmesi mümkün olur.
React Lazy fonksiyonu ile bir bileşen yüklenmeden önce, o bileşenin yüklenme sürecini geciktirilebilir. Böylece, kullanıcılar sayfaya giriş yaptıklarında sadece gerekli bileşenler anında yüklenir, bu da sayfa yükleme süresini azaltır ve performansı artırır.
React Helmet
React Helmet, React uygulamalarında dinamik olarak sayfa başlıkları, meta etiketleri ve diğer head içeriği gibi SEO odaklı ve sayfa düzenlemesi gerektiren HTML başlıklarını yönetmek için kullanılan bir React bileşenidir.
SEO açısından, her sayfanın benzersiz bir başlık, açıklama ve meta etiketleri gibi belirli bilgilerle donatılması önemlidir. Bu bilgiler, arama motorlarının içeriği indekslemesine yardımcı olurken, kullanıcıların doğru ve anlamlı bilgilerle karşılaşmasını sağlar.
React Helmet bu tür başlık, açıklama, anahtar kelimeler ve diğer meta etiketleri gibi head içeriğini yönetmek için kullanılır. Böylece, herhangi bir React bileşeni içinde, o bileşenin başlık, açıklama veya diğer head içeriğiyle ilgili bilgiler dinamik olarak değiştirilebilir.
Diğer rehber yazılarımıza göz atın:React SEO Hakkında Sıkça Sorulan Sorular
React SEO, web sitenizin arama motorlarında daha yüksek sıralarda yer almasını sağlayarak organik trafik ve görünürlüğü artırır. Bu da potansiyel müşteri sayısını artırabilir.
React uygulamaları genellikle client-side rendering (istemci taraflı işleme) kullanır ve bu, arama motoru botlarının sayfanın içeriğini tanımasını zorlaştırabilir.
Sunucu taraflı işleme, sayfa yüklenmeden önce HTML içeriğinin tamamen oluşturulmasına olanak tanır. Bu, arama motoru botlarının sayfanın içeriğini daha kolay ve etkili bir şekilde taramasını sağlar.
Meta etiketler, sayfanın başlığı, açıklaması ve anahtar kelimeleri gibi önemli bilgileri içerir. Bu bilgiler, arama motorlarının sayfanın içeriğini anlamasında ve sıralamada yardımcı olur.
React Helmet, React uygulamalarında meta etiketleri ve diğer değişken başlık bilgilerini yönetmek için kullanılan bir kütüphanedir. Bu, SEO optimizasyonu için dinamik ve uygun meta verilerin oluşturulmasına yardımcı olur.
React uygulamalarının SEO performansını izlemek için Google Search Console, Lighthouse, Screaming Frog gibi araçlar kullanılabilir. Bu araçlar, sayfa internet siteleriyle ilgili önemli verileri ve iyileştirme önerilerini sunar.