Tikker News Logo
Tikker NewsWe've got news for you!
HomeBlogWeb
Tikker NewsTikker News

A mobile-first news aggregation platform connecting readers with specialized and niche publishers.

Quick Links

  • Home
  • Blog
  • RSS Guide
  • Tikker Web
  • Delete Account

Get the App

Download on the App StoreGet it on Google Play

© 2026 Tikker News. All rights reserved.

contact@tikker.co.in
Back to Home

For Publishers · Technical Guide

RSS Compliance Guide for Tikker

Last updated June 5, 2026

On this page

  • 1. What Tikker reads from your feed
  • 2. Sample item — what "good" looks like
  • 3. WordPress — common problems and fixes
  • 4. Drupal — common problems and fixes
  • 5. Ghost — common problems and fixes
  • 6. Validation — checks to run before submitting
  • 7. When to ask Tikker for help

A clean, well-structured RSS feed gives your channel the best possible appearance inside Tikker — proper headlines, dates, author bylines, images, and full article text. This guide covers what makes a feed work well, sample markup you can adapt, and the most common fixes for WordPress, Drupal, and Ghost.


1. What Tikker reads from your feed

Tikker is a tolerant RSS consumer — it accepts RSS 2.0, Atom 1.0, and feeds that mix both conventions. For each feed item, Tikker looks for the following information, in the order shown. The first match wins.

Required

What it is Tikker looks for (in order) Notes
Title <title> Plain text; no HTML markup.
Article URL <link> Must be a canonical, permanent URL. Used as the identifier across re-fetches.
Publication date <pubDate>, <dc:date>, <published>, <updated> Any standard RFC 822 / ISO 8601 string. Avoid blank or "Thu, 01 Jan 1970…" placeholders.

Strongly recommended

