RSS Feed Tippek

Az “ultimate” RSS feed útmutató

Először is miért jó neked ha van RSS feed-je a híroldaladnak?

  • A híraggregátor oldalak (mint pl a hír36.hu, hirstart.hu, hírkereső.hu, stb..) meg tudják jeleníteni a cikkeidet, ezáltal több emberhez el tud jutni.
  • Könnyebben tudsz linkeket szerezni, amelyek az oldalara mutatnak, ezáltal előrébb kerülhetsz a Google-ben.
  • Az olvasóid fel tudnak iratkozni RSS olvasójukkal így könnyebben tudnak eljutni a weboldaladra.

Nézzük, mikre kell odafigyelned az RSS feed-eddel kapcsolatban:

1. Legyen RSS feed-ed

Belefutottam olyanba, hogy egy nagy híroldalnak, akinek még TV-je is van, nincsen RSS feed-je.

De lehet csak nem publikus. Emiatt nem tudtam bekötni a hír36.hu-ra.

Szóval, hogy a tartalmaidat többen elérhessék, legyen RSS feed-ed és az se baj, ha publikus.

2. Ne korlátozd le az RSS feed elérését

Az RSS feed-et főleg nem emberek olvassák, mert nem egy könnyen fogyasztható tartalom a szemnek.

Viszont scraperek-nek, RSS olvasóknak könnyű feldolgozni belőle az adatokat.

Éppen ezért ne tiltsd le az RSS feed-et scraperek, botok számára.

Ha probléma, hogy túl nagy forgalom érkezik az RSS feed-edre, akkor itt van pár tipp:

  • Ha az RSS feed-ed egy statikus .xml fájl, akkor semmi szükség korlátozásra, a webszervered gond nélkül ki tudja szolgálni.

  • ha adatbázisból generálod a feed-et tartalmát, akkor tegyél rá 60 mp cache-t.

    • talán nem nagy gond, ha az RSS feed-ed olvasói legfeljebb 60 mp-el a cikk élesedése után értesülnek a hírről
    • cserébe az adatbázisszervered sem lesz túlterhelve
    • ezt meg lehet oldani backend-en is
    • én nginx-el vagy hasonlóval cache-elném, mert így a backend rendszeredig sem jut el a kérés és kevésbé terheli a szervert

3. használj “Last-Modified” headert

Ezzel meg tudod jelölni a HTTP header-ben, hogy mikor frissült az oldalad tartalma. Így egy GET kérés helyett egy HEAD kérés is elég a scraper-eknek, hogy lekérdezzék az oldalad frissült-e.

Előnye, hogy a szervered sokkal-sokkal kisebb adatforgalmat fog generálni és nem terheli feleslegesen a szervered.

*Feltéve, ha a scraper nézi ezt a header-t. A hír36.hu scraper-e figyeli és nem tölti le feleslegesen az xml feed-ed, ha nem frissült.

4. verziózd az RSS feed-et

Most következnek azok a tippek, amelyek miatt lehet bele fogsz nyúlni az RSS feed-ed formátumába.

Fontos megjegyezni az elején, hogy a meglévő feed-edhez ne nyúlj, mert eltörheted az RSS feed-ed felhasználóinak a meglévő működést.

Ezért a módosításokat mindenképpen egy új URL-en tedd elérhetővé. A későbbiekben, ha módosulnak, vagy kikerülnek mezőnevek az RSS feed-ben, akkor szintén egy új URL-re érdemes tenni az RSS feed-et. Ha csak új mezők kerültek be, amiatt nem kell új verzió, az nem tud gondot okozni a meglévő integrációkban.

Tehát ha most ez az RSS feed-ed elérése:

https://domain.hu/feed

akkor ez maradjon is így és az új feed-et tedd mondjuk az alábbi URL-re:

https://domain.hu/v2/feed

És ha ennek a felépítésébe is bele kell nyúlnod, akkor jöhet a v3. De a korábbi URL-ek maradjanak elérhetőek és a struktúrája is maradjon a régi.

A publikus felületeken pedig mindig a legfrissebb feed-re mutató linket jelenítsd meg.

5. Legyen a cikkeknek egyedi azonosítója

Erre általában az RSS feed-ben a guid mező szolgál. Sok RSS feed-ben azonban ez egyáltalán nem létezik.

Ami azért probléma, mert ilyenkor a legegyedibb mező a cikk url-je. Azonban az url változhat. Ha nincsen egyedi azonosító és a cikk url-je a publikálás után változik, akkor az aggregátor oldalak nem tudják követni a módosítást és a cikk kétszer fog megjelenni a listában. Ilyenkor előfordulhat, hogy a régi linkkel megjelent cikk 404-es oldalra mutat.

