默认情况下,每个WordPress站点都有一个 RSS Feed。您可以优化此供稿以保护您的内容、向您的网站发送更多流量等等。
在本教程中,我们介绍如何以正确的方式优化和自定义您的RSS Feed。
为什么要优化WordPress网站的RSS Feed?
RSS Feed为您的读者提供了一种在他们最喜欢的提要阅读器应用程序(如Feedly)中订阅和阅读您的博客文章的方式。
尽管提要阅读器不像以前那么受欢迎,但仍有许多读者更喜欢以这种方式阅读WordPress博客内容。
通过优化您的RSS Feed,您还可以防止内容抓取、获得更多反向链接、向您的网站发送流量等等。
话虽如此,让我们了解优化RSS Feed的专家提示。
1. 创建RSS Feed站点地图
RSS站点地图不同于XML站点地图。RSS站点地图仅包含您最近的内容,这有助于Google使您的内容在搜索结果中保持最新。
如果您经常发布内容,那么这可能会提高您的搜索引擎排名。
多合一 SEO插件允许您轻松地将RSS站点地图添加到您的网站,而无需编写代码。
您需要做的第一件事是安装并激活多合一 SEO插件。激活后,系统会提示您设置插件。您可以按照设置向导中的指导步骤进行操作,或查看我们的指南,了解如何为WordPress设置多合一SEO。
AIOSEO会自动启用RSS站点地图,因此您无需执行任何其他操作。
如果您想仔细检查,只需转到All in One SEO » Sitemap,然后单击“RSS Sitemap”选项卡。
您可以看到“RSS Sitemap”框中的“Enable Sitemap”开关已启用。
您还可以在“Sitemap Settings”框中设置要包含的文章数量和文章类型。
我们将保留默认设置,但您可以包含更多文章或仅包含某些文章类型。
在您离开屏幕之前,请务必单击“保存更改”按钮。
现在您已经为您的网站启用了RSS站点地图。
要将您的新RSS站点地图提交给Google,您可以查看我们关于如何将您的WordPress网站添加到Google Search Console的教程。这与提交XML站点地图的过程相同。
2. 在内容前后编辑您的RSS Feed
默认情况下,WordPress网站RSS Feed将显示您最近发布的内容,并且没有内置选项可以为您的读者自定义该内容。
幸运的是,您可以使用 All in One SEO插件轻松自定义内容前后的RSS Feed。
只需按照与上述相同的步骤安装、激活和设置插件。
之后,导航到All in One SEO » General Settings,然后单击“RSS Content”菜单选项。
在此屏幕上,您可以在RSS源中的每个文章前后添加要显示的任何内容。
您可以向每个部分添加HTML、链接的智能标签和其他元数据。
一旦您对更改感到满意,请务必单击“保存更改”按钮以保存您的RSS Feed。
3. 保护您的RSS Feed免受内容抓取
内容抓取是指内容从您的网站上获取,通常是通过您的RSS Feed,然后在其他人的网站上作为他们自己的网站重新发布。
看到有人窃取您的内容并从中获利,甚至在搜索结果中的排名超过您的网站,这可能会令人非常沮丧。
幸运的是,如果有人通过您的RSS Feed窃取您的内容,您可以自定义您的RSS Feed以使您的站点真正受益。
有关更多详细信息,请参阅我们的初学者指南,以防止WordPress博客内容被抓取。
4.在RSS Feed中显示摘录而不是全文
在RSS Feed中显示您的完整文章可以让您的用户在他们的提要阅读器中阅读整篇文章。这会对您的网页浏览量、广告收入和转化率产生负面影响。
通过在RSS Feed中显示文章摘要而不是全文,您需要读者访问您的WordPress网站阅读全文。
WordPress带有一个内置的解决方案。只需转到您的WordPress管理仪表盘下的设置»阅读。
然后,向下滚动到标题为“对于feed中的每篇文章,包含”部分,并选择“摘要”单选按钮。
您还可以控制RSS Feed中显示的文章数量。
在“Feed中显示最近”框中,只需在框中输入一个数字即可。
在您离开此屏幕之前,请务必单击“保存更改”按钮以更新您的RSS Feed设置。
5. 在RSS源中的文章中添加特色图片
默认情况下,WordPress不会将您的文章特色图片添加到您的RSS Feed中。当您的用户在Feed阅读器中阅读您的文章时,它通常会拉取您文章中的第一张图片。
您可以通过向WordPress文件添加代码来更改此设置。如果您以前没有这样做过,请参阅我们的初学者指南,将网页中的代码片段粘贴到WordPress中。
您需要做的就是将以下代码添加到您的functions.php文件、站点特定插件中,或使用代码片段插件。
global $post;
if(has_post_thumbnail($post->ID)) {
$content = ‘<p>’ . get_the_post_thumbnail($post->ID) .
‘</p>’ . get_the_content();
}
return $content;
}
add_filter(‘the_excerpt_rss’, ‘wpb_rsstutorial_featuredimage’);
add_filter(‘the_content_feed’, ‘wpb_rsstutorial_featuredimage’);
function wpb_rsstutorial_featuredimage($content) { global $post; if(has_post_thumbnail($post->ID)) { $content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . get_the_content(); } return $content; } add_filter('the_excerpt_rss', 'wpb_rsstutorial_featuredimage'); add_filter('the_content_feed', 'wpb_rsstutorial_featuredimage');
此代码只是将您的特色图片添加到文章内容之前的段落中。
6. 将自定义文章类型添加到您的RSS Feed
许多WordPress网站使用自定义文章类型来创建与常规博客文章不同的部分。
如果您使用不同的自定义文章类型发布大量内容,那么您需要将这些内容添加到您的主要供稿中。
为此,您需要将以下代码添加到您的functions.php文件、站点特定插件中或使用代码片段插件。
if (isset($qv[‘feed’]) && !isset($qv[‘post_type’]))
$qv[‘post_type’] = array(‘post’, ‘books’, ‘movies’);
return $qv;
}
add_filter(‘request’, ‘myfeed_request’);
function myfeed_request($qv) { if (isset($qv['feed']) && !isset($qv['post_type'])) $qv['post_type'] = array('post', 'books', 'movies'); return $qv; } add_filter('request', 'myfeed_request');
此代码将两种自定义文章类型“书籍”和“电影”添加到主RSS Feed。确保将这些替换为您自己的自定义文章类型。
7. 在RSS中添加附加文本以发布标题
如果您创建多种类型的文章内容,在RSS中为文章标题添加额外的文本会很有帮助。
例如,这可以帮助您的读者区分访客帖子、常规博客内容和赞助内容。
这是可用于在标题中显示文章类别的代码片段:
$postcat = “”;
foreach((get_the_category()) as $cat) {
$postcat .= ‘ (‘.$cat->cat_name . ‘)’;
}
$content = $content.$postcat;
return $content;
}
add_filter(‘the_title_rss’, ‘wpb_rsstutorial_titlecat’);
function wpb_rsstutorial_titlecat($content) { $postcat = ""; foreach((get_the_category()) as $cat) { $postcat .= ' ('.$cat->cat_name . ')'; } $content = $content.$postcat; return $content; } add_filter('the_title_rss', 'wpb_rsstutorial_titlecat');
有关更多详细信息和示例,请参阅有关如何完全自定义WordPress网站RSS Feed的指南。
8. 允许用户通过电子邮件订阅RSS Feed
并非所有用户都希望使用提要阅读器订阅您的文章。很多人更愿意通过电子邮件订阅。这就是为什么拥有电子邮件订阅很重要的原因之一。
要自动发送RSS电子邮件,我们建议使用Sendinblue。它是一个受欢迎的电子邮件营销服务提供商,有一个永远免费的计划,每天最多发送300封电子邮件。
设置电子邮件列表后,您可以在发布新博客文章时自动发送RSS电子邮件。
有关更多详细信息,请参阅有关如何通知WordPress订阅者查阅新文章的教程。
9. 允许用户订阅RSS Feed中的类别
WordPress网站上的每个类别都会自动拥有自己的RSS Feed。如果您运行一个包含许多不同类别的大型博客,那么这会让您的读者只订阅他们感兴趣的类别。
但是,很多用户没有意识到他们可以轻松订阅特定类别。您可以通过在您的网站上突出显示这一点,让您的读者更容易理解这一点。
有关更多详细信息,请参阅我们的指南,了解如何为WordPress不同分类制作单独的RSS Feed。
10. 将自定义字段数据添加到您的RSS Feed
自定义字段可让您向WordPress文章和页面添加额外的元数据。但是,此元数据不包含在您的默认RSS Feed中。
要在您的RSS Feed中显示自定义字段,只需将以下代码片段添加到您的functions.php文件、特定于站点的插件中或使用代码片段插件。
global $wp_query;
$postid = $wp_query->post->ID;
$custom_metadata = get_post_meta($postid, ‘my_custom_field’, true);
if(is_feed()) {
if($custom_metadata !== ”) {
// Display custom field data below content
$content = $content.”<br /><br /><div>”.$custom_metadata.”</div>
“;
}
else {
$content = $content;
}
}
return $content;
}
add_filter(‘the_excerpt_rss’, ‘wpb_rsstutorial_customfield’);
add_filter(‘the_content’, ‘wpb_rsstutorial_customfield’);
function wpb_rsstutorial_customfield($content) { global $wp_query; $postid = $wp_query->post->ID; $custom_metadata = get_post_meta($postid, 'my_custom_field', true); if(is_feed()) { if($custom_metadata !== '') { // Display custom field data below content $content = $content."<br /><br /><div>".$custom_metadata."</div> "; } else { $content = $content; } } return $content; } add_filter('the_excerpt_rss', 'wpb_rsstutorial_customfield'); add_filter('the_content', 'wpb_rsstutorial_customfield');
此代码检查是否正在使用自定义字段以及是否正在显示RSS Feed。之后,它将在文章内容下方添加自定义字段数据。
11. 延迟文章出现在RSS Feed中
延迟文章出现在您的RSS Feed中可以避免意外发布,并且可以帮助您击败内容抓取工具(如果这是您经常遇到的问题)。
当您延迟文章出现在您的RSS Feed中时,您就给了搜索引擎时间在您的内容出现在其他地方之前对其进行爬网和索引。
此外,您可以在发送给RSS 订阅者之前检查是否有任何拼写错误。
为此,您需要将以下代码添加到您的functions.php文件、特定于站点的插件中或使用代码片段插件。
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate(‘Y-m-d H:i:s’);
// value for wait; + device
$wait = ’10’; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$now’) > $wait “;
}
return $where;
}
add_filter(‘posts_where’, ‘publish_later_on_feed’);
function publish_later