Először is miért jó neked ha van RSS feed-je a híroldaladnak?
Nézzük, mikre kell odafigyelned az RSS feed-eddel kapcsolatban:
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.
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.
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.
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.
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.
Nagyon sok híroldalnál futottam bele abba, hogy az alábbi hibákat követték el a dátumokban:
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.
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.
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..
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.
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
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.
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.
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!