Joomla için SEO konusu aslında çok uzmanı olduğum bir alan değil ancak son 1-2 aydır yaptığım işlerde ister istemez işin inceliklerini araştırmak zorunda kaldım. Daha önce eklemiş olduğum Joomla SEO Ayarları yazısından sonra aslında sıra bu içerikte değildi ancak bir arkadaşımızın sorusu üzerine araya girmiş oldu. Joomla arama sayfası sonuçlarını nasıl özelleştireceğimizi anlatacağım. Konuda kodlara müdahele edeceğimiz için yedekli çalışmanızda fayda var.
Yapacağınız işlemlerden doğacak hatalardan sorumlu değiliz nitekim cesaretiniz varsa işe girişin :)
Öncelikle sorun nedir, ne istiyoruz ona bakalım. Joomla'da arama işlemi sonuçlarını gösteren sayfada tarayıcı başlığı, sayfa kodlarındaki meta keywords ve meta description içeriğini değiştirmek istiyoruz. Normalde buraya gelen bilgiler ne ararsanız arayın değişmez sabittir. Biz istiyoruz ki arama yapılan kelime veya cümleyi sonuçlarda gösterelim ve SEO açısından biraz da olsa katkı sağlasın. Google Webmaster Tools içinde tekrar eden meta değerlerini hata olarak gösteriyor biliyorsunuz. Her sayfada farklı bir değer olması bizim açımızdan iyi olacaktır. Şimdi kolları sıvayalım ve başlayalım.
Joomla'da arama sayfası ile ilgili olan bileşenin adı "search" ve components içindeki com_search klasörü bileşen dosyalarımızı saklıyor. Bu klasörü açtığınızda iki adet klasör var birisi models diğeri views. Veritabanı ile ilgili işlemler models klasöründe yapılıyor ancak bizim bu klasör ile bir işimiz yok. Diğer klasörümüz yani views ise sonuçların gösterildiği sayfalar ile ilgili olan klasör. Şimdi views klasörünün içeriğine girin. Yine bu klasörün içindeki search klasörünün içine girin.
Ben editör olarak Notepad++ kullanıyorum ve 56. ve 61. satırda şu şekilde bir satır var:
$params->set('page_title', JText::_('COM_SEARCH_SEARCH'));
Bu satır tarayıcının başlığının atamasının yapıldığı yer. HTML kodlarındaki <title> taglarını temsil eden yer olmuş oluyor. Burada kullanım şeklinize göre her iki satırdan birisini kullanıyor Joomla. Peki fark nedir hangisini kullanacaksınız buna sizin karar vermeniz gerek. Eğer arama linkini bir menüde belirtti iseniz menü ayarlarında sayfa başlığı ile ilgili bir yer var. Buraya bir şeyler yazdı iseniz o gelir yok eğer yazmadı iseniz 56. satır ve 61. satır kullanılır. Detayları öğrenmeyi seviyorsanız Joomla SEO derslerinde bu konudan bahsedeceğiz şimdilik idare edin :)
Burada bize lazım olan şey siteyi ziyaret eden kişinin hangi kelime veya cümle ile arama yaptırdığı. Bu değeri model'den alıyoruz ancak bizim ekstra bir şey yapmamıza gerek yok çünkü Joomla zaten 42. satırda:
$searchword = $state->get('keyword');
ile $searchword değişkeni ile modelden view'e taşınmış. İşte bu değişkeni her yerde kullanacağız 56. ve 61. satırları aşağıdaki gibi değiştirin:
$params->set('page_title', $searchword. ' '.JText::_( 'COM_SEARCH_SEARCH'));
Arama kutusuna seo yazıp Ara butonuna basınca artık sonuçlar değişecek. Aşağıdaki resimde kodları düzenlemeden önceki ve sonraki farkı görebilirsiniz.
Burada seo kelimesinden sonra gelen Arama kelimesinin kaynağı dil dosyası. Language klasöründe tr-TR klasörü içindeki tr-TR.com_search.ini dosyasındaki COM_SEARCH_SEARCH="Arama" satırından geliyor. Eğer isterseniz dil dosyasından değişiklik yapabilirsiniz ya da 56. ve 61. satırlardaki JText::_('COM_SEARCH_SEARCH') yerine tek tırnaklar içinde istediğiniz cümleyi yazabilirsiniz. Daha fazla şey yapılabilir ancak işi uzatmamak adına meta'lara geçiyorum.
Sayfa kaynağında bulunan Meta Keywords ve Meta Description kısımlarında düzenleme yapalım. Description satırı 79. satırda yer alıyor:
$this->document->setDescription($params->get('menu-meta_description'));
Bu satırda eğer menü ayarlarında Meta Description tanımlandı ise o tanımlanan değeri Description'a atama işlemi yapar. Doğal olarak biz arama kelimemiz ile birleştirme yapacağız. Sonuç aşağıdaki gibi olmalıdır:
$this->document->setDescription($searchword.' '.$params->get('menu-meta_description'));
84. satırda ise Meta Keywords var ve önceki hali şu şekilde:
$this->document->setMetadata('keywords', $params->get('menu-meta_keywords'));
Eğer menü ayarlarında tanımlanmış olan keywords var ise o bilgileri çekiyor ve Keywords için atama yapılıyor. Arama kelimemizi eklediğimizde sonuç şu şekilde olacak:
$this->document->setMetadata('keywords',$searchword.' '.$params->get('menu-meta_keywords'));
Aşağıdaki resimde ise kod düzenlemelerinden sonra sayfamızın sonuçlarında farkı inceleyebilirsiniz:
Herhangi bir eklenti kullanmadan ancak kodlara müdahele ederek bu işlemi çözebilirsiniz. Burada dikkat edeceğiniz şeyler güncellemeler olacaktır. Eğer com_search bileşeninde bir değişiklik yapılırsa sizin düzenleme yaptığınız dosyada güncellenebileceğinden yaptıklarınız boşa çıkabilir.
Sorularınız için altta bulunan yorum bölümünü kullanabilirsiniz.