Episode from the podcastThe Audacity to Podcast

Who Offers the Fastest Podcast Hosting? – TAP335

Released Saturday, 29th June 2019
Good episode? Give it some love!
Podcast media (whether audio or video) must live somewhere on the Internet so it can be downloaded via RSS feeds. This hosting needs to be powerful enough to deliver the media files quickly and handle the load of hundreds or thousands of simultaneous downloads when new episodes are released. Here are the performance results from the most popular podcast hosting companies.

Does podcast hosting speed even matter?



The short answer is yes, but only to a point.

I started this project curious about feed-hosting performance between separate web hosting providers (shared, managed, and VPS), different caching options, and mirroring tools (FeedBurner and Podcast Mirror). Aside from two specific exceptions (more on that below), feed performance from numerous providers was acceptably fast. While one host might be faster than another, it was faster by less than a second on feeds that were already loading in under 1 second.

So as long as a feed loads within 1 or 2 seconds, exact speeds become a moot point. If, however, a feed takes several seconds or longer to load, that increases the possibility of timeouts, which can result in a podcast app's failure to refresh podcast RSS feeds to even see what new episodes are available to download. I've seen this happen before where one podcast app could download all the episode, but another app wouldn't refresh the feed.

And then, I realized my test could be easily adapted to measure and compare file-hosting speeds. So I turned my attention to media files, which were easier to compare and possibly more important to measure.

But as with feeds, media hosting across most of the providers was fast enough that it wouldn't cause any noticeable difference.

A feed and media host is fast enough when someone can press a button and start listening with little to no delay.

(Podcasters can make the mistake of attaching large images to ID3 tags, which can cause playback delays because the ID3 information must download before audio data.)

It's also important to remember most podcast apps will check feeds and download new episodes automatically in the background. So even if it took five minutes for an episode to download, most of the audience might not be affected because the episode will be there waiting for them when they open their podcast app.

This audience-helping benefit is a big reason we need to keep downloading possible in podcasting, instead of catering to money-focused advertisers who want to kill the download and switch to streaming. But that's a different discussion.

Testing methodology



You're free to skip this part if you don't want the technical details.

I wrote a program in Node to measure the time it takes to download a feed or media file from a given URL. I included options to test feeds with Gzip compression or HTTP/2. You can view my Podcast Speed Test source code and….

Each feed or media URL was tested 10 consecutive times and then combined into average and median results. If there was a significantly different average from median, I would re-run the test, except in the case of Podiant. Every first one or two tests of Podiant resulted in very slow download times. I suspect Podiant doesn't propagate a media file to local servers until it is first requested from that location, and thus the first download is slow. Because this was predictable and repeatable, I left the data in (reflected on averages) and I think it's concerning for that poor first soul who must download from their local server more slowly than the next person.

image

Using Vultr as my VPS provider, I tested from sixteen regions:

  • Atlanta, Georgia, USA
  • New York/New Jersey, USA
  • Chicago, Illinois, USA
  • Dallas, Texas, USA
  • Los Angeles, California, USA
  • Miami, Florida, USA
  • Seattle, Washington, USA
  • Silicon Valley, California, USA
  • Toronto, Ontario, Canada
  • Amsterdam, the Netherlands
  • Paris, Italy, France
  • Frankfurt, Germany
  • London, England, United Kingdom
  • Tokyo, Japan
  • Singapore
  • Sydney, New South Wales, Australia


Each region has a high-speed network connection of multiple gigabits per second.

Feed testing specifics



Podcast RSS feeds can be difficult to test and compare because each feed-generator (WordPress with PowerPress, Libsyn, Buzzsprout, Spreaker, etc.) may do things differently. And it wasn't reasonable to try replicating a complete RSS feed across every tool. Some tools may include extra tags for every episode, while other tools omit such tags. Some tools may truncate the show notes, while other tools publish full show notes.

Instead, my method was to find a small feed (100–250 KB) and a large feed (2 MB or more) from each generator, mirror those feeds to a benchmark host, and then compare the performance against that consistent benchmark. I chose FeedBurner and Podcast Mirror, but FeedBurner can't handle feeds larger than 1 MB, so I used it for only small and medium feeds. A third option I could have used would have been to copy the RSS feed code to my own server, but I stuck with Podcast Mirror because it's something anyone can use. This kind of mirroring resulted in only a 1–2 KB difference in feed size, but gave me a relative standard. After 10 consecutive tests, a sample feed's median result would be ranked based on its performance factor compared to the feed on Podcast Mirror as the benchmark. Thus, each feed would be above or below 1.0 compared to the Podcast Mirror benchmark.

Media testing specifics



Media hosting was much easier to test than feed hosted. I used the 1-hour MP3 from episode 229 of The Audacity to Podcast. That file was 44.1 KHz, mono, 16-bit, 64 kbps, giving me a 27.5 MB file. I uploaded that to every media host I reasonably could, and ran the same download tests.

Unfortunately, some media hosts re-encoded my file, changing the file size, and thus making the measurements a little unfair, but I included them nonetheless and indicate the file sizes in the charts.

Try your own tests!



If you're comfortable installing and running Node from a command line, you can download my Podcast Speed Test source code to run on your own computer or server. Use at your own risk, and some of my sample tests may be removed or broken by the time you test.

Feed performance results



Because of the complicated nature of testing feeds (described above), I didn't run as many tests, because I realized it was mostly a moot point with nearly every feed provider loading feeds (which are usually smaller than 1 MB) in a fraction of a second. So for the sake of brevity, I'll omit all that data for now.

But there were two important exceptions.

