Invalid RSS Feed – ETX Character

English: This icon, known as the "feed ic...

So you are validating your WordPress blog feed and you get an invalid character error. The validator even shows you where the invalid character is located, but it looks fine in your browser!

Copy and paste the text into a text editor and you will see it. In Windows Notepad, you will see a small rectangle, and in Notepad++ you will see more – in my case, the letters “ETX” on a black background.

How did it get there? Probably because you copy and pasted your text from another source.

How do you get rid of it? There are a couple of ways:

One, find the offending post and rewrite the word before and the word the validator was pointing at and delete the original words to hopefully delete the invisible character. Then republish.

Two, create a filter  in your functions.php file to filter it out of existing posts.

function wpc_rssContent($content) {
     // Search for end-of-text character which is created by using      // chr(3) and replace with blank string.
     $content = str_replace(chr(3), '', $content);
     return $content;
}
// Filter the Excerpt RSS feed
add_filter('the_excerpt_rss', 'wpc_rssContent');
// Filter the Content RSS feed
add_filter('the_content_feed', 'wpc_rssContent');
/* Filter the Editor content to keep the character out of your 
   posts before you publish. You will need to click Save Draft at
   least once before publishing to ensure it is removed.
 */
add_filter('the_editor_content', 'wpc_rssContent');

There is probably a better solution out there, but this worked for me.

Must-Have Plugins according to John P.

John Pozadzides (aka John P.) is one of those guys who knows a lot about blogging and WordPress.  If my head wasn’t stuck in the sand of work so much I may have heard of this guy sooner.  On Jan 30, 2010, he gave a talk at the Dallas/Fort Worth WordPress Group.

[viddler id=4f54d588&w=437&h=290]

If you don’t have an hour and 30 minutes and just want the list of plugins he mentions, I have provided them below.  Click the titles to go to the download pages for each plug-in.  In some of the notes, I have provided times in the video he talks about that subject so you can jump ahead in the video if you want to hear more detail.

Woopra

Tony Cecala, the gentleman who introduces John P., states John is part of a team that developed a stat-tracking service called Woopra.  This is not one of the plugin John P. says you need, but he does show how he uses it throughout the presentation in relation to the other plugins he uses.

There is a free plan that is capped at 30,000 page views and data retention for 3 months.  If you want more, you will need to pay a monthly fee for the upgrades.

You can get the WordPress plugin here, or in your WordPress admin plugins area, search for “woopra”.

Pretty Link

This is a URL shortener.  John P. calls it Pretty Link Pro and says it is not free, but there is a free version called Pretty Link.  The idea is that by using services like Bit.ly or TinyURL.com, you are giving away your traffic.  Pretty Link will make shortlinks for your domain and tracks clicks.

XML Sitemap Generator for WordPress

Creates an XML sitemap you can use with Google Webmaster Tools and Yahoo Site Explorer to help those search engines index your site so your site will wind up in more search engine results.  Plus it notifies Google, Yahoo, and Bing when you publish a new post.

Amazon Associates

If you mention a product (that’s not competing with your product) that is available on Amazon.com, why wouldn’t you include a link to it?  It provides value to your readers, and you will get a commission for the sale.  This product looks for links to Amazon.com in your posts and adds your referral code.  Of course this requires that you are signed up as anAmazon Associate.

There are actually quite a few plugins available that do this.  It depends on your need.

WP Admin Bar

Oh my goodness, I wish I knew about this one earlier.  When you are logged in as an admin on your site, a tool bar is added to the top of the page that gives you the same functionality as the WordPress.com hosted sites.  You will have faster access to all the functions (including plugins) that you have in normal admin sidebar.  You won’t have to type “wp-admin” every time you need to access the backend of your blog.

YARPP

… stands for Yet Another Related Posts Plugin.  Uses tags (you are using tags, right?) to create links to other posts on your blog that are related to the post on that page.  Related posts help keep your site visitors on your site longer.

An attendee asked if it was better to add related links to the top of the post rather than the end or side.  John loved the idea of putting them at the top in case in case the visitor did not find the article interesting before they scrolled down enough to see the related link.  In my own experience reading blogs, if I see a related link that looks interesting, I will open the link in a new tab to read after I am finished reading that page or decide to stop reading because the article does not interest me.

Database Backups