What it is Tikker looks for (in order) Notes
Full article content <content:encoded>, <content>, <description>/<summary> At least 400 characters of usable text. content:encoded (CDATA-wrapped full HTML body) is preferred. A 1-2 sentence <description> alone is too short — Tikker will fall back to it, but the article card will look anaemic.
Author / byline <dc:creator>, <creator>, <atom:author>/<atom:name>, <author>/<name> Any one is fine. Plain author name preferred over an email-only author.
Featured image <enclosure type="image/...">, <media:content type="image/...">, <itunes:image>, <image>, or first <img> inside <content:encoded> Use an absolute URL (https://…). At least 600×400 px is ideal for crisp display on cards.
Categories / tags <category>, <dc:subject>, <tags> Repeating elements are fine; helps with discovery filters.
YouTube <yt:videoId> (YouTube's native Atom feed) or a YouTube URL inside <content:encoded> If your post embeds a YouTube video, leaving the URL in the content body is sufficient — Tikker extracts it.

Update signal

Tikker considers an item updated if its <pubDate> (or equivalent) changes while the <link> stays the same. Bumping the date is how you tell Tikker to re-fetch a corrected article.


2. Sample item — what "good" looks like

<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Acme Daily</title>
    <link>https://acme.example.com/</link>
    <description>Coverage of things that matter.</description>
    <language>en-IN</language>

    <item>
      <title>Bengaluru rolls out rooftop solar incentive for SMEs</title>
      <link>https://acme.example.com/2026/06/solar-sme-incentive</link>
      <guid isPermaLink="true">https://acme.example.com/2026/06/solar-sme-incentive</guid>
      <pubDate>Wed, 04 Jun 2026 09:15:00 +0530</pubDate>
      <dc:creator>Anita Rao</dc:creator>
      <category>Energy</category>
      <category>Karnataka</category>

      <description>Karnataka announces a 30% capital subsidy for SMEs installing
      rooftop solar systems above 10 kW capacity, alongside accelerated grid
      interconnection.</description>

      <enclosure url="https://acme.example.com/img/solar-sme-2026.jpg"
                 type="image/jpeg" length="184320" />

      <media:content url="https://acme.example.com/img/solar-sme-2026.jpg"
                     type="image/jpeg" medium="image"
                     width="1200" height="800" />

      <content:encoded><![CDATA[
        <p>The Karnataka government on Wednesday unveiled a revised rooftop solar
        scheme for small and medium enterprises, offering a 30% capital subsidy
        on installations above 10 kW capacity. Officials said the scheme will
        also fast-track grid interconnection approvals, currently a major
        bottleneck for SMEs in industrial zones around Peenya and Hoskote.</p>

        <p><img src="https://acme.example.com/img/solar-sme-2026.jpg"
                alt="Rooftop solar panels on a Bengaluru factory" /></p>

        <p>"The earlier residential-focused scheme created a perverse situation
        where a 5 kW home installation was subsidised while a 50 kW factory
        rooftop was not," said an official from BESCOM. The new policy is
        budgeted at ₹420 crore for FY 26-27 and is expected to support
        approximately 4,000 SME installations.</p>

        <p>Industry groups welcomed the move while flagging concerns about
        verification timelines. Read the full policy notification at the link
        in our bio.</p>
      ]]></content:encoded>
    </item>
  </channel>
</rss>

Why this item works well:

  • ≥400 characters of substantive content inside CDATA-wrapped content:encoded
  • Plain-text title (no HTML)
  • RFC 822 pubDate with timezone
  • Author in dc:creator
  • Image declared three ways (enclosure, media:content, and inline <img>) — any RSS reader will find it
  • Categories repeat naturally
  • guid is the canonical permalink (isPermaLink="true")

3. WordPress — common problems and fixes

WordPress is generally well-behaved by default but has a few traps.

Problem: Feed contains only short excerpts

Cause: Settings → Reading → "For each post in a feed, include" set to "Excerpt". Fix: Change to "Full text". The feed will then expose <content:encoded> with the full post body.

Problem: No featured image in the feed

Cause: WordPress core does not emit the featured image into RSS. Fixes (any one):

  • Install Featured Image in RSS w/ Size and Position by RedLettuce (lightweight, well-maintained).
  • Or use Yoast SEO — its News/RSS module adds a featured image enclosure.
  • Or add this to functions.php:
    add_filter('the_content_feed', function ($content) {
        global $post;
        if (has_post_thumbnail($post->ID)) {
            $thumb = get_the_post_thumbnail($post->ID, 'large');
            $content = $thumb . $content;
        }
        return $content;
    });
    

Problem: Author shows as "admin" or site name

Cause: Posts authored by a generic admin account. Fix: Edit the post and reassign authorship to a real user whose display name is set in Users → Profile. Yoast and most SEO plugins write the display name to <dc:creator>.

Problem: Categories missing

Cause: Posts saved under "Uncategorized" only. Fix: Assign at least one meaningful category per post. WordPress emits each as a <category>.

Problem: Video posts have no thumbnail or content

Cause: Embedded YouTube/Vimeo doesn't survive the feed. Fix: Always set a Featured Image on video posts and write at least 400 chars of accompanying text. WordPress' oEmbed renders the video URL inside content:encoded, which Tikker picks up.


4. Drupal — common problems and fixes

Drupal's default RSS module is minimal. Most newsrooms use the Views module to publish proper feeds.

Problem: Feed contains only the teaser

Cause: The Views display is using the "Teaser" view mode. Fix: In the Views feed display, change Format → Show to "Fields" and add the full body field with "Default" or a custom "Full content" view mode. Or change Show to "Content" and set view mode to "Full content".

Problem: No <content:encoded> element

Cause: Drupal's Views RSS output by default places body in <description>. Fix: Install the Views RSS module (drupal/views_rss). It exposes fields like content:encoded, dc:creator, media:content you can map onto your Views fields.

Problem: Author is the username (e.g. editor1)

Cause: Drupal writes the author's account name, not their display name. Fix: Use the Realname module to set human-readable display names, and map the dc:creator Views RSS field to the Realname token rather than [node:author].

Problem: Featured image missing

Cause: Image fields aren't mapped to an RSS-friendly element. Fix: In Views RSS field settings, map your hero image field to media:content with image type, and to enclosure as a fallback. Use the absolute URL formatter.

Problem: HTML in title

Cause: Title fields are sometimes processed with text filters that leave <em> etc. Fix: In the Views field settings, strip HTML on output for the title (set output to plain text).


5. Ghost — common problems and fixes

Ghost has a clean, opinionated default feed at /rss/ but a few gotchas.

Problem: Custom theme strips content

Cause: Some themes override the RSS template and emit only excerpts. Fix: Restore the default RSS by removing default-rss.hbs from your theme, or update it to include {{content}} rather than {{excerpt}}.

Problem: Author shows as the Ghost account email

Cause: Author profile is missing a Name. Fix: Admin → Staff → edit the author → set Full Name. Ghost writes this into <dc:creator>.

Problem: Featured image not in feed

Cause: Ghost includes the feature image inline in content for the default template, but some custom themes don't. Fix: Ensure your RSS template uses {{feature_image}} and prepend it to {{content}} inside an <img> tag. Ghost also supports <media:content> if you add it to the template.

Problem: Members-only posts in public feed

Cause: Default Ghost RSS exposes members-only posts to logged-out crawlers as paywalled snippets. Fix: Either keep paywalled posts out of the public feed, or ensure the public excerpt is at least 400 characters of useful preview text. Don't push 1-line teasers — they look broken in aggregators.

Problem: Feed has no categories

Cause: Ghost uses tags, not categories, and only some themes surface them in RSS. Fix: Confirm your RSS template emits one <category> element per tag:

{{#foreach tags}}<category>{{name}}</category>{{/foreach}}

6. Validation — checks to run before submitting

Run these checks any time you make feed-related changes.

Quick visual scan

Open your feed URL directly in a browser. Check, item by item:

  • Titles are plain text (no <strong> etc.)
  • Each item has a non-trivial body inside <content:encoded> or <description> (eyeball ≥400 chars)
  • pubDate is a real recent date with a timezone
  • dc:creator (or <author>) is a human name
  • At least one image reference exists (<enclosure>, <media:content>, or inline <img>)
  • No items with empty / "0000-00-00" dates
  • No items with the same <link> repeated

Online validators

Tool What it checks
W3C Feed Validator (validator.w3.org/feed/) Structural / namespace correctness
Atom Specification — RSS Auto-Discovery Tags, MIME types, and discovery hints
Feed Validator by Mark Pilgrim (feedvalidator.org) Detailed item-level lint, including date format issues

A valid feed with warnings is usually fine; an invalid feed will likely surface incompletely in Tikker.

Tikker-specific dry run

Before adding to a live channel:

  1. Configure the feed in a draft / test channel first.
  2. After Tikker fetches, check the channel's article cards for:
    • Image showing on the card?
    • Author name on the article detail screen?
    • Body length looks substantial?
    • Date relative to "today" is reasonable?
  3. Edit one source post (small text change + republish), confirm Tikker re-fetches within the next polling interval.

Common red flags

  • All items have the same publication date — your CMS is emitting the feed-generation timestamp instead of the actual post date.
  • Author is the site name — CMS is using site identity instead of post author. Fix the author profile.
  • <description> and <content:encoded> are both the same short excerpt — enable "full text" output in your CMS.
  • Images appear briefly then disappear — image URLs include a session token or referer-restricted path. Use stable CDN URLs.

7. When to ask Tikker for help

If you've validated the feed and items still don't appear, or appear with missing fields, share the feed URL and the affected article URL — most parsing issues become obvious from one or two specific items.