Feed Delta Updates

Description

Your feed subscribers have already read your old posts or they’ve been cached in their feed readers already. Stop wasting bandwidth and only return the posts published since supporting feed reader last requested a feed update.

As a nice bonus, this plugin will decrease the number of false cache misses for all your feeds.

Known problems

This section addresses some known problems and some known solutions to those problems as well.

All new posts added since the `If-Last-Modified` timestamp aren’t included in my delta updates!

Indeed, they may not be. The “Syndication feeds show the most recent” setting in WordPress is respected to avoid delta updates being used to extract all the content out of a website by providing a timestamp from a decade ago. Feed reader clients will generally check feeds often enough to receive all the deltas as they appear in the feed anyway.

Please consider increasing the max setting limit now that you’re using feeds with delta updates.

Old posts are resurfacing in my feeds!

Indeed, that can happen – but lets look at why it happens.

Posts that have been published within the last week may reappear in a delta update if the post has been modified since the feed was last updated. Feed reader clients are expected to handled updated posts, and the delta update is expected to include updated posts.

You can avoid pushing out minor post modifications, such as spelling corrections, and improve on caching by installing the Minor Edits plugin. This plugin will suppress changes to a post’s modification time for minor updates.

Posts older than one week aren’t considered “news worthy” any longer and wouldn’t be included in a delta update even with significant modifications.

Installation

  1. Upload the plugin files to the /wp-content/plugins/delta-feeds directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.

No configuration is required or indeed possible.

FAQ

Nobody asked about any of this, but I assume that at least some of you would be curious about this stuff.

Installation Instructions
  1. Upload the plugin files to the /wp-content/plugins/delta-feeds directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.

No configuration is required or indeed possible.

What are “delta updates”?

Feed delta updates is a defacto standard based on RFC 3229 Delta encoding in HTTP with the feed extension. With delta updates to feeds, your syndication feeds will only return new or modified content to supported feed reader clients instead of giving them the entire feed including old entries they’ve already retrieved. This reduces the bandwidth requirements as your feed will contain fewer posts when the feed reader client have already received the most recent version of an item in your feed.

Can I control how often feed reader clients check for new content in my feeds?

You can’t really control this as it’s up to the feed reader client and user preferences. You can, however, use the Cache-Control: max-age=<seconds> header to provide a hint to clients as to how often they should be checking for new content. Use the Cache-Control plugin to configure this header.

Which feed formats are supported?

Atom, RSS, RDF, and anything else WordPress core classifies as a “feed format”.

Which feed readers support feed delta updates?

Quite a few including FeedHQ, Feed Notifier, Internet Explorer, Jarr, Liferea, Microsoft Outlook, Miniflux, Newsblur, Newsbeuter, Vienna, and others. Please make sure you’re running an updated version of your feed reader.

How do I test my new HTTP headers? What about caching?

You can use your web browser’s developer tools, or a web utility for inspecting headers like Redbot to request your public feed address. Be sure to include a A-IM: feed header as well as a If-Modified-Since: <rfc-1123-date> header.

The plugin will work with any web browser, server-side caching systems, content distribution system, web performance boosters, and other caching infrastructure that correctly implements HTTP caching in a standards compliant way. If your infrastructure supports the Cache-Control: and Vary: headers along with at least one of Last-Modified: or ETag: you shouldn’t have any trouble.

Are comment feeds supported?

Not as of version 0.9, but this may be supported in the future. Only post feeds (main feed, and feeds for sections, tags, and author pages) is supported.

Will feed readers that don’t support delta updates to feeds be adversely affected?

Not at all. Quite the opposite! This plugin improves on WordPress’ cache handling for feed delta updates and regular feeds alike. The biggest gains are with feed reader clients that support delta updates of feeds, but other feed reader clients will get fewer “false positives” (meaning they download the entire feed even when there is no new posts) when using this plugin.

Will this plugin badly affect my WordPress performance?

Quite the contrary! It’s know to have positive effects on PHP processing time compared to the WordPress core feed delivery and feed caching system. As the plugin delivers smaller feeds at a faster rate, it can even free up server resources for other — less efficiently delivered — types of content.

Will this plugin work with my other WordPress plugins?

It should, but I can’t test all the tens of thousands of plugins in the WordPress Plugin Directory.

I’ve got more questions!

Wow. Thank you for your interest in this plugin! Be sure to check the list of known issues, and the support forum as well. The plugin developer is happy to answer your questions in the forum.

Contributors & Developers

“Feed Delta Updates” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Feed Delta Updates” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.1

  • Corrected another problem with the Vary header.

1.0.0

  • Renamed the plugin.

0.9.1

  • Corrected a problem with the Vary header.

0.9

  • Initial public release.

0.8

  • Here be dragons.