Analytics Not Provided Oranı %100 Oldu

Google Analytics Not Provided Google son dönem politikasında, analytics verilerinde keywordlerin bir kısmını gizlemekteydi. Bu gizlenen kelimeler “not provided” olarak karşımıza çıkmaktaydı. Google , organik aramalar ile gelen ziyaretçilerin gizliliklerini koruma adı altında bu gizlemeyi yapmaktaydı. Google hesabı ile giriş yapmış üyeler ile firefox arama kutusunu kullanan ziyaretçilerin aramada kullandıkları anahtar kelimeler not provided olarak gözükmekteydi. (Google Answers)

Bu aramalar %50-%60 arası ziyaretçiyi kapsıyordu ancak geri kalan keywordleri analytics kullanarak gözlemleyebiliyorduk. Ancak eylül ayı başlarında Google bir yeniliğe daha gitti ve kendi üzerinden yapılan tüm aramaları gizledi. Google üzerinden gelen aramaların %100’ü artık not provided olarak gözükmekte.  Sadece adwords kullananlar bu keywordlere erişebilmekteler.  Kısacası parasını verince kullanıcıların gizliliklerinin önemi kalmıyor gibi bir durum olmuş. Google’ın pazarlama politikalarındaki değişim iyice kendini göstermeye başlıyor.

Webmastertools üzerinden 3 gün gecikmeli olarak arama verilerimize ulaşmamız mümkün, ancak burada da gösterim ve tıklama sayıları 10’dan az olunca adedini görememekteyiz.

Analytics üzerinden ise keywordleri göremesek de keyword üzerinden hangi sayfaların ziyaret edildiğini anlayabiliriz.

  • Trafik Kaynakları – Genel Bakış
  • Not Provided’ın üzerine tıklıyoruz
  • Grafiğin hemen altında ikinci boyut yazan alana tıklıyoruz.
  • Trafik kaynaklarının altından açılış sayfasını seçiyoruz.

Bu sayede hangi sayfaların organik aramalar ile ziyaret edildiğini gözlemleyebiliriz.

Reklamlar

Asp.Net ile Metinden URL Oluşturma

metinden url oluşturmaSeo açısından URL içerisinde geçen keyword‘lerin ne kadar değerli olduğunu biliyoruz. Bu yüzden bazen elimizdeki metinden otomatik olarak URL oluşturmamız gerekebilir.

Seo açısından URL’lerimiz 75 karakteri geçmemeli ve Türkce karakter bulundurmamalıdır. Buna ek olarak kelimeler birbirinden “-” karakteri ile ayrılmalıdır. Tüm bu seo kurallarına uyarak metni URL’e çeviren methodu aşağıda bulabilirsiniz.

Method string olarak metni alıp yine string olarak url döndürmektedir.

private string urlYap(string data)
{
data = data.Replace(",", "").Replace("\"", "").Replace("'", "").Replace(":", "").Replace(";", "").Replace(".", "").Replace("!", "").Replace("?", "").Replace(")", "").Replace("(", " ").Replace("&", " ").Replace(" ", " ");if (data.Length > 75)
{
data = data.Substring(0, 75);
data = data.Substring(0, data.LastIndexOf(" "));
}

data= data.Replace(" ", "-").ToLower();
return data.Replace("ş", "s").Replace("Ş", "s").Replace("ç", "c").Replace("Ç", "c").Replace("ö", "o").Replace("Ö", "o").Replace("ü", "u").Replace("Ü", "u").Replace("İ", "i").Replace("ı", "i").Replace("ğ", "g").Replace("Ğ", "g");
}

SEO Url Yönetimi

URL'leri SEO'ya uygun hale getirmek.

SEO açısından sitemizdeki urllerin yapısı oldukça önem taşımaktadır. İçerik dışında optimizasyon açısından etki alabileceğimiz kritik noktalardandır.

