Off page SEO skill
Ongoing link-building campaigns that raise domain authority and expand a site's KD ceiling beyond what on-page work alone can earn.
by MoizIbnYousaf·MIT license·GitHub ↗
★ 31 Stars on the repo·Checked
npx degit MoizIbnYousaf/marketing-cli/skills/off-page-seo#main ~/.claude/skills/off-page-seoFiles of Off page SEO
Files 1 file
Show the full text225 lines
Off-Page SEO
On-page work caps out around DR + 20 in achievable KD targets. Off-page work expands that ceiling. This skill generates a prioritized backlink target list across three lanes — directories, listicles, guest posts — and a starter-stack checklist of universal SaaS submission flows. It does not submit anything. The user (or the user's outreach team) does the actual submission.
The off-page half of the SEO operation. Pairs with seo-machine (on-page programmatic sprint) — ship pages with seo-machine, queue outreach with this skill, run them in parallel.
On Activation
- Load brand context:
positioning.md,competitors.md,audience.md,voice-profile.md. Missing files are fine. - Surface what loaded:
Backend Selection
Prefer OpenSEO get_backlinks_overview / get_backlinks_profile / get_domain_overview and openseo-link-prospecting outputs when configured. Preserve backlink target scope, filters, pagination, and provider limits; totals without scope are ambiguous. Otherwise use Exa/web with authority metrics unknown. Full contract: skills/openseo/references/backend-contract.md.
Brand context loaded:
├── Positioning ✓/✗ (drives outreach angle + value-add framing)
├── Competitors ✓/✗ (target list source — Recipe F runs on them)
├── Audience ✓/✗ (selects niche-specific directories + communities)
└── Voice Profile ✓/✗ (shapes outreach email tone if user chains into cold-email)
- If
competitors.mdis missing, prompt the user for 3-7 direct competitors before running Recipe F (the researched-target-list recipe needs competitor domains as input). - Check for
.seo/backlink-targets.jsonin the current project. If present, this is a re-run — show the user the existing target counts and ask whether to refresh or just present the existing list.
When to use vs adjacent skills
| Skill | When | When NOT |
|---|---|---|
off-page-seo (this) |
Building a prioritized backlink target list + universal starter-stack checklist | Doing actual outreach (use cold-email for that) |
seo-machine |
On-page programmatic sprint (alternatives, comparison, use-case pages) | Off-page work — this skill |
seo-audit |
Diagnosing on-site technical issues | Building backlink target lists |
cold-email (in direct-response-copy) |
Writing the outreach emails after target list exists | Generating the target list itself |
startup-launcher |
Launch-day platform submissions (Product Hunt, BetaList, etc.) | Ongoing backlink work post-launch |
The Starter Stack (universal SaaS submission flow)
Every new site should be submitted to these by week 4. Most are free; all are worth a one-time submission. This is the mechanical work — checklist, not creative.
Directories (submit and check off)
| Directory | DR (approx) | Notes |
|---|---|---|
| Product Hunt | 90+ | Single biggest launch-day backlink + traffic source. Coordinate with startup-launcher. |
| G2 | 88+ | Becomes a destination for "[brand] reviews" searches; needs screenshot + verification email. |
| Capterra / GetApp / Software Advice | 80+ | Gartner Digital Markets — same submission flow across all three. |
| SaaSHub | 65+ | Quick win, free. |
| AlternativeTo | 80+ | List as alternative to top 5 competitors. Required free submission. |
| BetaList | 70+ | Only if pre-launch or recently launched. |
| Indie Hackers | 75+ | Products section. Founder-friendly community. |
| TopAlternatives.com / SimilarSiteSearch / Slant.co | 50–65 | Niche but cumulatively useful. |
| Crunchbase | 92+ | Even free profile gets DR pass-through. |
Community surfaces (selective)
| Surface | When to engage | Hard rule |
|---|---|---|
| Niche subreddits | Find via Exa search "site:reddit.com [audience] [problem]" or Ahrefs site-explorer on reddit.com for your keywords | Engage genuinely for 2+ weeks before mentioning the product. Never just post a link. |
| Slack/Discord communities | For your audience persona | Join 3-5, contribute substantively for 2 weeks before mentioning. |
| Hacker News | For technical products | Show HN posts can drive enormous traffic spikes — require a real launch story, not "we built another SaaS." |
Founder outreach (slow-burn channel)
- Founder link trades with complementary (non-competitive) products. Reach out to 5-10 founders of products your audience also uses. Offer mutual blog mentions, "tools we love" pages, or guest posts.
- Guest posts on DR 30+ niche blogs. Find via Recipe F (competitor referring-domains). Pitch 1-2 strong posts per month — not spray-and-pray.
Recipe F — Researched Target List
Use Exa MCP (mktg default) or Ahrefs MCP (if connected) to surface high-value link opportunities your competitors already have. The target list is built FROM your competitors' existing backlinks.
Exa path (mktg default)
For each top-3 competitor:
mcp__exa__web_search_advanced_exa
query: "[competitor-domain] -site:[competitor-domain]"
filter: linksTo:[competitor-domain]
limit: 50
Then for each result, scrape the page (Exa crawling_exa or firecrawl) and extract: domain, page title, anchor text. Filter to DR≥30 sites via a separate exa__company_research_exa lookup, OR by manual triage of well-known authority domains.
Ahrefs appendix (only if you have a paid sub)
If mcp__ahrefs__subscription-info-limits-and-usage returns data AND you want numeric precision on referring-domain DR, run:
mcp__ahrefs__site-explorer-referring-domains
target: <competitor-domain>
where: domain_rating >= 30 AND traffic_dofollow >= 100
order_by: domain_rating:desc
limit: 100
This replaces only the DR-proxy step in the Exa path above. Ahrefs MCP is not in mktg's chained-in ecosystem — keep this as a footnote, not a default.
Then for each candidate domain (Exa-path or Ahrefs-path), filter manually into buckets:
| Bucket | Signal |
|---|---|
| Directory candidates | Site name matches "[category] directory", "best of [category]", "[category] tools", "alternatives to [tool]" |
| Listicle candidates | Blog posts titled "Top X [category] in YYYY" — pitch yourself for inclusion |
| Guest-post candidates | Looks like a blog (*.com/blog/... URLs), DR 30+, posts on your niche topic |
| Skip | PR wires, paid networks, irrelevant niches, sites that link to everyone in the space |
Output schema (.seo/backlink-targets.json)
{
"generated_at": "YYYY-MM-DD",
"research_backend": "exa" | "ahrefs" | "manual",
"directories": [
{ "domain": "g2.com", "dr": 88, "url_to_submit": "https://www.g2.com/products/new", "competitor_uses": ["hootsuite", "buffer"] }
],
"listicles": [
{ "domain": "thedigitalprojectmanager.com", "dr": 65, "url": "https://...", "topic": "Best Twitter monitoring tools", "competitor_listed": "hootsuite" }
],
"guest_posts": [
{ "domain": "indiehackers.com/blog", "dr": 81, "topic_fit": "founder-led marketing" }
]
}
This file lives at the project root under .seo/ and is read by the mktg-backlink-prospector agent on future runs to avoid duplicate prospecting.
Parallel research via mktg-backlink-prospector agent
When the user wants a fresh target list and there are 3+ competitors to research, /cmo should spawn the mktg-backlink-prospector agent rather than running Recipe F inline. The agent fans out competitor-by-competitor research in parallel, returns the consolidated .seo/backlink-targets.json, and frees /cmo's context for the next decision.
See agents/research/backlink-prospector.md for the spawn contract.
Phase template (when seo-machine sprint integration is wanted)
When the user is also running a seo-machine sprint, off-page phases land near the end of the tracker:
### Phase N — Starter-stack directory submissions
**Why:** baseline backlinks from high-DR directories. Cap at 2-3 hours of submission work.
**Scope:**
- [ ] Product Hunt — coordinate launch with startup-launcher
- [ ] G2 — submit product page
- [ ] Capterra — submit product page
- [ ] SaaSHub
- [ ] AlternativeTo — list as alternative to: <competitor-1>, <competitor-2>, ...
- [ ] Indie Hackers — claim product page
- [ ] Crunchbase — basic profile
**Files modified:** none (external work). Track status in `.seo/off-page-status.md`.
### Phase N+1 — Listicle outreach (top 10 targets)
**Why:** "Top X [category]" listicles already rank for our target keywords. Getting added is faster than displacing them.
**Targets (from .seo/backlink-targets.json):**
1. example.com/best-twitter-monitoring-tools (DR 65)
2. example.com/top-social-listening-tools-2026 (DR 72)
3. ... (top 10)
**Action:**
- [ ] For each, find the author via byline or about page
- [ ] Chain into `direct-response-copy` (cold-email mode) for the outreach email
- [ ] Send personalized note: short pitch + screenshot proof of value + link to demo
- [ ] Track reply status in `.seo/off-page-status.md`
**Verification:** 3+ listicles update to include the product within 60 days.
What this skill explicitly does NOT do
- Auto-submit anywhere. Submission flows often need real human review (G2 needs screenshot + URL + verification email; Product Hunt needs a launch coordinator).
- Generate outreach emails. Use
direct-response-copy(cold-email mode) for that. This skill produces the target list; the email writer is a separate skill. - Track ongoing referring-domain growth. That's a weekly check-in task the user owns; this skill just provides the initial target list and refreshes it on demand.
- Run paid networks or link buys. Black-hat. mktg policy: white-hat only.
Honest caveats
Off-page work is slower and more uncertain than on-page work. A great alternatives page ranks within 30–90 days. A great backlink campaign might produce 3 useful links in the first month, 10 in three months. Don't gate the on-page sprint on off-page progress. Ship pages; queue outreach in parallel.
The compounding effect is also lumpy: one DR 80+ listicle is worth ten DR 30 directories. Prioritize quality over quantity in the target list — 10 well-researched targets beat 100 spray-and-pray submissions.
Anti-patterns
| Don't | Why |
|---|---|
| Submit to every directory you find | Low-DR directories don't move the needle; cumulative time cost is high, return is low. Stick to the curated starter stack + Recipe F targets. |
| Mass-pitch the same email to 50 listicle authors | Personalization rate-determines reply rate. 10 personalized pitches outperform 100 templated ones by 5–10× in reply rate. |
| Reciprocal link schemes ("you link to me, I link to you") | Google penalizes these patterns at scale. Founder link trades are different (they're editorial decisions); blind reciprocal exchanges are not. |
| Paid links from PBNs (private blog networks) | Black-hat, manually reviewed by Google, results in penalty when caught. Never. |
| Outreach without value-add | A pitch that's just "please add me" gets ignored. Lead with a screenshot, a stat, or a useful angle the author missed. |
| Gate the on-page sprint on backlink growth | Backlink campaigns are 3–6 month timelines. On-page work compounds in parallel — never let outreach uncertainty stop page shipping. |
Cross-references
agents/research/backlink-prospector.md— parallel-fan-out research agent that builds.seo/backlink-targets.jsonskills/seo-machine/references/off-page.md— the sibling reference doc inside seo-machine's run-time bundleskills/competitive-intel/SKILL.md— producesbrand/competitors.md, the seed input for Recipe Fskills/direct-response-copy/SKILL.md(cold-email mode) — writes the outreach emails once the target list existsskills/startup-launcher/SKILL.md— coordinates launch-day submission to 56 platforms (overlap on Product Hunt + BetaList; this skill handles the ongoing post-launch off-page work)
| 1 | |
| 2 | name off-page-seo |
| 3 | description "Ongoing link-building campaigns that raise domain authority and expand a site's KD ceiling beyond what on-page work alone can earn. Use when the user mentions 'off-page SEO', 'link building', 'directory link building', 'backlink campaign', 'listicle placements', 'guest posts', 'outreach targets', 'get listed in listicles', or asks 'how do I get more domain authority'. Generates a prioritized, researched target list across directories, listicles, and guest-post candidates — does NOT submit anything on the user's behalf. Pairs with `mktg-backlink-prospector` agent for parallel research. For a launch-day push (submit to directories, Product Hunt, BetaList), see /startup-launcher. For measured backlink data — referring domains, backlink counts, rank tracking — see /openseo. Distinct from `seo-machine` (on-page programmatic) and `seo-audit` (technical diagnostic). The off-page half of the SEO operation." |
| 4 | category seo |
| 5 | tier nice-to-have |
| 6 | reads |
| 7 | - brand/positioning.md |
| 8 | - brand/competitors.md |
| 9 | - brand/audience.md |
| 10 | - brand/voice-profile.md |
| 11 | writes [] |
| 12 | triggers |
| 13 | - off-page seo |
| 14 | - link building |
| 15 | - directory link building |
| 16 | - backlink campaign |
| 17 | - guest posts |
| 18 | - outreach targets |
| 19 | - listicle placements |
| 20 | - get listed in listicles |
| 21 | - domain authority |
| 22 | |
| 23 | |
| 24 | # Off-Page SEO |
| 25 | |
| 26 | On-page work caps out around DR + 20 in achievable KD targets. Off-page work expands that ceiling. This skill generates a prioritized backlink target list across three lanes — directories, listicles, guest posts — and a starter-stack checklist of universal SaaS submission flows. **It does not submit anything.** The user (or the user's outreach team) does the actual submission. |
| 27 | |
| 28 | The off-page half of the SEO operation. Pairs with `seo-machine` (on-page programmatic sprint) — ship pages with seo-machine, queue outreach with this skill, run them in parallel. |
| 29 | |
| 30 | ## On Activation |
| 31 | |
| 32 | Load brand context: `positioning.md`, `competitors.md`, `audience.md`, `voice-profile.md`. Missing files are fine. |
| 33 | Surface what loaded: |
| 34 | |
| 35 | ## Backend Selection |
| 36 | |
| 37 | Prefer OpenSEO `get_backlinks_overview` / `get_backlinks_profile` / `get_domain_overview` and `openseo-link-prospecting` outputs when configured. Preserve backlink target scope, filters, pagination, and provider limits; totals without scope are ambiguous. Otherwise use Exa/web with authority metrics `unknown`. Full contract: `skills/openseo/references/backend-contract.md`. |
| 38 | |
| 39 | |
| 40 | Brand context loaded: |
| 41 | ├── Positioning ✓/✗ (drives outreach angle + value-add framing) |
| 42 | ├── Competitors ✓/✗ (target list source — Recipe F runs on them) |
| 43 | ├── Audience ✓/✗ (selects niche-specific directories + communities) |
| 44 | └── Voice Profile ✓/✗ (shapes outreach email tone if user chains into cold-email) |
| 45 | |
| 46 | If `competitors.md` is missing, prompt the user for 3-7 direct competitors before running Recipe F (the researched-target-list recipe needs competitor domains as input). |
| 47 | Check for `.seo/backlink-targets.json` in the current project. If present, this is a re-run — show the user the existing target counts and ask whether to refresh or just present the existing list. |
| 48 | |
| 49 | ## When to use vs adjacent skills |
| 50 | |
| 51 | | Skill | When | When NOT | |
| 52 | |---|---|---| |
| 53 | | `off-page-seo` (this) | Building a prioritized backlink target list + universal starter-stack checklist | Doing actual outreach (use `cold-email` for that) | |
| 54 | | `seo-machine` | On-page programmatic sprint (alternatives, comparison, use-case pages) | Off-page work — this skill | |
| 55 | | `seo-audit` | Diagnosing on-site technical issues | Building backlink target lists | |
| 56 | | `cold-email` (in direct-response-copy) | Writing the outreach emails after target list exists | Generating the target list itself | |
| 57 | | `startup-launcher` | Launch-day platform submissions (Product Hunt, BetaList, etc.) | Ongoing backlink work post-launch | |
| 58 | |
| 59 | ## The Starter Stack (universal SaaS submission flow) |
| 60 | |
| 61 | Every new site should be submitted to these by week 4. Most are free; all are worth a one-time submission. This is the **mechanical work** — checklist, not creative. |
| 62 | |
| 63 | ### Directories (submit and check off) |
| 64 | |
| 65 | | Directory | DR (approx) | Notes | |
| 66 | |---|---|---| |
| 67 | | **Product Hunt** | 90+ | Single biggest launch-day backlink + traffic source. Coordinate with `startup-launcher`. | |
| 68 | | **G2** | 88+ | Becomes a destination for "[brand] reviews" searches; needs screenshot + verification email. | |
| 69 | | **Capterra / GetApp / Software Advice** | 80+ | Gartner Digital Markets — same submission flow across all three. | |
| 70 | | **SaaSHub** | 65+ | Quick win, free. | |
| 71 | | **AlternativeTo** | 80+ | List as alternative to top 5 competitors. Required free submission. | |
| 72 | | **BetaList** | 70+ | Only if pre-launch or recently launched. | |
| 73 | | **Indie Hackers** | 75+ | Products section. Founder-friendly community. | |
| 74 | | **TopAlternatives.com / SimilarSiteSearch / Slant.co** | 50–65 | Niche but cumulatively useful. | |
| 75 | | **Crunchbase** | 92+ | Even free profile gets DR pass-through. | |
| 76 | |
| 77 | ### Community surfaces (selective) |
| 78 | |
| 79 | | Surface | When to engage | Hard rule | |
| 80 | |---|---|---| |
| 81 | | **Niche subreddits** | Find via Exa search "site:reddit.com [audience] [problem]" or Ahrefs site-explorer on reddit.com for your keywords | Engage genuinely for 2+ weeks before mentioning the product. Never just post a link. | |
| 82 | | **Slack/Discord communities** | For your audience persona | Join 3-5, contribute substantively for 2 weeks before mentioning. | |
| 83 | | **Hacker News** | For technical products | Show HN posts can drive enormous traffic spikes — require a real launch story, not "we built another SaaS." | |
| 84 | |
| 85 | ### Founder outreach (slow-burn channel) |
| 86 | |
| 87 | **Founder link trades** with complementary (non-competitive) products. Reach out to 5-10 founders of products your audience also uses. Offer mutual blog mentions, "tools we love" pages, or guest posts. |
| 88 | **Guest posts on DR 30+ niche blogs.** Find via Recipe F (competitor referring-domains). Pitch 1-2 strong posts per month — not spray-and-pray. |
| 89 | |
| 90 | ## Recipe F — Researched Target List |
| 91 | |
| 92 | Use Exa MCP (mktg default) or Ahrefs MCP (if connected) to surface high-value link opportunities your competitors already have. The target list is built FROM your competitors' existing backlinks. |
| 93 | |
| 94 | ### Exa path (mktg default) |
| 95 | |
| 96 | For each top-3 competitor: |
| 97 | |
| 98 | |
| 99 | mcp__exa__web_search_advanced_exa |
| 100 | query: "[competitor-domain] -site:[competitor-domain]" |
| 101 | filter: linksTo:[competitor-domain] |
| 102 | limit: 50 |
| 103 | |
| 104 | |
| 105 | Then for each result, scrape the page (Exa `crawling_exa` or `firecrawl`) and extract: domain, page title, anchor text. Filter to DR≥30 sites via a separate `exa__company_research_exa` lookup, OR by manual triage of well-known authority domains. |
| 106 | |
| 107 | ### Ahrefs appendix (only if you have a paid sub) |
| 108 | |
| 109 | If `mcp__ahrefs__subscription-info-limits-and-usage` returns data AND you want numeric precision on referring-domain DR, run: |
| 110 | |
| 111 | |
| 112 | mcp__ahrefs__site-explorer-referring-domains |
| 113 | target: <competitor-domain> |
| 114 | where: domain_rating >= 30 AND traffic_dofollow >= 100 |
| 115 | order_by: domain_rating:desc |
| 116 | limit: 100 |
| 117 | |
| 118 | |
| 119 | This replaces only the DR-proxy step in the Exa path above. Ahrefs MCP is not in mktg's chained-in ecosystem — keep this as a footnote, not a default. |
| 120 | |
| 121 | Then for each candidate domain (Exa-path or Ahrefs-path), filter manually into buckets: |
| 122 | |
| 123 | | Bucket | Signal | |
| 124 | |---|---| |
| 125 | | **Directory candidates** | Site name matches "[category] directory", "best of [category]", "[category] tools", "alternatives to [tool]" | |
| 126 | | **Listicle candidates** | Blog posts titled "Top X [category] in YYYY" — pitch yourself for inclusion | |
| 127 | | **Guest-post candidates** | Looks like a blog (`*.com/blog/...` URLs), DR 30+, posts on your niche topic | |
| 128 | | **Skip** | PR wires, paid networks, irrelevant niches, sites that link to *everyone* in the space | |
| 129 | |
| 130 | ### Output schema (.seo/backlink-targets.json) |
| 131 | |
| 132 | |
| 133 | { |
| 134 | "generated_at": "YYYY-MM-DD", |
| 135 | "research_backend": "exa" | "ahrefs" | "manual", |
| 136 | "directories": [ |
| 137 | { "domain": "g2.com", "dr": 88, "url_to_submit": "https://www.g2.com/products/new", "competitor_uses": ["hootsuite", "buffer"] } |
| 138 | ], |
| 139 | "listicles": [ |
| 140 | { "domain": "thedigitalprojectmanager.com", "dr": 65, "url": "https://...", "topic": "Best Twitter monitoring tools", "competitor_listed": "hootsuite" } |
| 141 | ], |
| 142 | "guest_posts": [ |
| 143 | { "domain": "indiehackers.com/blog", "dr": 81, "topic_fit": "founder-led marketing" } |
| 144 | ] |
| 145 | } |
| 146 | |
| 147 | |
| 148 | This file lives at the project root under `.seo/` and is read by the `mktg-backlink-prospector` agent on future runs to avoid duplicate prospecting. |
| 149 | |
| 150 | ## Parallel research via mktg-backlink-prospector agent |
| 151 | |
| 152 | When the user wants a fresh target list and there are 3+ competitors to research, /cmo should spawn the `mktg-backlink-prospector` agent rather than running Recipe F inline. The agent fans out competitor-by-competitor research in parallel, returns the consolidated `.seo/backlink-targets.json`, and frees /cmo's context for the next decision. |
| 153 | |
| 154 | See `agents/research/backlink-prospector.md` for the spawn contract. |
| 155 | |
| 156 | ## Phase template (when seo-machine sprint integration is wanted) |
| 157 | |
| 158 | When the user is also running a `seo-machine` sprint, off-page phases land near the end of the tracker: |
| 159 | |
| 160 | |
| 161 | ### Phase N — Starter-stack directory submissions |
| 162 | |
| 163 | **Why:** baseline backlinks from high-DR directories. Cap at 2-3 hours of submission work. |
| 164 | |
| 165 | **Scope:** |
| 166 | - [ ] Product Hunt — coordinate launch with startup-launcher |
| 167 | - [ ] G2 — submit product page |
| 168 | - [ ] Capterra — submit product page |
| 169 | - [ ] SaaSHub |
| 170 | - [ ] AlternativeTo — list as alternative to: <competitor-1>, <competitor-2>, ... |
| 171 | - [ ] Indie Hackers — claim product page |
| 172 | - [ ] Crunchbase — basic profile |
| 173 | |
| 174 | **Files modified:** none (external work). Track status in `.seo/off-page-status.md`. |
| 175 | |
| 176 | ### Phase N+1 — Listicle outreach (top 10 targets) |
| 177 | |
| 178 | **Why:** "Top X [category]" listicles already rank for our target keywords. Getting added is faster than displacing them. |
| 179 | |
| 180 | **Targets (from .seo/backlink-targets.json):** |
| 181 | 1. example.com/best-twitter-monitoring-tools (DR 65) |
| 182 | 2. example.com/top-social-listening-tools-2026 (DR 72) |
| 183 | 3. ... (top 10) |
| 184 | |
| 185 | **Action:** |
| 186 | - [ ] For each, find the author via byline or about page |
| 187 | - [ ] Chain into `direct-response-copy` (cold-email mode) for the outreach email |
| 188 | - [ ] Send personalized note: short pitch + screenshot proof of value + link to demo |
| 189 | - [ ] Track reply status in `.seo/off-page-status.md` |
| 190 | |
| 191 | **Verification:** 3+ listicles update to include the product within 60 days. |
| 192 | |
| 193 | |
| 194 | ## What this skill explicitly does NOT do |
| 195 | |
| 196 | **Auto-submit anywhere.** Submission flows often need real human review (G2 needs screenshot + URL + verification email; Product Hunt needs a launch coordinator). |
| 197 | **Generate outreach emails.** Use `direct-response-copy` (cold-email mode) for that. This skill produces the target list; the email writer is a separate skill. |
| 198 | **Track ongoing referring-domain growth.** That's a weekly check-in task the user owns; this skill just provides the initial target list and refreshes it on demand. |
| 199 | **Run paid networks or link buys.** Black-hat. mktg policy: white-hat only. |
| 200 | |
| 201 | ## Honest caveats |
| 202 | |
| 203 | Off-page work is slower and more uncertain than on-page work. A great alternatives page ranks within 30–90 days. A great backlink campaign might produce 3 useful links in the first month, 10 in three months. **Don't gate the on-page sprint on off-page progress.** Ship pages; queue outreach in parallel. |
| 204 | |
| 205 | The compounding effect is also lumpy: one DR 80+ listicle is worth ten DR 30 directories. Prioritize quality over quantity in the target list — 10 well-researched targets beat 100 spray-and-pray submissions. |
| 206 | |
| 207 | ## Anti-patterns |
| 208 | |
| 209 | | Don't | Why | |
| 210 | |---|---| |
| 211 | | Submit to every directory you find | Low-DR directories don't move the needle; cumulative time cost is high, return is low. Stick to the curated starter stack + Recipe F targets. | |
| 212 | | Mass-pitch the same email to 50 listicle authors | Personalization rate-determines reply rate. 10 personalized pitches outperform 100 templated ones by 5–10× in reply rate. | |
| 213 | | Reciprocal link schemes ("you link to me, I link to you") | Google penalizes these patterns at scale. Founder link trades are different (they're editorial decisions); blind reciprocal exchanges are not. | |
| 214 | | Paid links from PBNs (private blog networks) | Black-hat, manually reviewed by Google, results in penalty when caught. Never. | |
| 215 | | Outreach without value-add | A pitch that's just "please add me" gets ignored. Lead with a screenshot, a stat, or a useful angle the author missed. | |
| 216 | | Gate the on-page sprint on backlink growth | Backlink campaigns are 3–6 month timelines. On-page work compounds in parallel — never let outreach uncertainty stop page shipping. | |
| 217 | |
| 218 | ## Cross-references |
| 219 | |
| 220 | `agents/research/backlink-prospector.md` — parallel-fan-out research agent that builds `.seo/backlink-targets.json` |
| 221 | `skills/seo-machine/references/off-page.md` — the sibling reference doc inside seo-machine's run-time bundle |
| 222 | `skills/competitive-intel/SKILL.md` — produces `brand/competitors.md`, the seed input for Recipe F |
| 223 | `skills/direct-response-copy/SKILL.md` (cold-email mode) — writes the outreach emails once the target list exists |
| 224 | `skills/startup-launcher/SKILL.md` — coordinates launch-day submission to 56 platforms (overlap on Product Hunt + BetaList; this skill handles the ongoing post-launch off-page work) |
| 225 |
Discussion
Browse more free Claude skills or everything in Marketing.