cd /news/ai-tools/how-i-redesigned-4-years-of-blog-pos… · home topics ai-tools article
[ARTICLE · art-23661] src=dev.to pub= topic=ai-tools verified=true sentiment=· neutral

How I Redesigned 4 Years of Blog Posts (196 of them!) Overnight with AI

A solo developer automated the overnight renewal of 196 blog posts on aicoreutility.com using Gemini Flash-Lite, after Google AdSense rejected the site for "insufficient content quality." The pipeline archived 31 low-value posts, rewrote 143 posts at a cost of approximately ₩300 total, and fixed issues including outdated year references and Korean-language slugs. The developer has reapplied to AdSense and is awaiting approval.

read3 min publishedJun 7, 2026

📅 Written on 2026-05-10 — A retrospective on the actual renewal of aicoreutility.com, which I operate myself.

When I applied to AdSense for aicoreutility.com, I received a clear rejection reason: "Insufficient content quality." I had migrated 196 posts from Tistory, where I had written for 4 years, onto the site. Over half of these posts were short (under 1500 characters) and old (from 2020-2023).

I had two options:

I'm a solo developer. I don't have time to rewrite 196 posts while taking care of my family. So, I built an automated renewal pipeline using Gemini Flash-Lite.

Not every post is worth saving. Valueless posts are a negative for SEO. I archived 31 posts based on two criteria.

-- Posts that are very short and have almost no views
UPDATE blog_posts SET status='archived'
WHERE length(content_original) < 1500 AND view_count <= 3;

-- Posts of moderate length + low value + old
UPDATE blog_posts SET status='archived'
WHERE length(content_original) < 2500
  AND view_count <= 2
  AND ai_score < 7
  AND original_published_at < '2024-01-01';

199 posts → 168 posts. I lost 31 posts, but the average quality increased.

A simple "rewrite this post" prompt leads to hallucinations. I broke it down into 5 stages.

The model used was gemini-2.5-flash-lite

. Cost per post is about ₩2.

When I reviewed the first batch of results, the post body contained phrases like "5 things in 2024." It's currently 2026. Gemini was using old years from its training data.

I added the current KST time at the beginning of every stage's prompt.

def _now_context() -> str:
    now = datetime.now(KST)
    return (
        f"[Current Time — Must Adhere]\n"
        f"Today is {now.strftime('%Y년 %m월 %d일')} (KST).\n"
        f"When referring to years/time periods, please use {now.year} as the basis. "
        f"Do not arbitrarily use old years from training data (like 2023, 2024, etc.).\n"
    )

Solved.

I ran 130 posts at once, but it stopped halfway due to Gemini API rate limits. It halted at post 49. Would running it again start from scratch?

I added an HTML marker at the end of each post.

<!-- renewed-2026 -->

The script skips posts with this marker. Even if it stops, running it again only processes the remaining ones. In the end, I ran it twice more to complete 143 posts.

Some original post slugs were in Korean, like /blog/리액트-훅-정리

. While they work in browser address bars, they cause issues with SEO and social media sharing.

I normalized all slugs to ASCII and used a sha1 hash as a fallback.

I forcefully added two sections to the renewed posts.

This is to prevent readers from wondering "Is this an old post?" and to help AdSense recognize it as "fresh content."

Metric Value
Renewal Cost Approx. ₩300 (Gemini Flash-Lite, 143 posts)
Total Time Spent Approx. 35 minutes (script execution time)
Published Posts 146 (143 renewed + 3 native)
Archived Posts 53
Consistency 100% (all posts timestamped for 2026)

I've reapplied to AdSense and am waiting for the results. If approved, I plan to place ad units in only one location that doesn't disrupt readability. I won't enable auto ads.

── more in #ai-tools 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-i-redesigned-4-y…] indexed:0 read:3min 2026-06-07 ·