SoundCloud feeds were consistently the slowest, taking seconds to load a small feed, and longer to load larger feeds. Because of this, I recommend never using a SoundCloud RSS feed. If you must use SoundCloud for podcast hosting (they're a really bad podcast-hosting provider), mirror your feed through Blubrry's free Podcast Mirror service or even use FeedBurner (but I still don't recommend FeedBurner's features, like SmartCast).

Uncached feeds were as bad as SoundCloud. Sometimes slower, sometimes faster. Such feeds were usually powered by WordPress or another content-management system. But all it took to fix that performance was simple caching. With caching, it's important to check that the podcast feed is being cached with whatever caching option you're using. For example, caching plugins like WP Rocket and WP Super Cache allow custom inclusions and exclusions, usually defaulting to include the RSS feeds. But other caching plugins might not offer such options, or might not refresh all the caches when you publish a new episode, or might exclude the RSS feeds altogether (SpinupWP's page caching excluded the feeds, but Liquid Web and Flywheel included the feeds).

So the takeaways here are:

  1. Don't use Soundcloud (for hosting your feed, or if you do, then use Podcast Mirror).
  2. If you generate your feed with WordPress, implement proper caching or use Podcast Mirror.
  3. Any poorly performing feed could be improved by switching to Podcast Mirror.


Podcast media performance results



For hosting my sample MP3 file, I tested:



*Not a podcast-hosting provider.

I could not get test accounts with Art19 or Megaphone.

Please note that some of these hosts re-encoded my MP3 file without my option to change it, always resulting in a bigger file than I uploaded. One exception is Buzzsprout who re-encodes only down, but never up. So my 64 kbps mono file was not re-encoded up to 96 kbps mono on Buzzsprout like it was re-encoded up to various rates with the other indicated hosts.

For disclosure, some of the paid-for hosting options were provided by the respective companies at no cost to me for the sake of my testing and review. I also invited any hosting company to preview this article before publication, which often opened a beneficial dialog, but did not affect the data.

If you represent a podcast-hosting company I didn't include and you want to see your service tested and listed here, please contact me!

Combined global averages and medians



First, let's look at the combined global timings for each hosting company. Each test was performed 10 consecutive times and those results combined to calculate regional and global averages and medians. Where the average and median greatly differ illustrates potential slowness in a host.

if(typeof(wpDataCharts)=='undefined'){wpDataCharts = {};}; wpDataCharts[9] = {render_data: {"options":{"data":{"labels":["Amazon S3*","Anchor (Cloudfront)","Archive.org*","Audioboom (55.6 MB)","Blubrry","Bunny CDN*","Buzzsprout","Captivate","Castos","Fireside","iVoox","Libsyn","Omny Studio","Pinecast","Pippa","Podbean Unlimited Audio","Podbean Unlimited Plus","Podbean Business Basic","Podcast.co","Podiant (41.2 MB)","Podigee (35.7 MB)","Podmio (S3)","podOmatic (41.37 MB)","Podserve.fm","RedCircle (55.1 MB)","Simplecast","SiteGround*","SoundCloud","Spreaker","Transistor","Whooshka (55.1 MB)","Zencast"],"datasets":[{"label":"Global Average of Averages","orig_header":"Global Average of Averages","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[2298.625,402.125,2589.6875,1188.9375,2139.125,685.875,362.5625,517.5,365.1875,251.6875,1613.6875,402.25,1310,621.625,345.875,21612.0625,24667.8125,345.5,451,3036.3125,5194.75,2115.6875,21447,1043.875,3415.125,991.4375,10127.5625,422.9375,2414.3125,380.5625,1001.625,2951.875],"lineTension":0},{"label":"Global Median of Medians","orig_header":"Global Median of Medians","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[1490,131.25,2462.5,318.75,102.25,151.25,225.25,188.75,157.75,179.25,1033.75,92.25,333.5,227.75,187.5,7596,9036.5,122,173,251.75,2888.25,1450.5,3256.75,202.75,2496.75,187,3688,145.25,2342.5,198.5,212.25,2491.75],"lineTension":0}]},"options":{"maintainAspectRatio":true,"scales":{"xAxes":[{"scaleLabel":{"display":true,"labelString":""}}],"yAxes":[{"scaleLabel":{"display":true,"labelString":""},"ticks":{"beginAtZero":false,"min":0}}]},"title":{"display":true,"text":"Global podcast media hosting speeds (unfiltered)","position":"top","fontFamily":"Quattrocento Sans","fontStyle":"bold","fontColor":"#333333"},"tooltips":{"enabled":true,"mode":"single","backgroundColor":"rgb(0,0,0)","cornerRadius":3},"legend":{"display":true,"position":"top"}},"globalOptions":{"defaultFontSize":"","defaultFontFamily":"Quattrocento Sans","defaultFontStyle":"bold","defaultFontColor":"rgb(0,0,0)"}},"configurations":{"type":"chartjs_column_chart","container":{"height":"600","width":0},"canvas":{"backgroundColor":"","borderWidth":"0","borderColor":"","borderRadius":"0"}}}, engine: "chartjs", type: "chartjs_column_chart", title: "Global podcast media hosting speeds (unfiltered)", container: "wpDataChart_9", follow_filtering: 0, wpdatatable_id: 8, group_chart: 0}

About Podbean and podOmatic



Whoa there, Podbean and podOmatic! Those two were the slowest hosts. Podbeans Unlimited Audio and Unlimited Plus plans are designed with lower performance to be more budget-friendly, while the Business Basic plan performs on par with competitors.

This slower performance may seem horrible, but remember this is a 60-minute MP3 that downloaded completely in a global combined median under 10 seconds. That's about 6 minutes of audio downloaded in only 1 second. Even if the MP3 was encoded at higher bitrates, it's still fast enough that most podcast consumers would not notice a difference. Nonetheless, if you have a large audience or your business depends on your podcast, it's worth investing in a faster hosting option.

podOmatic didn't appear to have a free trial for their premium plans, so I wasn't able to test for differing performance.

If you host with Podbean's Unlimited Audio and do not use their RSS feed for your podcast, I suggest updating your download URLs to the new mcdn.podbean.com URLs, which nearly double the previous performance, as shown in the following chart.

if(typeof(wpDataCharts)=='undefined'){wpDataCharts = {};}; wpDataCharts[14] = {render_data: {"options":{"data":{"labels":["Old Podbean Unlimited Audio","Old Podbean Unlimited Plus","Old Podbean Business Basic","New Podbean Unlimited Audio","New Podbean Unlimited Plus","New Podbean Business Basic"],"datasets":[{"label":"Global Average","orig_header":"Global Average of Averages","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[50693.75,6988.8125,402.3125,21612.0625,24667.8125,345.5],"lineTension":0},{"label":"Global Median","orig_header":"Global Median of Medians","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[35116.25,2408.75,134,7596,9036.5,122],"lineTension":0}]},"options":{"maintainAspectRatio":true,"scales":{"xAxes":[{"scaleLabel":{"display":true,"labelString":""}}],"yAxes":[{"scaleLabel":{"display":true,"labelString":""},"ticks":{"beginAtZero":false,"min":0}}]},"title":{"display":true,"text":"Podbean old vs. new URL speeds","position":"top","fontFamily":"Quattrocento Sans","fontStyle":"bold","fontColor":"#333333"},"tooltips":{"enabled":true,"mode":"single","backgroundColor":"rgb(0,0,0)","cornerRadius":3},"legend":{"display":true,"position":"top"}},"globalOptions":{"defaultFontSize":"","defaultFontFamily":"Quattrocento Sans","defaultFontStyle":"bold","defaultFontColor":"rgb(0,0,0)"}},"configurations":{"type":"chartjs_column_chart","container":{"height":"600","width":0},"canvas":{"backgroundColor":"","borderWidth":"0","borderColor":"","borderRadius":"0"}}}, engine: "chartjs", type: "chartjs_column_chart", title: "Podbean old vs. new URL speeds", container: "wpDataChart_14", follow_filtering: 0, wpdatatable_id: 9, group_chart: 0}

(This CDN change is automatic for customers using the Podbean RSS feed.)

Regional medians



Get ready for data overload! Here are the median results from all 16 test locations. Click on items in the legend to hide that date from the chart and make other data more visible. (I'll embed the full data table at the end of this article.) To make the charts more visible, I split the slowest hosts into their own chart.

if(typeof(wpDataCharts)=='undefined'){wpDataCharts = {};}; wpDataCharts[12] = {render_data: {"options":{"data":{"labels":["Amazon S3*","Anchor (Cloudfront)","Archive.org*","Audioboom (55.6 MB)","Blubrry","Bunny CDN*","Buzzsprout","Captivate","Castos","Fireside","iVoox","Libsyn","Omny Studio","Pinecast","Pippa","Podbean Business Basic","Podcast.co","Podiant (41.2 MB)","Podmio (S3)","Podserve.fm","RedCircle (55.1 MB)","Simplecast","SoundCloud","Spreaker","Transistor","Whooshka (55.1 MB)","Zencast"],"datasets":[{"label":"NY\/NJ","orig_header":"NY\/NJ Median","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[345,149,2559,282,71,118.5,299,196.5,150,240.5,90.5,106.5,265.5,228,189.5,149,181,219,363,97,1760,147,143.5,1290,247,239,2046.5],"lineTension":0},{"label":"Chicago","orig_header":"Chicago Median","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[536,236,1379.5,360,61.5,111.5,347.5,118,116,262.5,991,80,367,224.5,278,140,283,171,531.5,376,1124.5,184.5,230.5,1845.5,350,271.5,2399],"lineTension":0},{"label":"Dallas","orig_header":"Dallas Median","backgroundColor":"rgba(255,206,86,0.2)","borderColor":"#ffce56","borderWidth":1,"data":[699,164.5,988.5,355.5,80.5,235,281.5,130,226.5,242,437.5,95,345,319,309.5,135,252,230.5,816,77.5,1161.5,149,156.5,5050,234,242,2617.5],"lineTension":0},{"label":"LA","orig_header":"Los Angeles Median","backgroundColor":"rgba(75,192,192,0.2)","borderColor":"#4bc0c0","borderWidth":1,"data":[1151,102,360,222.5,96.5,143,237,239,174,179.5,1222,129.5,223.5,198.5,194.5,83,211,96,1195.5,76.5,2206,93,121,2308.5,209,164,3167.5],"lineTension":0},{"label":"Silicon Valley","orig_header":"Silicon Valley Median","backgroundColor":"rgba(153,102,255,0.2)","borderColor":"#9966ff","borderWidth":1,"data":[1421.5,136,404,151.5,56.5,298,252,266.5,400.5,152.5,1134,125,151,210,193.5,79,164,325.5,1427.5,196,5095.5,100.5,147,2376.5,162,169.5,3449.5],"lineTension":0},{"label":"Atlanta","orig_header":"Atlanta Median","backgroundColor":"rgba(255,159,64,0.2)","borderColor":"#ff9f40","borderWidth":1,"data":[479.5,896,2366,1062,128,188,342.5,198,161,219,241,138,1209.5,386,249,120,455,392,530,505.5,1995.5,189.5,375,2531,242.5,281.5,2514.5],"lineTension":0},{"label":"Miami","orig_header":"Miami Median","backgroundColor":"rgba(166,206,227,0.2)","borderColor":"#a6cee3","borderWidth":1,"data":[559,174.5,2214,410.5,68,175.5,501,181,147.5,198,603.5,64.5,443,274,174.5,109,115,544,589.5,697.5,1287,205.5,180.5,1553.5,172.5,281,2469],"lineTension":0},{"label":"Seattle","orig_header":"Seattle Median","backgroundColor":"rgba(106,61,154,0.2)","borderColor":"#6a3d9a","borderWidth":1,"data":[1558.5,114.5,556.5,248.5,400.5,349.5,209.5,452,258,227,1722.5,394,322,284.5,153,119,151,83.5,1473.5,668,1886.5,568.5,545.5,3585,216,164.5,3811.5],"lineTension":0},{"label":"Toronto","orig_header":"Toronto Median","backgroundColor":"rgba(177,89,40,0.2)","borderColor":"#b15928","borderWidth":1,"data":[598.5,466,2022,686,255,970.5,175.5,147,139.5,187.5,518,63,1209,183,160,491,136,273,637.5,209.5,1308,813,459.5,2376.5,220.5,1605.5,1982],"lineTension":0},{"label":"Amsterdam","orig_header":"Amsterdam Median","backgroundColor":"rgba(251,154,153,0.2)","borderColor":"#fb9a99","borderWidth":1,"data":[2125,126.5,3127.5,244.5,68.5,145.5,156.5,101,154.5,151.5,575.5,81.5,231,941.5,180,163,125,131,1838,168.5,2886,206,116.5,999.5,120.5,487.5,398],"lineTension":0},{"label":"Paris","orig_header":"Paris Median","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[1774.5,75,3489,135.5,189,95.5,159.5,270,207.5,179,2074.5,193.5,129,296.5,114.5,216,243,488,1677,83,2879,106.5,77,381,188,165.5,396],"lineTension":0},{"label":"Frankfurt","orig_header":"Frankfurt Median","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[2012,68,3981.5,128.5,108,103,127,130.5,145,162.5,2149.5,73.5,135,207.5,199,176,185,112,1900.5,164.5,3205,133.5,71.5,442,155,166.5,433],"lineTension":0},{"label":"London","orig_header":"London Median","backgroundColor":"rgba(255,206,86,0.2)","borderColor":"#ffce56","borderWidth":1,"data":[1614.5,151.5,2747.5,253.5,78.5,157,213.5,221.5,170.5,130,1736.5,83.5,243,227.5,178.5,124,138,114,1551,171.5,2787.5,141.5,154.5,391,185,190,502],"lineTension":0},{"label":"Tokyo","orig_header":"Tokyo Median","backgroundColor":"rgba(75,192,192,0.2)","borderColor":"#4bc0c0","borderWidth":1,"data":[3752,82,2607,2503.5,1882.5,106,206.5,150.5,147,164.5,1076.5,75,2476,197,177,73,106,575,3447,2126,4188,1646,80.5,2997.5,211,172.5,6100.5],"lineTension":0},{"label":"Singapore","orig_header":"Singapore Median","backgroundColor":"rgba(153,102,255,0.2)","borderColor":"#9966ff","borderWidth":1,"data":[4945,106.5,4205.5,4808,4665.5,112.5,261,148,146,109.5,482.5,89.5,5028,155,185.5,98,126,451.5,4792,6483,7993,3102,114.5,2906,141.5,176.5,6264],"lineTension":0},{"label":"Sydney","orig_header":"Sydney Median","backgroundColor":"rgba(255,159,64,0.2)","borderColor":"#ff9f40","borderWidth":1,"data":[4582,111,4539.5,5018,2984,331,154,2487,2076,145,7343.5,2172,5214,944.5,237,75,2123,3893.5,4533.5,3128,8949.5,5936.5,100.5,4054,157,234.5,6887],"lineTension":0}]},"options":{"maintainAspectRatio":true,"scales":{"xAxes":[{"scaleLabel":{"display":true,"labelString":""}}],"yAxes":[{"scaleLabel":{"display":true,"labelString":""},"ticks":{"beginAtZero":false,"min":0}}]},"title":{"display":true,"text":"Regional podcast media hosting speeds (faster)","position":"top","fontFamily":"Quattrocento Sans","fontStyle":"bold","fontColor":"#333333"},"tooltips":{"enabled":true,"mode":"single","backgroundColor":"rgb(0,0,0)","cornerRadius":3},"legend":{"display":true,"position":"top"}},"globalOptions":{"defaultFontSize":"","defaultFontFamily":"Quattrocento Sans","defaultFontStyle":"bold","defaultFontColor":"rgb(0,0,0)"}},"configurations":{"type":"chartjs_column_chart","container":{"height":"600","width":0},"canvas":{"backgroundColor":"","borderWidth":"0","borderColor":"","borderRadius":"0"}}}, engine: "chartjs", type: "chartjs_column_chart", title: "Regional podcast media hosting speeds (faster)", container: "wpDataChart_12", follow_filtering: 0, wpdatatable_id: 8, group_chart: 0}

if(typeof(wpDataCharts)=='undefined'){wpDataCharts = {};}; wpDataCharts[15] = {render_data: {"options":{"data":{"labels":["Podbean Unlimited Audio","Podbean Unlimited Plus","Podigee (35.7 MB)","podOmatic (41.37 MB)","SiteGround*"],"datasets":[{"label":"NY\/NJ","orig_header":"NY\/NJ Median","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[7629,7104,1821.5,2060,2928.5],"lineTension":0},{"label":"Chicago","orig_header":"Chicago Median","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[4757,4377,2951.5,2117.5,4330],"lineTension":0},{"label":"Dallas","orig_header":"Dallas Median","backgroundColor":"rgba(255,206,86,0.2)","borderColor":"#ffce56","borderWidth":1,"data":[4089,2581,2905.5,2166,2730.5],"lineTension":0},{"label":"LA","orig_header":"Los Angeles Median","backgroundColor":"rgba(75,192,192,0.2)","borderColor":"#4bc0c0","borderWidth":1,"data":[5505,9381,3479.5,1449.5,4914.5],"lineTension":0},{"label":"Silicon Valley","orig_header":"Silicon Valley Median","backgroundColor":"rgba(153,102,255,0.2)","borderColor":"#9966ff","borderWidth":1,"data":[4695,6637,3454,794,3793.5],"lineTension":0},{"label":"Atlanta","orig_header":"Atlanta Median","backgroundColor":"rgba(255,159,64,0.2)","borderColor":"#ff9f40","borderWidth":1,"data":[5957,6998,2871,3055,2705],"lineTension":0},{"label":"Miami","orig_header":"Miami Median","backgroundColor":"rgba(166,206,227,0.2)","borderColor":"#a6cee3","borderWidth":1,"data":[6340,10211,2761.5,2514.5,3027],"lineTension":0},{"label":"Seattle","orig_header":"Seattle Median","backgroundColor":"rgba(106,61,154,0.2)","borderColor":"#6a3d9a","borderWidth":1,"data":[7563,7576,3372.5,2007.5,2958],"lineTension":0},{"label":"Toronto","orig_header":"Toronto Median","backgroundColor":"rgba(177,89,40,0.2)","borderColor":"#b15928","borderWidth":1,"data":[4771,4160,2330.5,3458.5,2680],"lineTension":0},{"label":"Amsterdam","orig_header":"Amsterdam Median","backgroundColor":"rgba(251,154,153,0.2)","borderColor":"#fb9a99","borderWidth":1,"data":[20907,25962,336,10017,3479],"lineTension":0},{"label":"Paris","orig_header":"Paris Median","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[30074,22927,907.5,5431,4564],"lineTension":0},{"label":"Frankfurt","orig_header":"Frankfurt Median","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[10057,13978,146.5,5697,3599],"lineTension":0},{"label":"London","orig_header":"London Median","backgroundColor":"rgba(255,206,86,0.2)","borderColor":"#ffce56","borderWidth":1,"data":[13649,8692,492,5156.5,3777],"lineTension":0},{"label":"Tokyo","orig_header":"Tokyo Median","backgroundColor":"rgba(75,192,192,0.2)","borderColor":"#4bc0c0","borderWidth":1,"data":[12563,16634,6181,6660,10282],"lineTension":0},{"label":"Singapore","orig_header":"Singapore Median","backgroundColor":"rgba(153,102,255,0.2)","borderColor":"#9966ff","borderWidth":1,"data":[137692,133332,33151.5,171036.5,26537],"lineTension":0},{"label":"Sydney","orig_header":"Sydney Median","backgroundColor":"rgba(255,159,64,0.2)","borderColor":"#ff9f40","borderWidth":1,"data":[25055,25081,10275.5,26927,9262.5],"lineTension":0}]},"options":{"maintainAspectRatio":true,"scales":{"xAxes":[{"scaleLabel":{"display":true,"labelString":""}}],"yAxes":[{"scaleLabel":{"display":true,"labelString":""},"ticks":{"beginAtZero":false,"min":0}}]},"title":{"display":true,"text":"Regional podcast media hosting speeds (slower)","position":"top","fontFamily":"Quattrocento Sans","fontStyle":"bold","fontColor":"#333333"},"tooltips":{"enabled":true,"mode":"single","backgroundColor":"rgb(0,0,0)","cornerRadius":3},"legend":{"display":true,"position":"top"}},"globalOptions":{"defaultFontSize":"","defaultFontFamily":"Quattrocento Sans","defaultFontStyle":"bold","defaultFontColor":"rgb(0,0,0)"}},"configurations":{"type":"chartjs_column_chart","container":{"height":"600","width":0},"canvas":{"backgroundColor":"","borderWidth":"0","borderColor":"","borderRadius":"0"}}}, engine: "chartjs", type: "chartjs_column_chart", title: "Regional podcast media hosting speeds (slower)", container: "wpDataChart_15", follow_filtering: 0, wpdatatable_id: 8, group_chart: 0}

About half of the providers offer extremely-fast hosting for North America, but slow down in other parts of the world, especially Sydney and Singapore. Buzzsprout, Fireside, Pinecast, Pippa, Podbean Business Plus, Transistor, and, surprisingly, Soundcloud were the only options with consistently fast downloads to every test region (including Sydney and Singapore).

Remember these are medians, not averages. So a single bad test out of 10 consecutive tests would barely affect the results.

Wi-Fi timings



Wi-Fi is a significant normalizer for download speeds and it's more likely how most people will download podcast episodes. Here are the results of the same download tests conducted over a Wi-Fi 5 network (formerly known as 802.11ac) with a 200 mbps (down) Internet-service provider in greater Cincinnati.

if(typeof(wpDataCharts)=='undefined'){wpDataCharts = {};}; wpDataCharts[13] = {render_data: {"options":{"data":{"labels":["Amazon S3*","Anchor (Cloudfront)","Archive.org*","Audioboom (55.6 MB)","Blubrry","Bunny CDN*","Buzzsprout","Captivate","Castos","Fireside","iVoox","Libsyn","Omny Studio","Pinecast","Pippa","Podbean Unlimited Audio","Podbean Unlimited Plus","Podbean Business Basic","Podcast.co","Podiant (41.2 MB)","Podigee (35.7 MB)","Podmio (S3)","podOmatic (41.37 MB)","Podserve.fm","RedCircle (55.1 MB)","Simplecast","SiteGround*","SoundCloud","Spreaker","Transistor","Whooshka (55.1 MB)","Zencast"],"datasets":[{"label":"Median","orig_header":"Wifi Median","backgroundColor":"rgba(54,162,235,0.2)","borderColor":"#36a2eb","borderWidth":1,"data":[2519.5,2548,3812.5,3278,1778,2542,1840,1823,1769,1698,2670.5,1781,1709,1696.5,1703.5,19652,22161,2048,1788,2625,6917,2533,13086.5,2325.5,3943,1792.5,3022.5,1767,5138,1702.5,4113,2637],"lineTension":0}]},"options":{"maintainAspectRatio":true,"scales":{"xAxes":[{"scaleLabel":{"display":true,"labelString":""}}],"yAxes":[{"scaleLabel":{"display":true,"labelString":""},"ticks":{"beginAtZero":false,"min":0}}]},"title":{"display":true,"text":"Wi-Fi podcast media hosting medians","position":"top","fontFamily":"Quattrocento Sans","fontStyle":"bold","fontColor":"#333333"},"tooltips":{"enabled":true,"mode":"single","backgroundColor":"rgb(0,0,0)","cornerRadius":3},"legend":{"display":false,"position":"top"}},"globalOptions":{"defaultFontSize":"","defaultFontFamily":"Quattrocento Sans","defaultFontStyle":"bold","defaultFontColor":"rgb(0,0,0)"}},"configurations":{"type":"chartjs_column_chart","container":{"height":"600","width":0},"canvas":{"backgroundColor":"","borderWidth":"0","borderColor":"","borderRadius":"0"}}}, engine: "chartjs", type: "chartjs_column_chart", title: "Wi-Fi podcast media hosting medians", container: "wpDataChart_13", follow_filtering: 0, wpdatatable_id: 8, group_chart: 0}

This raises the floor from milliseconds to seconds. There's still some significant difference between hosts (such as Podbean and Buzzsprout), but the Wi-Fi connection (at least at 200 mbps) makes more of the hosts perform about the same as opposed to the multi-gigabit network speeds of my Vultr servers.

Untested factors



My regional tests were performed on virtual private servers with a multi-gigabit network connection. Real-world results will vary greatly depending on Internet speed, wireless signal strength, and device hardware. That's another reason you may not need the fastest host: typical Wi-Fi connections and local bandwidth could normalize a lot of these results.

Every test was performed consecutively, with no overlap. Thus, my data doesn't reflect potential performance differences when there are hundreds or thousands of devices requesting the same thing at the same time. But I think it's likely that the best perform providers also have the backend performance to meet the high demands of simultaneous downloads. And this is why a CDN is important: if the file lives in only one place on the Internet, such as with Amazon S3 or a web host, then simultaneous downloads can easily overload the bandwidth of that single point. But with a CDN, someone in California could be downloading a file from a completely different server compared to someone in London.

I also could not test the upload performance of each podcast host. I've heard from some podcasters outside North America that uploading to some providers is extremely slow from their region because the media must first go to a server in the USA before spreading across the CDN. As frustrating as this could be for podcasters, it's something that occurs only once per episode and doesn't affect the audience. Nonetheless, if it becomes too frustrating for your situation, you might want to consider a different host.

An important discovery on stats



Only a podcast-hosting company will provide podcast stats. This is a big reason to avoid hosting your podcast media on a non-podcast host (like Amazon S3, your web host, or a private CDN) unless you can layer reputable tracking (such as Blubrry Stats) into your download URLs or, of course, you build your own IAB certified system to analyze the raw download logs.

Because my testing was done with bots that were not declaring a user agent (let alone a podcast-app user agent), I wanted to see how some of these hosts would count my test downloads. 0 would be best, 16 (1 per test region) would be acceptable, and anything more than 16 would be concerning.

if(typeof(wpDataCharts)=='undefined'){wpDataCharts = {};}; wpDataCharts[8] = {render_data: {"options":{"data":{"labels":["Anchor (Cloudfront)","Audioboom (55.6 MB)","Blubrry","Buzzsprout","Captivate","Castos","Fireside","iVoox","Libsyn","Omny Studio","Pinecast","Pippa","Podbean Unlimited Audio","Podbean Unlimited Plus","Podbean Business Basic","Podcast.co","Podiant (41.2 MB)","Podigee (35.7 MB)","Podmio (S3)","podOmatic (41.37 MB)","Podserve.fm","RedCircle (55.1 MB)","SiteGround*","SoundCloud","Spreaker","Transistor"],"datasets":[{"label":"Stats","orig_header":"Stats","backgroundColor":"rgba(255,99,132,0.2)","borderColor":"#ff6384","borderWidth":1,"data":[16,32,0,0,0,0,160,32,0,0,0,160,0,0,0,160,32,16,160,0,16,16,0,24,16,0],"lineTension":0}]},"options":{"maintainAspectRatio":true,"scales":{"xAxes":[{"scaleLabel":{"display":true,"labelString":""}}],"yAxes":[{"scaleLabel":{"display":true,"labelString":"Downloads tracked"},"ticks":{"beginAtZero":false,"min":0}}]},"title":{"display":true,"text":"Bots counted as podcast downloads","position":"top","fontFamily":"Quattrocento Sans","fontStyle":"bold","fontColor":"#333333"},"tooltips":{"enabled":true,"mode":"single","backgroundColor":"rgb(0,0,0)","cornerRadius":3},"legend":{"display":false,"position":"top"}},"globalOptions":{"defaultFontSize":"","defaultFontFamily":"Quattrocento Sans","defaultFontStyle":"bold","defaultFontColor":"rgb(0,0,0)"}},"configurations":{"type":"chartjs_column_chart","container":{"height":"400","width":0},"canvas":{"backgroundColor":"","borderWidth":"0","borderColor":"","borderRadius":"0"}}}, engine: "chartjs", type: "chartjs_column_chart", title: "Bots counted as podcast downloads", container: "wpDataChart_8", follow_filtering: 0, wpdatatable_id: 8, group_chart: 0}

These podcast hosts did not count any downloads from my bots:



These podcast hosts counted some downloads:

  • Anchor: 16
  • Podigee: 16
  • Podserve.fm: 16
  • RedCircle: 16
  • Simplecast: 8 (I'm guessing it counted only one per continent)
  • Spreaker: 16


Podcast stats were not available from Amazon S3, Archive.org, SiteGround, and Bunny CDN because they're not podcast-hosting companies.

And here are the concerning hosts I suggest avoiding because their stats counted more than 1 download per bot (for unknown reasons):

  • Audioboom: 32
  • iVoox: 32
  • Podiant: 32
  • SoundCloud: 24


And here's the current naughty list of hosts that counted every bot download (at the time of this test), resulting in 160 fake downloads.

  • Fireside—working on changes in July that should better filter downloads
  • Pippa—see below for how to change the default and make Pippa stats more accurate
  • Podcast.co—working on changes in July that should better filter downloads
  • Podmio


I hate to throw any company “under the bus,” but the tracking from these four offenders was so vulnerable that I could have a single bot download the same episode 1,000 times in 15 minutes, and it artificially inflated the stats by exactly 1,000.

In the interest of journalistic integrity, I reached out to these four hosts to alert them of the vulnerability and let them see my data before I published, so they will probably work to resolve this vulnerability as soon as possible. Fireside was already refining their tracking, and Pippa pointed me to a buried option.

Pippa's buried “analytics windowing”



Pippa offers an “analytics windowing” option buried in the advanced settings, described as follows.

Windowing affects the way that plays of your podcast are counted and presented. For example, with a 1 hour window, if the same device plays the same episode twice within 1 hour, then only 1 play will be counted in the analytics. Windowing does not affect delivery of the podcast to listeners, only presentation of the analytics. Your chosen window will be effective going forward, not backwards.

(When Pippa says “play,” they really mean “download.”)

Thus, Pippa presents three windowing options: deactivated (the default), 1 hour, and 24 hours (IAB's measurement guidelines). I conducted my tests with the default show settings, and thus with windowing deactivated. This explains why the stats were so easy to manipulate on Pippa. When I changed the windowing option and retested, Pippa counted only 1 download per region.

That's an acceptable number, but leaving this option to the user, buried in advanced settings, and having it deactivated by default is still corrupting the data. For Pippa stats, this would always require the question, “How is your analytics windowing configured?” Thus, it's possible to have three separate podcasts with identical audiences report three completely different numbers.

Conclusion



If you want the truly fastest podcast media hosting, or you want to ensure your hosting can handle the high demands of simultaneous downloads, then I recommend choosing the best performers from this list (in no particular order).



Complete data table



Host Stats Wifi Average Wifi Median Global Average of Averages Global Median of Medians NY/NJ Average NY/NJ Median Chicago Average Chicago Median Dallas Average Dallas Median Los Angeles Average Los Angeles Median Silicon Valley Average Silicon Valley Median Atlanta Average Atlanta Median Miami Average Miami Median Seattle Average Seattle Median Toronto Average Toronto Median Amsterdam Average Amsterdam Median Paris Average Paris Median Frankfurt Average Frankfurt Median London Average London Median Tokyo Average Tokyo Median Singapore Average Singapore Median Sydney Average Sydney Median

Amazon S3*

3,638
2,519
2,298
1,490
485
345
530
536
703
699
1,163
1,151
1,419
1,421
502
479
586
559
2,681
1,558
679
598
2,127
2,125
1,712
1,774
2,039
2,012
1,657
1,614
6,773
3,752
8,847
4,945
4,875
4,582

Anchor (Cloudfront)
16
2,548
2,548
402
131
280
149
411
236
862
164
102
102
200
136
1,084
896
367
174
122
114
590
466
636
126
319
75
290
68
495
151
91
82
169
106
416
111

Archive.org*

3,907
3,812
2,589
2,462
2,546
2,559
1,701
1,379
950
988
566
360
475
404
3,169
2,366
2,415
2,214
602
556
2,445
2,022
3,194
3,127
3,421
3,489
4,848
3,981
2,796
2,747
2,671
2,607
4,678
4,205
4,958
4,539

Audioboom (55.6 MB)
32
3,284
3,278
1,188
318
383
282
511
360
499
355
229
222
289
151
1,219
1,062
597
410
469
248
802
686
273
244
317
135
335
128
538
253
2,526
2,503
4,928
4,808
5,108
5,018

Blubrry
0
1,807
1,778
2,139
102
104
71
142
61
203
80
113
96
78
56
138
128
95
68
414
400
261
255
391
68
516
189
110
108
434
78
1,975
1,882
26,180
4,665
3,072
2,984

Bunny CDN*

5,188
2,542
685
151
464
118
164
111
528
235
145
143
1,756
298
184
188
243
175
781
349
1,736
970
818
145
1,500
95
488
103
154
157
109
106
135
112
1,769
331

Buzzsprout
0
1,837
1,840
362
225
338
299
447
347
336
281
259
237
621
252
320
342
481
501
216
209
419
175
375
156
282
159
274
127
345
213
271
206
262
261
555
154

Captivate
0
2,019
1,823
517
188
263
196
157
118
271
130
255
239
321
266
208
198
328
181
570
452
169
147
328
101
490
270
128
130
404
221
161
150
149
148
4,078
2,487

Castos
0
1,806
1,769
365
157
169
150
129
116
226
226
192
174
427
400
198
161
185
147
266
258
148
139
204
154
207
207
166
145
288
170
438
147
496
146
2,104
2,076

Fireside
160
1,695
1,698
251
179
415
240
264
262
254
242
200
179
154
152
223
219
203
198
232
227
189
187
165
151
175
179
152
162
349
130
332
164
356
109
364
145

iVoox
32
3,056
2,670
1,613
1,033
113
90
1,236
991
816
437
1,243
1,222
1,556
1,134
264
241
662
603
2,069
1,722
753
518
806
575
2,164
2,074
2,263
2,149
1,893
1,736
1,675
1,076
595
482
7,711
7,343

Libsyn
0
1,787
1,781
402
92
234
106
248
80
397
95
132
129
128
125
300
138
83
64
452
394
298
63
105
81
709
193
89
73
436
83
88
75
110
89
2,627
2,172

Omny Studio
0
1,811
1,709
1,310
333
305
265
689
367
936
345
227
223
240
151
1,482
1,209
503
443
346
322
1,295
1,209
865
231
727
129
165
135
268
243
2,495
2,476
5,101
5,028
5,316
5,214

Pinecast
0
1,696
1,696
621
227
276
228
266
224
856
319
192
198
528
210
421
386
431
274
420
284
260
183
2,397
941
1,199
296
322
207
599
227
462
197
499
155
818
944

Pippa
160
1,687
1,703
345
187
223
189
277
278
359
309
189
194
633
193
241
249
192
174
161
153
154
160
188
180
118
114
195
199
428
178
559
177
783
185
834
237

Podbean Unlimited Audio
0
20,363
19,652
21,612
7,596
6,751
7,629
5,049
4,757
4,136
4,089
8,165
5,505
5,879
4,695
6,339
5,957
7,081
6,340
9,277
7,563
4,835
4,771
20,327
20,907
29,214
30,074
11,544
10,057
12,033
13,649
13,879
12,563
178,954
137,692
22,330
25,055

Podbean Unlimited Plus
0
21,882
22,161
24,667
9,036
6,775
7,104
4,250
4,377
2,842
2,581
9,716
9,381
7,002
6,637
6,795
6,998
10,297
10,211
10,319
7,576
5,284
4,160
26,152
25,962
31,526
22,927
15,470
13,978
11,101
8,692
17,240
16,634
203,250
133,332
26,666
25,081

Podbean Business Basic
0
2,066
2,048
345
122
166
149
204
140
220
135
196
83
231
79
159
120
286
109
248
119
518
491
1,291
163
232
216
459
176
272
124
371
73
149
98
526
75

Podcast.co
160
2,013
1,788
451
173
293
181
596
283
284
252
322
211
302
164
583
455
192
115
289
151
365
136
268
125
259
243
364
185
289
138
584
106
128
126
2,097
2,123

Podiant (41.2 MB)
32
4,267
2,625
3,036
251
5,911
219
4,266
171
2,597
230
2,656
96
6,096
325
400
392
1,679
544
1,321
83
280
273
1,266
131
1,516
488
7,790
112
2,342
114
3,315
575
3,341
451
3,805
3,893

Podigee (35.7 MB)
16
6,799
6,917
5,194
2,888
1,870
1,821
3,333
2,951
2,928
2,905
3,522
3,479
3,457
3,454
2,841
2,871
2,833
2,761
3,360
3,372
2,342
2,330
360
336
1,007
907
170
146
623
492
6,167
6,181
35,234
33,151
13,069
10,275

Podmio (S3)
160
2,544
2,533
2,115
1,450
401
363
539
531
814
816
1,233
1,195
1,441
1,427
688
530
632
589
1,478
1,473
637
637
1,864
1,838
1,666
1,677
1,903
1,900
1,561
1,551
3,500
3,447
5,951
4,792
9,543
4,533

podOmatic (41.37 MB)
0
12,072
13,086
21,447
3,256
2,190
2,060
2,175
2,117
2,146
2,166
1,498
1,449
792
794
3,056
3,055
2,989
2,514
2,517
2,007
3,528
3,458
9,774
10,017
6,721
5,431
5,651
5,697
5,046
5,156
7,828
6,660
259,541
171,036
27,700
26,927

Podserve.fm
16
2,634
2,325
1,043
202
173
97
434
376
78
77
78
76
198
196
477
505
718
697
706
668
215
209
244
168
728
83
271
164
307
171
2,093
2,126
6,621
6,483
3,361
3,128

RedCircle (55.1 MB)
16
3,966
3,943
3,415
2,496
1,927
1,760
1,261
1,124
1,273
1,161
2,303
2,206
5,053
5,095
2,200
1,995
1,442
1,287
1,919
1,886
1,419
1,308
2,975
2,886
2,886
2,879
3,236
3,205
2,865
2,787
4,225
4,188
9,582
7,993
10,076
8,949

Simplecast
8
2,462
1,792
991
187
183
147
271
184
150
149
193
93
200
100
265
189
202
205
569
568
877
813
341
206
238
106
286
133
317
141
1,718
1,646
3,111
3,102
6,942
5,936

SiteGround*

3,278
3,022
10,127
3,688
3,240
2,928
4,410
4,330
2,877
2,730
5,227
4,914
4,425
3,793
2,932
2,705
3,089
3,027
3,030
2,958
2,693
2,680
3,642
3,479
4,846
4,564
3,719
3,599
4,116
3,777
70,788
10,282
34,359
26,537
8,648
9,262

SoundCloud
24
1,871
1,767
422
145
190
143
321
230
207
156
135
121
788
147
428
375
240
180
561
545
499
459
1,681
116
360
77
223
71
295
154
83
80
234
114
522
100

Spreaker
16
7,424
5,138
2,414
2,342
1,322
1,290
2,007
1,845
6,433
5,050
2,291
2,308
2,271
2,376
3,358
2,531
1,452
1,553
3,567
3,585
2,476
2,376
1,708
999
581
381
443
442
427
391
3,242
2,997
2,993
2,906
4,058
4,054

Transistor
0
1,709
1,702
380
198
506
247
468
350
245
234
260
209
171
162
511
242
270
172
225
216
329
220
649
120
386
188
385
155
408
185
409
211
436
141
431
157

Whooshka (55.1 MB)
0
4,415
4,113
1,001
212
697
239
888
271
826
242
474
164
912
169
698
281
926
281
468
164
1,782
1,605
3,205
487
811
165
784
166
2,130
190
405
172
636
176
384
234

Zencast
0
2,622
2,637
2,951
2,491
2,443
2,046
2,397
2,399
2,611
2,617
4,761
3,167
3,414
3,449
2,488
2,514
2,401
2,469
3,789
3,811
1,941
1,982
404
398
388
396
462
433
491
502
6,036
6,100
6,309
6,264
6,895
6,887

table.wpDataTable td.numdata { text-align: right !important; }

Need personalized podcasting help?


I no longer offer one-on-one consulting outside of Podcasters' Society, but
request a consultant here and I'll connect you with someone I trust
to help you launch or improve your podcast.

Ask your questions or share your feedback



Connect with me



Disclosure


This post may contain links to products or services with which I have an affiliate relationship and
may receive compensation from your actions through such links. However, I don't let that corrupt my perspective and I don't
recommend only affiliates.

Episode Reviews

This episode hasn't been reviewed yet. You can add a review to show others what you thought.

This podcast, its content, and its artwork are not owned by, affiliated with, or endorsed by Podchaser.