Actual Headaches Debugging Blogger’s Comment Moderation
Who Controls What in Blogger Comments? (Spoiler: Not You)
Blogger’s comment system feels like someone duct-taped together 2010’s idea of community moderation with whatever legacy code survived the Google+ implosion. If you’ve set it to “Moderate” and expected an actual queue, get ready for some weirdness. There are at least three separate systems silently changing your permissions and visibility behaviors, and none of that shows up in the UI.
I once had a comment thread just vanish after switching a blog from embedded comments to full-page. Didn’t think much of it until I realized the API was still showing those comments as pending — even though the blog UI showed nothing. Turns out Blogger stores moderation status per-thread, not globally, and flipping comment display type essentially invalidates the moderation link.
Quick note: if you moderate comments via email links (as in, you click “Publish” straight from Gmail), you might occasionally unhide spam-tagged comments without realizing. That filter can override your manual choice in rare cases.
The Hidden Spam Filter That Still Publishes Stuff
Even when moderation is enabled, some comments sneak through because the spam filter isn’t actually tied to moderation logic. Blogger uses something similar to Akismet (but Google-scale-bad) to classify spam, but it can push a comment live if it thinks it’s legit… even on “Hold All” settings. I caught this when a comment that smelled heavily of GPT stuffing somehow published automatically. No notification, no queue item, just… live.
I had to dig into the old Blogger comment feeds (yes, those still exist) using the comments/default
ATOM feed and compare timestamps. The comment showed up in the public feed, but not in my moderation tab. So yeah — not all comments go through the moderation interface, regardless of settings. Wild.
Useful trick: Append
?alt=json
to your blog’s comment feed URL to verify comment timestamps and status through the raw data. It reveals things the admin UI doesn’t log or surface.
Email Moderation Links Can Expire or Misfire
Here’s an edge case I slammed into way too late one night: if a reader drops a comment while your moderation setting is on “Sometimes” — specifically, moderating only comments older than X days — the link you get by email might 404 if your post’s publish date changed after the comment came in. I repeat: blog post date edits mess with the moderation link route.
Also, if you use an email alias (like user+blog@gmail.com), those moderation links break authentication. I saw the redirect go to accounts.google.com/ServiceLogin
but it would loop back to the blog home page — not the approval interface.
I ended up approving comments directly through the Blogger dashboard after manually identifying them in feeds. At which point: why even have email moderation if your own links self-destruct when you touch the blog?
Switching to Embedded Comments: The Silent Breaker
There’s a frustrating behavioral bug where switching from popup or full-page comment type to embedded mode (you know, the most usable one) instantly breaks moderation for ongoing threads. Specifically, any comment left when your blog was on full-page mode doesn’t obey the current moderation rules.
Weird part? These older comments can be replied to by users, even though new top-level comments get held. It seems like Blogger caches per-post comment behavior in a way that doesn’t fully change when you update settings. I replicated this by toggling my comment settings daily for a week and seeing what got held or not — by day three, only brand-new posts respected moderation updates.
This leads to a half-moderated site where recent posts are locked tight, but older pages sprawl with semi-junky replies. You’ll notice it most on SEO filler pages people wander onto from Google. If you’ve got a fake customer reviews page or a listicle, expect rogue replies there despite your best moderation efforts.
Blogger Comment API: Barely Documented but Still Your Friend
If I hadn’t stumbled into the Blogger API indexes out of sheer spite, I wouldn’t have realized you can directly GET and DELETE comment entries without the UI at all. It’s cumbersome (requires auth tokens and some heavy parsing), but for large blogs, it’s how you crawl out of moderation hell.
GET https://www.googleapis.com/blogger/v3/blogs/BLOG_ID/posts/POST_ID/comments?status=EMBEDDED
Yes, that “status” param means zero sense — this endpoint gives you all comments, regardless of moderation setting. BUT if comment entries have a published
field and this field is null, it means the comment is in moderation limbo. This is not documented. I found it from a GitHub thread dating back to 2017 and confirmed it still holds.
Bear in mind: there’s no way to update status via public APIs at the time I checked. So you can read trashed or held comments programmatically, but approvals still require dashboard action (or maybe some nasty puppeteer magic I haven’t committed hard enough for).
Comment Auth Is Loosely Enforced and That’s a Problem
Blogger’s notion of a “Logged-in user” is porous. If you set comment permissions to “Registered Users,” anonymous browsers can still post if they access an outdated mobile template that doesn’t correctly block the reply form. Yep, template-specific gaps in enforcement. I found this by brute-viewing older mobile versions of my site using my phone’s network debug tools. Legit showed unauthenticated POSTs getting accepted.
You can either kill the mobile comments template completely (not ideal), or embed some JavaScript to kill the comment form when !window.google
or similar detection fails. Not elegant, but neither is getting spammed by emoji crypto bots on mobile only.
Odd Behavior With Comment Labels and PageViews
Blogger messes with stat reporting if you approve comments retroactively on high-volume posts. On three occasions, I saw sudden spikes in traffic that weren’t real visitor pushes — turns out moderated comments (when published later) pushed those pages to the Blogger Popular Posts widget queue. The widget is based on recent visibility, not actual traffic. Also not documented.
If you’re monetizing with AdSense, check your earnings logs after comment approval sprees. One time I got flagged by AdSense’s Invalid Traffic filters because my own comment publishing tripped a traffic anomaly. Didn’t disable my account, but I had to file a support request just so reports would clear.
A Mix of Extremely Specific Tips (I Journaled These While Debugging)
- Never moderate solely via email — cross-check the dashboard if the comment feels even slightly spammy.
- When switching templates, immediately test the comment form in incognito mobile mode — template inheritance will break expected behaviors.
- If you’re using third-party widgets or theme packs, check whether they override comment visibility rules (e.g. hiding pending items via CSS).
- Don’t trust “Comments per page” display limits — they silently truncate moderation visibility on long-threaded posts.
- Use the Blogger JSON feed with a filter like
?max-results=500
if you want to audit comment data at scale. - Set up an auto-forward Gmail filter to catch moderation requests from secondary authors, especially if you co-own older blogs.
There’s No Real Audit Trail for Moderation
This one probably drives me the most nuts. There is zero log or history of who published or trashed what. If you’re part of a multi-author blog, and someone reviews a comment from their account — that action wipes the notification for all others. No logs, no style marker to indicate who acted.
I worked with three authors once on a product review blog, and we ended up using a shared Google Sheet just to track who approved what on high-traffic posts. Google doesn’t seem interested in sorting this out, and until then, you’re one accidental approval away from auto-publishing a link farm someone meant to kill.
No amount of Blogger’s barebones UI will save you from human inconsistency — and the platform sure doesn’t help keep you straight.