I automated my client's news page to boost their SEO

What this workflow is for

I built this workflow as part of a content strategy to boost SEO for one of our clients. Search engines reward websites that publish fresh, high-quality content consistently, but producing that content manually every day is time-consuming and expensive.

This automation solves this problem by acting as a AI-powered newsroom. It monitors financial RSS feeds around the clock, selects the most impactful stories, rewrites them as original articles in a professional editorial voice but also adds new insights and thoughts, and delivers them to you for direct publishing. Running three times a day, it keeps your website fed with timely market content without any manual effort.

How it works

  1. Trigger: The workflow fires automatically at 08:00, 13:00, and 18:00 every day. You can adjust these times to match your publishing schedule or timezone.
  2. RSS: Four RSS feeds are read simultaneously — Forex News, Stock Market, Economics, and Financial Advisor. These cover a broad range of financial topics so the AI always has diverse stories to choose from. You can swap these for any RSS feeds relevant to your niche.
  3. Merge: All four feeds are merged into a single stream of articles before filtering begins.
  4. Filter: Only articles published in the last 4 hours are kept. This ensures the workflow only works with fresh, timely content and never resurfaces old stories.
  5. Duplicates: Then, articles with identical titles are removed. This handles cases where the same story appears across multiple feeds.
  6. Memory Reader: Before picking articles, the workflow checks its memory of topics already covered today. This prevents the AI from selecting stories too similar to what was already published earlier in the day.
  7. News Picker: AI agent reviews all remaining articles and selects the 2 best candidates based on market impact, presence of specific data points, and topic diversity. Promotional content, press releases, and video-only articles are filtered out automatically.
  8. Memory Recorder: The titles and article snippets of the selected articles are saved to workflow memory so future runs within the same day know what topics to avoid.
  9. Split Out: The 2 selected articles are split into individual items and processed one by one through a loop.
  10. Extract News: Jina AI scrapes the full article content from the original URL, giving the rewriter the complete text rather than just the RSS snippet.
  11. News Reporter: AI agent rewrites the scraped article as a 400–600 word financial news piece. It adds market context, keeps a strong editorial voice, structures the article with a hook and outlook, and adds new thoughts and insights to make the article original.
  12. Publishing: The finished article is published in a Telegram channel. You can change this to a webhook to publish directly on your website.
  13. Memory Cleaner: After every 3 runs (one full day), the topic memory is cleared automatically so the next day starts fresh.

What you need to get started

  • Google Gemini API key

  • Anthropic API key (Claude)

  • Jina AI API key (FREE)

  • Telegram bot token (FREE)

  • Your own RSS feed URLs from rss.app or any RSS source

  • A website with a news section to publish the output

  • You can also add the fact-checking step (I’m planning to add it in the second version) from these guys: [2410.01794] Loki: An Open-Source Tool for Fact Verification

What your website needs to make this SEO-effective

Publishing AI-written articles is only half the job. To get real SEO value from this content, your website needs the right technical foundation:

  • News schema markup: Add NewsArticle structured data (JSON-LD) to every article page. This tells Google the content is news, enables rich results in Google News and Discover, and increases click-through rates significantly. At minimum include: headline, datePublished, dateModified, author, publisher, and image.
  • A dedicated neww page: Google needs a clear, crawlable archive of your articles. A paginated /news section with proper internal linking between articles helps Google understand your site publishes content regularly.
  • Google News sitemap: A separate sitemap-news.xml that lists only articles published in the last 48 hours. This is required for Google News indexing and tells Google’s news crawler exactly where to look. Standard XML sitemaps are not enough on their own.
  • Fast page load speed: News content is time-sensitive. Google deprioritizes slow pages in news results. Aim for under 2 seconds load time — use a CDN, compress images, and avoid render-blocking scripts on article pages.
  • SEO-friendly URL slugs: Every article page should have a clean, keyword-rich URL slug rather than a generic ID or timestamp. For example /news/fed-raises-interest-rates-2026 instead of /news/?p=1234. This helps Google understand what the page is about before even reading it, improves click-through rates in search results, and makes internal linking easier as your archive grows.
  • Author and E-E-A-T signals: Google’s quality guidelines reward Expertise, Experience, Authoritativeness, and Trustworthiness — especially for financial content which falls under YMYL (Your Money Your Life). Add a real or clearly defined author profile, an About page explaining your editorial process, and links to your social or professional profiles.
  • Open Graph and Twitter Card meta tags: These don’t directly affect rankings but they control how your articles look when shared on social media, which drives traffic back to your site and builds indirect SEO authority through backlinks.
