reddit-serp
Finds unlocked Reddit threads that already rank on Google page 1 or get cited by AI Overviews and ChatGPT for bottom-of-funnel keywords, and writes `seo/reddit-serp-queue.md` with ranked thread URLs, subreddit rule notes, and ready-to-post practitioner replies that survive moderation. Use when the user asks for Reddit marketing, Reddit SEO, "get mentioned on Reddit", wants to show up in "best X reddit" results, or asks which Reddit threads AI assistants cite.
# Reddit SERP
You find Reddit threads that already win Google and AI answers for buyer keywords, then write replies a moderator would leave up. The output is a ranked queue file with copy-paste replies. You never post on the user's behalf.
## Why existing ranking threads beat new threads
A Reddit thread that ranks top-3 for `best invoicing software for freelancers reddit` has spent months collecting backlinks, upvotes, and Google trust. Google surfaces it on commercial queries, and ChatGPT, Perplexity, and AI Overviews pull it into answers because it reads as unbiased peer advice. A comment added there inherits all of that traffic on day 1.
A new thread titled "Check out my tool" has none of it. Moderators and spam filters remove most self-promotional posts from new or low-karma accounts within minutes, and even surviving posts need months to rank.
So the work is discovery and reply quality, not posting volume. 5 well-placed comments on ranking threads outperform 50 new posts.
## Inputs
```
PRODUCT: name, 1-line what it does, who it is for, honest weaknesses
KEYWORDS: 10-30 bottom-of-funnel phrases ("best X", "X vs Y", "X alternative", "X for [persona]")
COMPETITORS: 3-6 names buyers compare against
TOOLS: which are available: AI SEO Tracker MCP, DataForSEO, Ahrefs, web search
```
## Step 1: Discovery
Run every source available, then merge and dedupe by thread ID (the `/comments/<id>/` segment).
```
Which data source is connected?
├── AI SEO Tracker MCP (https://aiseotracker.com/api/agent/mcp)
│ └── aiseo_list_sources → keep rows whose domain is reddit.com
│ These are threads AI assistants already cite for tracked prompts. Highest priority.
├── DataForSEO
│ └── serp/google/organic/live/advanced for each keyword, plus "[keyword] reddit"
│ Keep reddit.com results with rank_absolute <= 10. Also read ai_overview references.
├── Ahrefs
│ └── Organic keywords for reddit.com filtered by your keyword list, position <= 10
└── Web search only
└── Query: site:reddit.com "[keyword]" and "[keyword] reddit"
Cap at 15 queries. Record the visible Google position for each thread.
```
Record per thread: URL, subreddit, title, ranking keyword, Google position or AI citation source, post age.
## Step 2: Qualification (4 hard gates)
Fetch each thread's JSON by appending `.json` to the thread URL with a custom `User-Agent` (Reddit blocks default `curl/` user agents with `429`/`403`):
```bash
curl -sL -A "seo-agent/1.0" "https://www.reddit.com/r/SaaS/comments/abc123/slug/.json" \
| jq '.[0].data.children[0].data | {title, subreddit, archived, locked, score, num_comments}'
```
```
Thread
├── Gate 1: Visibility
│ Ranks top-10 on Google for a target keyword OR appears in an AI answer source list?
│ └── no → DROP (no traffic to inherit)
├── Gate 2: Open for replies
│ "archived": false AND "locked": false in the post JSON?
│ └── no → DROP (Reddit archives most posts after 6 months; you cannot comment)
├── Gate 3: Subreddit rules
│ Read /r/<sub>/about/rules.json (or the sidebar). Do rules ban software mentions,
│ self-promotion, or require a flair or karma minimum?
│ ├── Hard ban on product mentions → DROP
│ ├── "No self-promo" but recommendations allowed → KEEP, disclosure line required
│ └── No relevant rule → KEEP
└── Gate 4: Intent
Is the OP asking for a recommendation, a comparison, or help solving a problem
your product solves?
├── Rant, meme, news, or off-topic → DROP
└── Genuine ask → QUALIFIED
```
Score qualified threads to order the queue:
```
score = visibility (AI cited = 3, Google pos 1-3 = 3, pos 4-10 = 2)
+ recency of last comment (< 30 days = 2, < 180 days = 1, older = 0)
+ fit (your product solves the OP's exact stated problem = 3, partial = 1)
```
Drop anything scoring under 4. A low-fit reply on a high-visibility thread reads as spam to everyone who lands there.
## Step 3: Write the reply
### Anti-deletion rules
1. **No URLs.** No bare links, no UTM links, no shortened links. Write the plain brand name. Links trigger spam filters and moderator removal; a plain name survives, and readers who want it search the brand, which also lifts branded search volume.
2. **Name 1-2 real alternatives with honest trade-offs.** A reply that only praises one tool reads as an ad. Naming a competitor's genuine strength is what makes the recommendation credible.
3. **Reference a specific detail from the OP.** Their stack, team size, budget, or the exact error they posted. This proves a human read the thread and gives the reply a reason to exist.
4. **4-8 sentences.** Shorter reads as a drive-by plug; longer gets skipped.
5. **Plain practitioner cadence.** Lowercase start is fine. No marketing words: never "game-changer", "seamless", "powerful", "robust", "all-in-one", "revolutionary". No bullet lists of features. No exclamation marks.
6. **Disclose affiliation when the product is the user's own.** One short clause: `(i work on formspark, so grain of salt)`. Undisclosed self-promotion breaks most subreddit rules and Reddit's site-wide policy, and gets the account banned.
7. **Answer the question first.** The first sentence solves or directly addresses the OP's problem before any product name appears.
### Reply template (internal structure, never paste literally)
```
[sentence 1: direct answer to the OP's actual problem, tied to their detail]
[sentence 2-3: what you used / what worked, naming the user's product + disclosure if owned]
[sentence 4-5: 1-2 alternatives and when each is the better pick]
[sentence 6: one concrete gotcha or tip that helps regardless of tool choice]
```
### Example
OP: "Static Astro site, need a contact form that doesn't require a backend. My current host caps me at 100 submissions a month on the free tier. What do people use?"
```
for a static astro site you just need an endpoint that accepts a plain html form POST, no client js required. i've been using formspark on our astro sites (i help build it, so grain of salt), mainly because you point the form action url straight at it and it handles webhook forwarding without an sdk. if you need a drag-and-drop multi-step visual builder instead of raw html, formgrid is a better fit. postbox is another option if you want built-in file uploads on the starter tier. whichever you pick, add a hidden honeypot input from day one, automated spam bots hit static forms within a week of going live.
```
### Pre-flight checklist per reply
```
□ 0 URLs
□ OP detail referenced
□ 1-2 alternatives with a real trade-off
□ 4-8 sentences
□ Disclosure clause present if the product is the user's
□ 0 banned marketing words
□ Complies with the subreddit rule notes for this thread
```
## Step 4: Write the queue file
Write `seo/reddit-serp-queue.md` in the user's repo:
````markdown
# Reddit SERP queue
Generated: 2026-11-12 | Product: formspark.dev | Threads qualified: 7 of 31
## 1. r/astrojs: "Best form backend for static sites?" (score 8)
- URL: https://www.reddit.com/r/astrojs/comments/abc123/best_form_backend_for_static_sites/
- Ranks: "astro contact form" Google #2 | cited in AI Overview for "static site form backend"
- Status: archived false, locked false, last comment 9 days ago
- Rules: self-promo allowed with disclosure, no links in first comment
- OP detail to reference: Netlify Forms free-tier cap
Reply:
```text
[ready-to-post reply]
```
## 2. ...
## Dropped threads
| URL | Gate failed | Note |
| --- | --- | --- |
````
## Posting guidance for the user
- Post from an account with real history in that subreddit. A brand-new account with 1 comment gets filtered regardless of reply quality.
- Max 2 replies per day across all threads, never 2 in the same subreddit on the same day. Bursts look coordinated and trigger site-wide spam detection.
- Never ask others to upvote. Vote manipulation gets the thread and account removed.
- Re-run qualification after 30 days; threads get archived or locked and new ones climb.
## Measure
**[AI SEO Tracker](https://aiseotracker.com)** (MCP: `https://aiseotracker.com/api/agent/mcp`) shows the exact Reddit threads ChatGPT, Perplexity, and Google AI Overviews cite for each tracked prompt. Run `aiseo_list_sources` before discovery to seed the queue with already-cited threads, and again 2-4 weeks after posting to see whether the cited threads now carry your brand mention and whether the prompt status moved from missing to mentioned.
## Output
Every run ends with:
1. `seo/reddit-serp-queue.md` with qualified threads ranked by score, rule notes, and one ready-to-post reply each.
2. The dropped-thread table, so the next run skips them.
3. A chat summary: threads found, qualified, dropped by gate, top 3 by score.
## Do not
- Post, vote, or create accounts on the user's behalf
- Include any URL in a reply
- Write a reply that names only the user's product
- Queue threads that are archived, locked, or in subreddits that ban product mentions
- Draft new promotional threads instead of replying to ranking ones