Seriously Simple Podcasting (SSP) version 2.23.0 and earlier, have issues that are producing an RSS feed not validated by W3 Validator.
Take any RSS feed made with this WordPress plugin and this version 2.23.0, add it into the W3 validator:
And it will return the errors here below are explained and for each one, there is a solution I posted.
This issue is highlighted by several users on their WordPress blog, but never really deeply tackled. I read claims even from 2019.
Because I had several podcasts from customers that were demoted from Google, I inquired it by asking to the Google Podcasts Support and they highlighted the not-conformity of the RSS Feeds against W3 Validator.
I asked to the support of the plugin, but all what I got is an answer like (in short): on our validator everything is fine. W3 Validator has some issue.
OK, but Google wants something else.
Here below the screenshots from the W3 Validator
Here is how to solve these issues.
All the corrections I suggest here, are referred to the version 2.23.0 of the plugin. EDIT: even in the last versione 3.1.1 the issue still present. It can change some line number but the solution to apply is identical Just go on all these settings to implement what original programmers still have not implemented yet
Turn the AutoUpdates for this plugin: off (to avoid that any update can delete all what you did), by going into your WordPress Dashboard then
Plugins > Installed Plugins > in the search filed type "ssp" (without quotes)
and the Seriously Simple Podcasting will appear.
On the last column click on Disable auto-updates
as in the screenshot here below:
Screenshot:
It's due the presence of the tag <image></image>
that shouldn't be declared in any RSS ITEM dedicated to podcasting. It's admitted only in the header (<channel></channel>
) of the RSS for the Podcast itself but not within the episodes' tag <item></item>
as it is described here https://www.rssboard.org/rss-specification
To remove the <image></image>
tag, edit the file:
/wp-content/plugins/seriously-simple-podcasting/templates/feed/feed-item.php
Remove the lines 70, 71, 72 and 73
here below reported:
<image>
<url><?php echo esc_url( $episode_image ); ?></url>
<title><?php echo esc_attr( $title ); ?></title>
</image>
these are only to show the artwork of each episode on the human readable website. The formatting is not allowed by W3 validator.
To be able to show the artworks without breaking the validation, in the same file change the line 36. It is delivered as here below:
<description><![CDATA[<?php echo $description; ?>]]></description>
Remove it and paste this one below, instead:
<description><![CDATA[ <?php echo '<img src="' . esc_url( $episode_image ) . '" />'; ?> <?php echo $description; ?>]]></description>
Screenshot:
Within the tag itunes:explicit
, Castos have declared clean
and yes
. Which doesn't like to the W3 Validator. To solve this, edit the file:
/wp-content/plugins/seriously-simple-podcasting/php/classes/controllers/class-feed-controller.php
Line 185 should be
$itunes_explicit = $is_explicit ? 'true' : 'false'; // it was 'yes' : 'clean'
Lines 300, 301, 302, 303, 304, 305, 306 should be in this way
if ( $ep_explicit && $ep_explicit == 'on' ) {
$itunes_explicit_flag = 'true'; // it was YES
$googleplay_explicit_flag = 'Yes';
} else {
$itunes_explicit_flag = 'false'; // it was CLEAN
$googleplay_explicit_flag = 'No';
}
Screenshot:
It means that the link declared int o the header image, is not the link that leads to the podcast. Indeed it goes to the main URL domain of the site, but doesn't address the podcast with its episodes. The result is:
<link>https://www.example.com/</link>
instead of (here below just an example):
<link>https://www.example.com/feed/allmypodcasts/my-specific-podcast</link>
To correct this, edit the file:
/wp-content/plugins/seriously-simple-podcasting/templates/feed-podcast.php
Line 112 is delivered in the following way:
<link><?php echo esc_url( apply_filters( 'ssp_feed_channel_link_tag', $home_url, $podcast_series ) ) ?></link>
Change it into:
<link><?php echo $feed_link ?></link>
Note: the variable $feed_link is already filtered
Here you are ready to go and you are validated
Screenshot:
This is unfortunate because this belongs to Google. I already highlighted this issue to the Google Podcasts Support but I didn't get any answer yet. When and if I will have a solution, I will be happy to edit this post and to add it.
However, as I already anticipated, if you apply the first 3 corrections, you get validated. No matter about the 4th point for the time being.
All these mods are not negatively impacting any pre-existing podcasts and their episodes on any platform. The human readability of the RSS feed pages of your websites is fully kept.
I hope Castos finally will provide an update to their plugin.
I discovered CastosHD on GitHub so I pulled this request by myself, although it gave me the sensation that is a abandonware repository. However I tried.
EDIT 2024/06/03: Castos programmers told they are not on GITLAB adn GITHUB is abandoned. So I opened a merge request on GitLab accordingly https://gitlab.com/castos/Seriously-Simple-Podcasting/-/merge_requests/1026
till now: not any feedback. I hope in the future however my suggestion is: whenever you update the plugin make also all the above mods.