5 Likes

Thanks for your feedback!

We now develop the app with our own CMS where we will publish so we don’t have to rely on external services. At the moment, it’s just Telegram. When we will publish to the app, I’ll have to add a few for nodes to generate Slug and Meta Description and convert in a specific JSON format for Strapi. And publishing will be via simple webhook.

The memory architecture is smart workflow-native state for dedup keeps the dependency count down. One edge case worth planning for before the Strapi integration: if the webhook publish step fails silently (Strapi returns a non-200 but the n8n node doesn’t surface it as an error), you’d get a successful execution log with no article actually published. Worth adding an IF node after the webhook that checks the response status code and routes failures to a Slack/Telegram alert before they pile up.

The SEO checklist at the bottom is solid. The NewsArticle JSON-LD + Google News sitemap combo is exactly what moves the needle for news indexing most people skip the news sitemap and wonder why Google News doesn’t pick them up.

What are you using for the Strapi slug generation AI node or a deterministic string transform from the headline?

1 Like

Thanks for you comment @dima_automation !

I didn’t know abotu the error from Strapi. We are currently publishing dozens of blog articles per week and I never encountered that error. I think our devs got that covered already :slight_smile: But still thanks for mentioning that, I really appreciate.

For slug and meta description, I use two different AI agents with Gemini 3.1 pro chat models (it follows instructions pretty consistently) and have a structure output enforced to match the expected by webhook format.

1 Like

That makes total sense. If your devs already have proper error handling wrapped around those Strapi calls, you are definitely ahead of the curve.

Using Gemini 3.1 Pro with structured outputs for the slugs and meta descriptions is exactly the right approach. Forcing the LLM to adhere to a strict schema is the best way to prevent an agent from hallucinating conversational text and breaking the webhook payload downstream.

It sounds like you guys have built a remarkably solid publishing engine. Really appreciate you sharing the architecture details!

1 Like

I was thinking to add the Tavily tool to the agent to verify information on the fly but not sure whether this would improve or worsen fact-checking. Anyone had experience with Internet search tools?

Great workflow! I really like the SEO automation approach you’ve built here.

I noticed you are using the standard RSS Feed Read nodes. I recently built a similar news aggregator and faced a challenge where certain publishers (especially local news sites or those with strict anti-bot measures) blocked the requests because the default node doesn’t simulate a real browser (missing User-Agent header).

I managed to solve this by switching to an HTTP Request node (setting a browser User-Agent) → XML node → Code. This combo acts like a real user and prevents 403 errors effectively.

Have you faced any blocking issues with the RSS nodes yet, or does this setup run smoothly for your clients?

1 Like

Hi @kevindo !

My flow is running smoothly because I didn’t use direct RSS feed of separate providers. I used RSS feeds from the RSS app. You can generate 10 feeds for free and if you need more, you can buy a subscription. So, so far all working well :slight_smile:

1 Like

I do something similar by filtering for high-value stories first, then rewriting only the ones worth posting. It cuts noise, keeps content fresh, and avoids publishing low‑impact updates.

2 Likes

Also, if you need to read the content of the page, you can try Jina AI. It reads the pages so it’s not considered as crawler or bot. I had successfully used it across multiple SEO content creation flows and it never gets blocked.

Hi @Eddistreee welcome to the community!

I wonder what was your approach to do this kind of filtering. Do you use AI agent to do it? I filter by published date with the regex in my flow so it considers only arrticles published within the last 4 hours. How you do it?