RSS Yayını Nedir? SEO İçin RSS Oluşturma
RSS (Rich Site Summary), çoğunlukla blog ve haber siteleri tarafından kullanılan ve yeni eklenen içeriğin kolaylıkla takip edilmesini sağlayan bir web sayfası yayıncısıdır/bildirimcisidir. Kullandığı dosya formatı .rss ve .xml’dir. RSS kısaltmasının açılımı ve zaman içinde gelişimi şu şekildedir:
- Rich Site Summary (RSS 0.91) (Zengin Site Özeti)
- RDF Site Summary (RSS 0.9 and 1.0) (RDF Site Özeti)
- Really Simple Syndication (RSS 2.0.0) (Çok Basit Besleme)
SEO dünyasında site haritası yaratmak ve bunları google’a eklemek, optimizasyon sürecinin en önemli parçalarından birisidir. Site haritası kullanan web sitelerinin herhangi bir değişim ya da yeni eklenen içeriklerin Google tarafından hızlı bir şekilde keşfedilmesi ve indekslenmesi, bu haritalarla mümkündür.
XML ve RSS formatındaki haritalar arasındaki en önemli fark, XML haritalarında siteye ait tüm URL’lere ve bu URL’lere ait bir takım detaylara yer verilirken, RSS/Atom yayınlarında ise sadece en son yapılan değişikliklerin yer almasıdır. Bu yüzden Google bu 2 formattaki haritaları farklı olarak ele alır ve değerlendirir. Bu da şu şekildedir:
- XML haritalar genellikle büyük boyutta iken, RSS/Atom yayınları siteye ait güncellemeleri barındırdığı için çok daha küçüktür.
- XML haritalar, RSS/Atom yayınlarına kıyasla googlebot tarafından çok daha düşük frekansta indirilir ve taranır.
Dolayısıyla sitenizin ideal bir şekilde taranması için her 2 formattaki haritaları oluşturmanız tavsiye edilir. XML haritaları sitenize ait tüm URL’leri barındırırken, RSS/Atom yayınları siteniz ve sayfalarınızın Google indekslerinde taze kalmasına yardımcı olur. Buradaki tazelikten kasıt, sitenizdeki değişimlerin yani güncellemelerin aynı zamanda Google indekslerine de kısa sürede yansımasıdır. Tabii burada şunu da eklemek gerekir ki XML site haritası veya RSS yayınınızı Google’a eklemek, sayfalarınızın indeksleneceği garantisini asla vermez.
Basit bir XML site haritası örneği:
<?xml version="1.0" encoding="utf-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://www.ugureskici.com/hakkimda</loc> <lastmod>2014-12-01T19:34:00+01:00</lastmod> <!-- opsiyonel olan diğer etiketler --> </url> <url> ... </url> </urlset>
Basit bir RSS yayını örneği:
<?xml version="1.0" encoding="utf-8"?> <rss> <channel> <!-- diğer etiketler --> <item> <!-- diğer etiketler --> <link>https://www.ugureskici.com/hakkimda</link> <pubDate>Mon, 01 Dec 2014 19:34:00 +0100</pubDate> </item> <item> ... </item> </channel> </rss>
Basit bir Atom yayını örneği:
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <!-- diğer etiketler --> <entry> <link href="https://www.ugureskici.com/hakkimda" /> <updated>2014-12-01T19:34:00+01:00</updated> <!-- diğer etiketler --> </entry> <entry> ... </entry> </feed>
Bu yazımda RSS dosyası nasıl oluşturulur, biraz bundan bahsedeceğim. Yukarıdaki RSS kod bloğunda da belirtildiği gibi en temel haliyle bir RSS dosyası xml, rss, channel ve item etiketlerinden oluşur.
Kısaca hemen bazı etiketlerden bahsedelim. <xml> etiketi declaration (beyan, başlangıç) için gereklidir ve versiyon bilgisinin girilmesi zorunludur. Burada opsiyonel olarak yer vereceğiniz encoding alanı ise, eğer tanımlama yapılmazsa varsayılan değeri UTF-8 ‘dir. Dosya içerisinde kullanacağınız karakter setine göre doğru encoding kütüphanesini eklemeniz gereklidir.
<?xml version="1.0"?> ya da <?xml version="1.0" encoding="[ kullanmak istediğiniz encoding ]"?>
Kullanabileceğiniz encoding seçenekleri ise:
- ANSI_X3.4-1968 ya da US-ASCII
- ISO_8859-1:1987 ya da ISO-8859-1
- ISO_8859-2:1987 ya da ISO-8859-2
- ISO_8859-5:1988 ya da ISO-8859-5
- ISO_8859-7:1987 ya da ISO-8859-7
- ISO_8859-9:1989 ya da ISO-8859-9
- Shift_JIS
- EUC-JP
- GB2312
- EUC-KR
- Big5
- windows-1250
- windows-1251
- UTF-8
- x-mac-roman
Örnek bir kullanım:
<?xml version="1.0" encoding="windows-1251"?>
Ardından RSS yayınınızda kullanmak istediğiniz kütüphaneleri etkinleştirmek ve RSS versiyonunu belirtmeniz için <rss> etiketine ihtiyacımız var. Bu etiket içerisinde, kullanmak istediğiniz namespace’leri aşağıdaki örnekte olduğu gibi yer vermeniz yeterli olacaktır:
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" <!-- diğer namespace tanımlamaları --> >
<channel> etiketinde ise RSS yayınıza ait link, RSS başlığı & açıklama, yayının dili, telif hakları, son güncelleme tarihi gibi bir takım detaylara yer verebilirsiniz. Özellikle googlebot’un değişikliklerden haberdar olması ve sitenizi buna göre taraması için <pubDate> etiketini kullanmanızı şiddetle tavsiye etmekteyim. pubDate değeri, RFC822 formatına göre doğru bir şekilde oluşturulmalıdır. <channel> etiketinde kullanabileceğiniz etiketlerin listesi ise şu şekildedir:
<?xml version="1.0"?> <rss version="2.0"> <channel> <title>...</title> <link>...</link> <description>...</description> <language>...</language> <rating>...</rating> <copyright>...</copyright> <pubDate>...</pubDate> <lastBuildDate>...</lastBuildDate> <generator>....</generator> <docs>...</docs> <cloud>...</cloud> <ttl>...</ttl> <managingEditor>...</managingEditor> <webMaster>...</webMaster> <skipHours> <hour>...</hour> </skipHours> <skipDays> <day>...</day> </skipDays> <image> <title>...</title> <url>...</url> <link>...</link> <width>...</width> <height>...</height> <description>...</description> </image> <item> <title>...</title> <link>...</link> <description>...</description> <author>....</author> <category>....</category> <comments>....</comments> <enclosure ..../> <guid>....</guid> <pubDate>....</pubDate> <source>....</source> </item> <!-- diğer item etiketleri --> </channel> </rss>
Gördüğünüz üzere <channel> etiketi içinde kullanılabilir bir çok etiket mevcut. Burada sadece kullanılması zorunda olan etiketlerden bahsetmek yeterli olacaktır. Diğerlerini ise Google üzerinden araştırıp işlev ve kullanımı hakkında bilgi alabilirsiniz.
- <title> : RSS yayınının başlığının yer aldığı etikettir. Eğer RSS dosyası olarak aynı bilgileri içeren bir HTML web siteniz varsa, kanalın başlığı web sitenizin başlığı ile aynı olmasında yarar vardır.
- <description> : RSS yayınınızın ne ile ilgili olduğunu tanımlayacağınız açıklama etiketidir.
- <link> : Anasayfanızın adresine yer vermeniz gereken zorunlu bir diğer etikettir.
Son olarak <item> elementinden bahsedelim. Bu etiketin kullanımı isteğe bağlı olmakla birlikte, bir kanal (<channel>) içinde listelemek istediğiniz öğeleri içerir. İstediğiniz kadar item elementi kullanabilirsiniz. Her bir item etiketi temel olarak şunları içermelidir:
- <title>
- <description>
- <link>
Burada dikkat etmeniz gereken nokta, özellikle Türkçe ve özel karakterlerden dolayı hazırladığınız RSS yayınının, internet tarayıcıları ya da RSS yayınlarını takip etmek için kullandığınız araç ya da program tarafından açılamaması. Bunun için <item> içinde yer vereceğiniz metinlerinizi, title ve description (<channel> içindeki title ve description dahil) gibi alanlarda < ![CDATA[ <!– buraya metinler gelecek–> ]]> içine yazmalısınız. Böylelikle olası karakter problemlerinin önüne de geçmiş olacaksınız. Örneğin:
<item> <title><![CDATA[Bu bir başlıktır]]></title> <link>https://www.ugureskici.com</link> <description><![CDATA[Bu bir açıklamadır]]></description> </item>
Buraya kadar RSS dosyamızı hazırladık. Hazırladığınız dosyayı yayınlamadan önce şu araç ile kontrol edebilirsiniz: http://validator.w3.org/feed/
Geriye son bir adım kaldı, o da RSS yayınının internet tarayıcılarının ve botların erişimine açmak. RSS yayınlarınızı Google Webmasters Tools -> Site Hariları içine ekleyebileceğiniz gibi, aşağıdaki metatag yordamıyla botların haberdar olmasını sağlayabilirsiniz. Aşağıdaki kodu html düzeyinde <head> bloğu içine eklemeniz yeterli olacaktır:
<link type="application/rss+xml" href="http://www.siteniz.com/rss-dosyanizin-adresi.xml" title="RSS Yayını Başlığı"/>
Eğer HTML sayfanız üzerinden de direkt bağlantı vermek isterseniz, dikkat etmeniz gereken tek nokta <a> etiketi içine rel=”alternate” özelliğini eklemeyi unutmamanız.
<a href="https://www.ugureskici.com/feed" rel="alternate" title="RSS">RSS</a>
Son olarak hatırlatmakta yarar var; XML site haritaları ve RSS/Atomb eslemeleri aşağıdaki yönergelere uygun olmalıdır:
- Dosyalar, Googlebot tarafından alınabilir URL’leri içermeli. Yapılan en yaygın hata, robots.txt dosyası tarafından izin verilmeyen URL’lerin, RSS ya da XML site haritası dosyasına eklenmesidir.
- Dosyalar, sadece kalıcı olan URL’leri içermelidir (canonical URL). Yaygın olan bir diğer hata, yinelenen sayfaların URL’lerinin xml site haritası yada RSS dosyalarına dahil edilmesidir. Bu durum Google’ın indekslerinde herhangi bir iyileşme olmadan, sadece sunucunuzdaki yükün artmasına neden olacaktır.
18 yorum
Aydınlatıcı bir yazı teşekkür ederim. Bir de rss ekleme sitelerinin listesini yayınlarsanız, daha güzel olacak…
rss okuyucu bir sitem var. bazı rss lerin fotoğrafları gelmiyor. bununla ilgili bir fikriniz var mı
Rica ederim 🙂 Açıkçası konu geneli “RSS nedir, nasıl yapılır” üzerine olduğu için rss sitelerini ekleme gereği duymadım. Google üzerinden rahatlıkla rss dizin ve reader siteleri bulabilirsiniz.
s.a arkadasım çok faydalı bir yazı olmus, bir çok sitede bu konuyla ilgili yazıya rastladım ama en acık anlasılır olanı senin yazın olmus emegine saglıkk..
Emeğine sağlık arkadaşım yanlız en son bu kodu nereye giriyoruz. Ben hazırladım anlattığın gibi en son yazdığın kodu nereye gircem head kısmınamı?
Uğur WordPress’in sırlarını açığa çıkarıyor gibisin 🙂 WP ile gelen feed xml özelliği içinde var.
Ama “alternate” yazman iyi oldu teşekkürler.
Rss, sitemap vs. hakkında faydalı ve merak edilen bir konuya değinmişssiniz elinize sağlık çok iyi yazmıssınız.. Seo için yararlı bir sistem.
Merhabalar, yazı için teşekkürler. Birşey sormak istiyorum: rss listesi ne sıklıkla güncellenmeli, anladığım kadarıyla son güncellemeden sonra eklenen haberler sadece rss de olmalı. Bu konuda yardımcı olursanız sevinirim.
Yeni içerikleriniz RSS’de yer alması gerektiği gibi sitemap dosyalarınızda da yer almalıdır; sadece RSS değil. Güncelleme sıklığı içerik girme sıklığınıza göre değişkenlik gösterebilir. Eğer çok aktif bir siteyseniz sıklığı düşürebilir, aktif değilse de buna uygun bir süre belirleyebilirsiniz.
Tercihen yeni içerik geldiği zaman bunu RSS’e anında yansıtmanızdır. Araya bir cache katmanı da uygularsanız DB tarafını da daha az yorarsınız. Cacheleri ise her güncellemede recache yapabilirsiniz.
Merhaba Uğur Bey, videolarınızın sıkı takipçisiyim. Sizi hayranlıkla takip ediyorum. Fakat bu konu ile alakalı bir sorum var. Sitede RSS olmamasının SEO açısından zararları var mıdır?
uğur; sen bunu yapıp denedin mı?
Ferhat bey selam. Hangi videolar merak ettim 🙂 Video ile anlatım yapmıyorum. Sorunuzun cevabı ise hayır. RSS olmamasının direkt olarak bir zararı söz konusu değildir. Bir ihtimal site quality konsepti içerisinde RSS yer alabilir fakat bu metrik varsa da katsayısı oldukça düşük olsa gerek.
@veli, evet denedim
Elinize sağlık.
tesekkurkler
Güzel anlatmissiniz sağolun en açık yazı bu, ama hiç bilgisi olmayanlar için bir anlatım yok. Bu kodu yazdım diyelim nereye ekleyecegim bunu dahi bilmiyorum
hiç birşey anlamadım 🙁
Yandex e Forex Basket sitemi ekleme istedi gönderdim. Rss gönderin bize dediler. Güzel anlatmışsınız ama yine de benim için çok karışık bir iş, yapamadım maalesef.