Használj guid mezőt, aminek az értéke lehet az Te adatbázisodban lévő cikk azonosító. Így ha módosul a cikk, mert elírás volt akár a címben, akár az url-ben, a változások lekövethetők a híraggregátor oldalak számára is.

6. Használj megfelelő dátumformátumot

Nagyon sok híroldalnál futottam bele abba, hogy az alábbi hibákat követték el a dátumokban:

  • hibás vagy nem szabványos formátum
  • hibás időzóna
  • vagy a kettő együtt

Ilyenkor nekem kellett módosítanom a dátumot, hogy megfeleljen a szabványnak és a megfelelő idózónába tegyem a cikk dátumát.

Érdemes egy szabványos formátumot használni (pl. RFC2822-t használ sok RSS feed) és figyeljünk, hogy a megfelelő időzónát is állítsuk be, különben lehet, hogy 1-2 órával hátrébbsorolódnak a cikkek és sosem fog elől megjelenni az aggregátor oldalakon.

7. Add át a képeket a feed-ben

Sok RSS feed-ből hiányoznak a thumbnail képek, pedig a cikk og:image meta tagjében szerepel. Tedd bele az RSS feed-be a cikkhez tartozó képet is.

8. Optimalizáld a képeket

Sok híroldalnál láttam, hogy olyan képeket adnak át az RSS feedben, amelyek több MB-osak.

Ez teljesen felesleges. Senki nem szeretne több MB-os képeket letölteni a mobiltelefonjára és a Te szervered sem szívesen szolgálja ki őket.

Az RSS feed-ben bőven elég thumbnail képeket megjeleníteni, amelyek legfeljebb pár 100 KB-osak.

A legegyszerűbb módja a képek átmérezetése mondjuk 640px szélesre. Ha ennél is komolyabb optimalizálást szeretnél, akkor használhatsz .webp formátumot, vagy jpegoptim, pngoptim lib-eket, amelyek a képminőség romlása nélkül képesek csökkenteni a képek méretét.

Ez nem csak az RSS feed-ben lévő képek esetén ajánlott. Az oldalbetöltési időt nagyon meg tudja gyorsítani, ha optimalizált képeket használsz a weboldaladon. Emiatt tovább maradnak a látogatók az oldaladon, előrébb kerülsz a találati listákon, stb..

9. Megfelelő TLS használata

A TLS (Transport Layer Security) egy titkosítási protokoll, amelyet az internetes kommunikáció biztonságossá tételére használnak.

TLS 1.0 és TLS 1.1 már nem támogatott, mert nem biztonságosak. Ajánlott TLS 1.2, de inkább TLS 1.3 használata. Voltak olyan RSS feed-ek amelyeket nem tudtam elérni az elavult TLS miatt.

10. Valid legyen az XML struktúra

Vannak olyan RSS feed-ek, amelyek invalid XML-t adnak vissza. Emiatt replace-elnem kellett a válaszban a hibás részeket, hogy fel tudjam parse-olni :D

Az alábbi RSS XML validátorral le lehet ellenőrizni, hogy megfelelő-e az RSS feed-ünk: https://validator.w3.org/feed/

A mezők elnevezésére és funkciójára amúgy létezik egy szabvány is. Érdemes azt követni: https://cyber.harvard.edu/rss/rss.html

11. A favicon-ok legyenek fix helyen

Ha szeretnéd, hogy a saját logód jelenjen meg a híraggregátor oldalakon, akkor ajánlott a logódat egy fix helyre tenni, hogy ne változzon meg az url minden deploy után.

Akkor szokott változni az URL, ha build-elés során optimalizálva lesz a logód/favicon-od. Ebben az esetben viszont a korábbi képekre mutató linkek már nem fognak élni.

12. Legyen megfelelő a karakterkódolása az RSS feed-ednek.

Leginkább UTF-8 vagy ISO-8859-2. A KSH.hu RSS feed-je egyik napról a másikra valami egzotikus karakterkódolásra váltott és annak ellenére, hogy böngészőben rendben van, a scraper-ben képtelen vagyok dekódolni a szöveget.

Egyelőre ennyi jutott eszembe

Ha később még beugrik valami, akkor bővíteni fogom a tippek listáját.

Addig is nézd meg a hír36.hu híraggregátor oldalam és ha tetszik, akkor használd hírfogyasztásra!