Url‘lerimizi SEO için uygun hale getirmek için aşağıdaki maddelere dikkat etmeliyiz.

  • URL formatı: uzantı bulunmadan slash “/” olmalı ya da sadece .html uzantılı olmalıdır. Aspx ve Php uzantılı olmamalıdır. Örnek: abc.com/biz-kimiz/ ya da abc.com/biz-kimiz.html
  • Kelimeler birbirinde tire “-” ile ayrılmaldır.
  • Url içerisinde 1-2 adet keyword içermelidir.
  • İçerilen keywordler rastgele sıralanmış değil açıklayıcı olmalıdır.
    Örnek: balikciniz.com/balik-kefal/  değil balikciniz.com/kefal-baligi/ şeklinde olmalıdır.
  • Sayfalarımızı sayılar ile sıralamamaya dikkat edelim. Örnek: habercix.com/haber-0128/
  • Url olabildiğince kısa tutmak önemli , 75 karakter uzunluğu geçirmemenizi tavsiye ediyorum. (tire ve slash karakterleri dahil.)
  • Her bir  slash “/”  sonrasında gelen kelimeleri önemsizleştirir. Örnek: habercix.com/haber/seo/ ve habercix.com/seo-haberi/ urllerinde ilk örnekte habere vurgu yapılırken ikinci örnekte seo ön planda tutulmuştur.

Sitenize Twitter Tweet Akışı Ekleme (Embedded Timeline)

Sitenize Twitter zaman akışı, embedded timeline ekleme.
Sitemizde sitemize bağlı twitter hesabının iletilerini göstermek ve de site üzerinden takipçi kazanmak istiyorsak Embedded Timeline uygulamasını (widget) kullanabiliriz.

Öncelikle twitter developer menüsünde aşağıdaki linke girmemiz gerekli.
Widget Ekle

Burada Create New butonuna basıyoruz ve widget arayüzümüz açılıyor.
Arayüz üzerinden; eklenti uzunluğunu, tema ve link renklerini ayarlıyoruz ve “Create Widget” butonuna basıp eklentimizi kaydediyoruz.

Kaydettikten sonra bize verilen html ve script kodlarını sayfamızın ilgili yerlerine yapıştırıyoruz.


<a class="twitter-timeline" href="https://twitter.com/twitterapi" data-widget-id="YOUR-WIDGET-ID-HERE">Tweets by @twitterapi</a>

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

Görüldüğü üzere bir adet link tagi bir adet script tagimiz var. Scripti sayfanın istediğimiz bir yerinde çağırabiliriz. Link (a) tagini ise tweet akışını göstermek istediğimiz yere yapıştırıyoruz.

Artık twitter twit akışı artık sitemizde, diğer özelliklerini değiştirmek için aşağıdaki linkten faydalanabilirsiniz(Language,Tweet limit,Theme,Link color,Width,Height,Chrome):

https://dev.twitter.com/docs/embedded-timelines

Facebook Link Paylaşırken Otomatik Resim Seçimi

facebook-link-paylas

Sitemizin sayfaları Facebook‘ta paylaşılırken facebook sharer otomatik olarak gösterilecek resimleri seçmekte. Ancak bu sitemizde bulunan alakasız resimler ya da sayfanın ana temasını işlemeyen resimler olabiliyor.

Bu istenmeyen durumu engellemek için sayfamızın head taginin altında paylaşılmasını istediğimiz 1. resmin linkini veriyoruz.


<link href="http://www.test.com/image.jpg" rel="image_src" />

Buna ek olarak Open Graph taglarını kullanıyorsak o da resmin seçiminde etkili olacaktır.


<meta property="og:image" content="http://www.test.com/image.jpg" />

Not: 10Kb altındaki resimleri çok kalitesiz bulduğu için belirtseniz dahi Facebook sharer göz ardı etmektedir.

Robots.txt Nasıl Oluşturulur