Take it from someone who has lost his database, you need to back up your WordPress database!  John P. suggests WP-DBManager which not only automatically emails a backup to you, but also optimizes the database.  However, I had some trouble getting it work with my Godaddy Windows shared hosting server set up. (Helps if I actually read the install instructions. *facepalm*) I normally use WordPress Database Backupwhich also emails the database backup file to you, but does not optimize the database.

Update April 21, 2010: I still can’t get the WP-DBManager backup to work right.  It says it can’t find the MySQL dump path – probably because I’m running it on a Godaddy Windows server.  So I’m using WordPress Database Backup for the actual backup and WP-DBManager for optimization and repair tasks.  They play nicely together.  In fact if you go the WordPress Database Backup option page, you can schedule the backup according to the WP-DBManager’s backup or optimization schedule!

WP Super Cache

“Every single person in this room should have this plugin on every single website you have.”  I sadly do not.  I better get busy.

What it does is speed up the access to your site by taking some of the load off of your web server by creating static pages of normally dynamically created web pages.  Static pages will come up faster than the dynamic pages.

Clean Options

1:07 Removes any records left behind in the wp_options table of your database of plugins you have removed.  You click the button that says “Find Orphans” and a list of entries show up with check-boxes and links to look up the entry in Google to see what it is.  You just check the boxes of the entries you know are safe to remove.  When I tried it the first time, an option for the DB Manager appeared (good because I removed it) and options for YARPP were in the list (bad because YARPP was enabled).  Make sure you backup your database before using this.

Delete Revisions

1:08 Like it says, it deletes the revisions of your blog posts and pages to save room in your database. Again, make sure you backup your database before using this.

WP Search

1:09 Integrate Google Search.  John says it is called WP Search, but I couldn’t find it.  My search engine seems to be working fine.

No Adverts For Friends

1:35 You can set it up so regular visitors never seen an ad, but traffic coming from a search engine does.

I have not tried this one yet.

All In One SEO Pack

Other Notes I got from the video

  • Content is king. Interesting, authoritative blog posts take time to write. One of his most popular posts that he wrote in 2008 and still get 2,000 hits a day took 20 hours to write.
  • Video counts.
  • Pictures count. In your descriptions in Flickr, include link back to your site.
  • Audio counts.
  • Stop trying to make money.
  • Add e-mail feeds.  I use Feedburner to send out email digests of my posts for free.  You just need to sign up with Feedburner, set up Feedburner to use your feed, then provide a link for visitors to sign up to be emailed.
  • Use descriptive file names for your images. Use the alt tags for your images.
  • 0:52 John talks about a test he did using videos and images of Lady Gaga. When using a gallery, instead of the image linking to just the image file, link to a page with the larger image embedded.  If a visitor lands on this page, you need to give that visitor somewhere else to go.
  • 1:03 Site speed matters. Use a Firefox plugin called Firebug and Page Speed by Google to test your site’s speed.  “Faster load speeds equal more Google traffic.”
  • Use grid hosting
  • 1:05 Moderate spammy comments ruthlessly
  • Integrate Google Search – WordPress’s built-in search stinks.
  • 1:10 Quotes Mark Hopkins: Sites with less than 50,000 page views a month should focus on growing their audience, not direct monetization.
  • 1:12 Google Adsense and alternatives: BuySellAds.comAdBrite.comClicksor.com,Chitika.com.  He mentions he will publish a post about these, and he did here.
  • 1:14 Affiliate Programs like CJ.comLinkShare.com, and iTunes.com.
  • 1:15 SEO stuff: Themes. Stop looking for free themes.  He shows a slide with the following tips:
    • Pay for a reputable theme with support
    • No spammy footer links (I just remove those links in the code.)
    • Content loads before the sidebar loads
    • Well commented PHP and CSS
    • Light, fast, and standards compliant
  • John mentions a theme he uses called Rapid-Access which is available here
  • 1:17 SEO stuff: Keywords – put them everywhere: image filenames (use dashes between keywords), image alt tags, image title tags, link title tags, meta-tags (using All In One SEO plugin).
  • 1:18 Social Media Primers
  • 1:19 Guest blog to build reputation and inbound links and make contacts with new bloggers.  Use MyBlogGuest.com
  • 1:19 Crazy Readers – but the good kind.  Some people have the habit of google searching for the same page instead of bookmarking.
  • 1:25 Q&A
    • Monetize RSS feeds? Yes.
    • Uses plugin to add related posts to RSS feed
    • Does RSS replace a newsletter? No.  Write a special newsletter that only email subscribers would get.
    • WP Super Cache work on dynamic pages? Yes, embedded items not cached.
    • Facebook Connect plugin slows down the site? John verifies it does slow down sites.
    • Commenting services like Disqus and IntenseDebate.  Fundamental problem: you are turning over your intellectual property to a third party.
    • Social media: use a share button? Pretty Link Pro adds this.

