Tartalomjegyzék
WordPress RSS feed-ek kezelése: Hogyan tartsuk meg csak a főoldali feed-et?
A WordPress alapértelmezetten számos RSS feed-et generál a weboldaladon. Ezek a feed-ek minden egyes oldalhoz, bejegyzéshez, kategóriához, címkéhez és egyéb tartalomtípushoz létrejönnek, és általában a „/feed/” végződéssel érhetők el az URL-ekben. Bár ezek hasznosak lehetnek bizonyos felhasználók számára, gyakran okozhatnak problémákat is, különösen SEO szempontból.
A probléma
Sok weboldal tulajdonos számára ezek a feed-ek feleslegesek, és inkább problémát jelentenek, mint hasznot:
- Duplikált tartalom problémákat okozhatnak
- Hibákat generálhatnak a Google Search Console-ban
- Feleslegesen terhelik a szervert
- Zavaró lehet, hogy minden URL végén elérhető egy „/feed/” változat is
Sokan tévesen azt hiszik, hogy ezeket a feed-eket valamelyik SEO plugin (például Rank Math, Yoast SEO) generálja, de valójában ez a WordPress alapfunkcionalitásának része.
A megoldás
A legtöbb esetben elegendő, ha csak a főoldali feed-et tartjuk meg, és minden más feed-et átirányítunk a főoldalra. Ez a megoldás több előnnyel is jár:
- Megszünteti a duplikált tartalom problémákat
- Csökkenti a szerver terhelését
- Tisztább URL struktúrát eredményez
- Miközben továbbra is lehetővé teszi a főoldali feed használatát azok számára, akik feliratkoztak rá
A kód, amit az „wp-includes” mappában lévő functions.php -be kell tenni (mehet a végére)
// RSS feed-ek kikapcsolása és 301-es átirányítás a főoldalra, kivéve a főoldali feedet
function disable_rss_feeds() {
// Ellenőrizzük, hogy feed-ről van-e szó
if (!is_feed()) {
return;
}
// Ellenőrizzük az aktuális URL-t
$current_url = home_url($_SERVER['REQUEST_URI']);
$main_feed_url = home_url('/feed/');
// Ha ez a főoldali feed, akkor hagyjuk működni
if (rtrim($current_url, '/') === rtrim($main_feed_url, '/')) {
return;
}
// Minden más feed esetén 301-es átirányítás a főoldalra
wp_redirect(home_url(), 301);
exit();
}
add_action('do_feed', 'disable_rss_feeds', 1);
add_action('do_feed_rdf', 'disable_rss_feeds', 1);
add_action('do_feed_rss', 'disable_rss_feeds', 1);
add_action('do_feed_rss2', 'disable_rss_feeds', 1);
add_action('do_feed_atom', 'disable_rss_feeds', 1);
add_action('do_feed_rss2_comments', 'disable_rss_feeds', 1);
add_action('do_feed_atom_comments', 'disable_rss_feeds', 1);
// RSS feed linkek eltávolítása a fejlécből, kivéve a főoldali feed-et
function modify_feed_links() {
// Eltávolítjuk az összes feed linket
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
// Visszaadjuk csak a főoldali feed linket
add_action('wp_head', 'add_main_feed_link', 2);
}
function add_main_feed_link() {
echo '<link rel="alternate" type="application/rss+xml" title="' . get_bloginfo('name') . ' » Feed" href="' . esc_url(get_feed_link()) . '" />' . "\n";
}
add_action('init', 'modify_feed_links');
Hogyan működik a megoldás?
A megoldás két fő részből áll:
- Feed-ek átirányítása: Minden feed-et átirányítunk a főoldalra, kivéve a főoldali feed-et. Ezt 301-es (állandó) átirányítással tesszük, ami SEO szempontból is előnyös.
- Feed linkek kezelése: Eltávolítjuk az összes feed linket a weboldal fejlécéből, majd visszaadjuk csak a főoldali feed linket.
A kód a WordPress hook rendszerét használja, és a functions.php fájlba kell beilleszteni. A megoldás ellenőrzi, hogy az aktuális URL egyezik-e a főoldali feed URL-jével, és ennek megfelelően kezeli a kérést.
Implementáció után
A kód implementálása után érdemes ellenőrizni, hogy:
- A főoldali feed (yourdomain.com/feed/) továbbra is megfelelően működik
- Minden más feed (pl. yourdomain.com/category/name/feed/) 301-es átirányítással a főoldalra irányít
- A Google Search Console-ban idővel csökkennek a feed-ekkel kapcsolatos hibák
A WordPress RSS feed-ek kezelése fontos része a weboldal karbantartásának és optimalizálásának. A fenti megoldással egyszerűen megtarthatod a főoldali feed-et, miközben minden más feed-et átirányítasz, így kiküszöbölve a felesleges URL-eket és a velük járó problémákat.
Ez a megoldás különösen hasznos lehet olyan weboldalakon, ahol a tartalom rendszeresen frissül, de nincs szükség minden egyes oldal vagy kategória külön feed-jére. A WordPress alapfunkcionalitásának ez a finomhangolása segít a weboldal jobb teljesítményében és a keresőmotorok általi értékelésében.