robots-txt Robots.txt dosyamız sitemizin ana klasörünün altında bulunması gereken bir önemli bir dosyadır. Sitemizi indexlemek üzere ziyaret eden botlar ilk olarak bu dosyaya bakarlar. Bu dosya içerisinde hangi klasörlerimizin indexlenmeyeceğine karar veririz. Bu yüzden seo açısından oldukça önemlidir.

Bu dosyayı hemen yeni bir notpad dosyası açıp ismini “robots.txt” olarak değiştirerek oluşturabilir. Dosyanın içerisinde ise;

Tüm Dosyaları İndexlemesini istiyorsak:

User-agent: *
Disallow

Sadece “gizli” isimli klasörü indexlememesini istiyorsak:

User-agent: *
Disallow: /gizli/

Twitter – Facebook Butonu Yavaş Yüklenme Sorunu [Page Load Time]

facebook-like facebook-tavsiye twitter-takip twitter-tweet

Sayfalarımızın olmazsa olmazı sosyal medya butonları beraberinde büyük bir sorun getiriyorlar. Bazen o kadar geç geliyorlar ki sayfalarımızın yükleme süresini inanılmaz artırıyorlar. Bu da hem maliyet hem seo açısından olumsuz etki hem de ziyaretçiler için olumsuz izlenim oluşturuyor.

Facebook ve Twitter kendi scriptlerini çağırdıkları için takıldıkları zaman 30 saniye boyunca beklemeye devam ediyorlar. Bu da kabul edilebilecek bir süre değil.

Bu istenmeyen süreden kurtulmanın en mantıklı yolu başta scriptleri yüklememek. Butonlarımızın yerine de buton resimlerini koymamız gerekli. Buton resimlerimizin üzerine gelindiği zaman scriptleri çağırıyoruz. Resimleri gizleyip gerçek butonların oluşmasını sağlıyoruz.

Bu sayede sayfamız scriptleri beklemeden yüklenmiş oluyor. Eğer ziyaretçi paylaşmak isterse yükleniyor. Tüm olumsuz etkilerinden korunmuş oluyoruz.

Örnek çalışma:


<table border=0 width=140 cellspacing=0 cellpadding=0>
<tr><td height=30><div id="fb-like" class="fb-like" data-href="http://www.facebook.com/xxx" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false" style="background:url('/images/facebook-like.png') no-repeat;"><img style="cursor:pointer;" onmouseover="javascript:runfb();" src="/images/facebook-like.png" /></div></td></tr>
<tr><td height=30><div id="fb-recommend"></div><fb:like send="false" layout="button_count" width="90" show_faces="false" font="lucida grande" action="recommend"><img style="cursor:pointer;" onmouseover="javascript:runfb();" src="/images/facebook-tavsiye.png" /></div></fb:like></td></tr>
<tr><td height=30><a id="tw-follow" href="https://twitter.com/xxx" style="font-size:12px;" class="twitter-follow-button" data-show-count="false" data-lang="tr" data-show-screen-name="false"><img style="cursor:pointer;" onmouseover="javascript:runtw();" border="0" src="/images/twitter-takip.png" ></a></td></tr>
<tr><td height=30><a id="tw-share" href="https://twitter.com/share" class="twitter-share-button" data-related="jasoncosta" data-lang="en" data-size="small" data-count="true"><img style="cursor:pointer;" onmouseover="javascript:runtw();" border="0" src="/images/twitter-tweet.png" ></a></td></tr>
</table>

<script type="text/javascript">

function runtw() {
document.getElementById("tw-follow").innerHTML = "";
document.getElementById("tw-share").innerHTML = "Tweet";
var pw = document.createElement('script'); pw.type = 'text/javascript'; pw.async = true;
pw.src = '//platform.twitter.com/widgets.js';
var sw = document.getElementsByTagName('script')[0]; sw.parentNode.insertBefore(pw, sw);
}
function runfb() {
document.getElementById("fb-like").innerHTML = "";
document.getElementById("fb-recommend").innerHTML = "";
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/tr_TR/all.js#xfbml=1&appIdId=APP_ID";
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
}
</script>