5 things that will help to increase traffic to your site

  • Social media – Facebook contributes 50% of incoming traffic for websites.  Twitter is only 42%.
  • RSS feeds are important.  Enable the full text feed in your WordPress settings.
  • Kick-a** content.
  • Pretty Link Pro
  • Meet-ups.  Link to your peers.  Start your own meet-up groups.
  • Use site-maps.  Wait a minute, that’s six.

Thanks to my brother Ryan, for sharing the link to Episode 16 of Wealth Nation which contained the video.  Be sure to check out the audio podcast, too.

Aweber adds
tags to my RSS feed

Note: this article has been updated on Sept 3, 2009

I am using Aweber to email out a client’s blog entries.  The client is very particular about preserving his formatting.  He wants the entry to appear the same in both the email and his blog page.

Aweber’s Blog Broadcast Messages are fed by the item:description tags in an RSS feed from the blog.

The description tag is fed by the excerpt of that blog entry.  If none is defined, WordPress grabs the first few dozen words and ends it with “…” to indicate there is more but you have to go to the blog site to read it.

This was fixed this using the Advanced Excerpt plugin. Not only does this plugin copy the contents of the blog entry in its entirety, but also copies in the HTML code.  I set it to copy the first 1000 words. The blog entries are usually very short so this length works fine.  HTML tags are not counted in the 1000 words.

The next problem came when I set up the Blog Broadcast in Aweber. Extra lines were added to the emails I received.  In the source code of the message in my email client and at Aweber.com, I looked at the code of the messages sent out.  I found an extra <br /> tag that was not in the RSS code it was pulling from.

I made a copy of one of the messages that had went out, and removed all the extra <br /> tags and sent the message as a test.  No extra spacing this time.  This told me, the problem had to occur in the RSS import process.

My guess is that there is code to replace new line characters (n) with <br /> tags for those people who who just use plain text in their excerpts to maintain their formatting.

I asked Aweber about this and they are looking into the problem after I convinced them there was a problem.  I’m still awaiting on a response.

Meanwhile, in case they can’t fix it for some reason, I think I came up with another solution.  I am using Yahoo! Pipes to search the item:description tags of my RSS feed, and strip out the new line characters using regular expressions.  Regular expressions tend to tie my brain in knots, but a little research at Brooks Brayne’s blog showed me what to do.

yahoopiperemovenewline

Above, I’m telling pipes to search the item.description for all new line characters and replace them with nothing a space. Had to put a space in there because words would wind up mashed together.

The preview window in Pipes shows exactly what I wanted to see.

However, the code in the actual RSS feed for the Yahoo! Pipe is showing the left and right angle brackets as &lt; and &gt; which could be a problem.  I was afraid the &lt; and &gt; are going to appear in the email instead of the angle brackets. But email turned out perfectly.

Except for the plain text version. Aweber strips out all the HTML tags, and with no new line characters, the text doesn’t break into separate lines.

Next I will try searching for the <br /> tags and removing them as well as the </p> (end paragraph) tags and leave the new line characters intact.  This way, Aweber can insert their <br /> tags and the plaintext will look right.

Update 09/03/2009: Aweber appears to have fixed this issue and my fix caused a problem today.  The newline characters [/n] are now appearing in the emails.  I changed RSS feed back to regular blog feed instead of going through Yahoo! Pipes.  But I definitely need to keep Pipes in mind should I run into a similar issue again.

Update 09/04/2009: OK, it wasn’t Aweber.  I looked at the code coming out of Pipes and the [n] code is visible there.  I think the code changed somewhere, but Brooke Bayne’s blog now shows that the proper code for a new line is [n].  Or maybe it always said that and I messed it up… but then why did it work before?