SEO
Nexus-JPF/note-companion
Use and read this skill immediately if the user request is in any way related to SEO or a site's organic search or AI search presence.
Pre-launch checklist for shipping a new website or web app. An agent skill from samber/cc-skills.
$ npx skills add samber/cc-skills --skill site-launch-checklist -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install samber/cc-skills site-launch-checklist --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/samber/cc-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/site-launch-checklist .claude/skills/site-launch-checklist && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "site-launch-checklist" agent skill from https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklist into .claude/skills/site-launch-checklist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "site-launch-checklist", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklistType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add samber/cc-skills --skill site-launch-checklist -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install samber/cc-skills site-launch-checklist --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samber/cc-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/site-launch-checklist .agents/skills/site-launch-checklist && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "site-launch-checklist" agent skill from https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklist into .agents/skills/site-launch-checklist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "site-launch-checklist", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add samber/cc-skills --skill site-launch-checklist -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install samber/cc-skills site-launch-checklist --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samber/cc-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/site-launch-checklist .cursor/skills/site-launch-checklist && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "site-launch-checklist" agent skill from https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklist into .cursor/skills/site-launch-checklist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "site-launch-checklist", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/samber/cc-skills.git --path skills/site-launch-checklist--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add samber/cc-skills --skill site-launch-checklist -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install samber/cc-skills site-launch-checklist --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samber/cc-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/site-launch-checklist .gemini/skills/site-launch-checklist && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "site-launch-checklist" agent skill from https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklist into .gemini/skills/site-launch-checklist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "site-launch-checklist", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install samber/cc-skills site-launch-checklistInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add samber/cc-skills --skill site-launch-checklist -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/samber/cc-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/site-launch-checklist .github/skills/site-launch-checklist && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "site-launch-checklist" agent skill from https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklist into .github/skills/site-launch-checklist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "site-launch-checklist", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add samber/cc-skills --skill site-launch-checklist -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install samber/cc-skills site-launch-checklist --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samber/cc-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/site-launch-checklist .opencode/skills/site-launch-checklist && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "site-launch-checklist" agent skill from https://github.com/samber/cc-skills/tree/main/skills/site-launch-checklist into .opencode/skills/site-launch-checklist/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "site-launch-checklist", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
site-launch-checklistPre-launch checklist for shipping a new website or web app. An agent skill from samber/cc-skills.
Site Launch Checklist is an agent skill from samber/cc-skills. Pre-launch checklist for shipping a new website or web app. Scope: analytics (GA4, PostHog, Google Search Console, Ahrefs), DNS, TLS and backups, legal and CNIL/GDPR compliance, security headers, SEO and GEO (robots.txt, sitemaps, llms.txt, hreflang, schema markup, keyword research), copywriting voice via TONE.md and a humanizer pass, OpenGraph and social previews, favicons and web manifest, Lighthouse, Core Web Vitals and WCAG quality gates, directory submissions, Product Hunt, G2/Capterra reviews, post-launch…
Its SKILL.md is about 13k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including reference files and assets (for example `assets/weekly-seo-antigravity.md`, `assets/weekly-seo-claude-code.md` and `assets/weekly-seo-copilot-cli.md`). Compatibility notes: Designed for Claude Code, Codex or similar harness. Requires internet access for directory submissions, G2/Capterra reviews, and AI citation checks.
It sits in Marketing & SEO, covering Product launch strategy, Technical SEO and Web performance. It works with PostHog, Ahrefs, Google Analytics and Google Search Console. The repository describes itself as: 🧑🎨 A collection of agentic skills that works. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 123cb15. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadEditWriteGlobGrepAgentAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnpxopenssljqclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
hogpost.samber.devgithub.comnewsite.comsecurityheaders.comdirectory.comapi.securityheaders.comAlso links to:
search.google.comvalidator.schema.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code, Codex or similar harness. Requires internet access for directory submissions, G2/Capterra reviews, and AI citation checks.
From compatibility in the SKILL.md frontmatter.
Site Launch Checklist loads about 13k tokens when it runs, and up to ~32k if it reads all its reference files. Until then it costs about 212 tokens; SKILL.md has 6,302 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
oppler, Vault, or equivalent). Not in a `.env` file on someone's laptop.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from samber/cc-skills at commit 123cb15, republished under its MIT licence (© samber). 6,302 words, ~12,950 tokens.
.claude/skills/site-launch-checklist/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.Questions: Ask the user through the environment's question tool — never as plain-text prose. One question at a time, 2–4 tappable options, wait for the answer. If the environment has no question tool, ask in prose with the same options, one at a time.
Pre-launch audit and setup workflow for shipping a new website. Opinionated for Cloudflare DNS + Vercel hosting + PostHog + Legal context.
This skill is intentionally interactive. Ask aggressively instead of assuming. The user will tap, not type.
Always ask these questions at the start of a run (one at a time, in this order):
doc-site | marketing/lead-gen | SaaS-app | training/paid-course | personal-portfoliogreenfield-new-domain | migration-need-301-redirects | replacing-existing-on-same-domainsingle-locale | en | fr+en | other-multihogpost.samber.dev | set-up-new-proxy | skip-PostHoguse-default-for-site-type | customize-per-bot | block-allclaude-chrome-extension | playwright | neither-skip-browser-checksAsk again at every decision point throughout the phases, including:
customize-per-botstrict-default-src-none | balanced-allow-self | permissive-for-marketingNever proceed past a decision point without explicit user input. Verbose checklists without checkpoints are not the goal.
Never install any MCP server or skill without explicit user confirmation. Always ask via the question tool before running npx skills add, claude mcp add, or any equivalent install command — even when the skill selection workflow proposes a curated subset.
Six skill packs are useful for site launches. Never install full multi-skill packs. The actual subset to install is decided at invocation time based on the site type the user confirms.
| Pack | What it covers | Typically useful for |
|---|---|---|
AgriciDaniel/claude-seo | SEO + GEO + schema + hreflang + sitemaps audits, parallel sub-agents | All site types |
addyosmani/web-quality-skills | Lighthouse, Core Web Vitals, accessibility, performance, best practices | All site types |
trailofbits/skills | Security audit (OWASP, headers, dependencies) | All site types |
aaron-he-zhu/seo-geo-claude-skills | 20 SEO+GEO skills, CORE-EEAT + CITE frameworks, /seo: slash commands | Content-heavy sites, competitive niches |
coreyhaines31/marketingskills | ~30 marketing skills (CRO, copywriting, ads, popups, email, paywalls, etc.) | marketing/lead-gen, SaaS-app, training/paid-course |
jonathimer/devmarketing-skills | 33 developer-marketing skills (persona, docs-as-marketing, technical tutorials, etc.) | doc-site, SaaS-app for developers |
After the user confirms site type, for each pack relevant to that site type:
npx skills add owner/repo --listinstall-as-proposed | let-me-modify | skip-this-pack) otherwise.npx skills add owner/repo --skill A B CRules:
--list for the current state. Pack contents change.npx skills add owner/repo without --skill (that installs everything).doc-site: claude-seo, web-quality-skills, trailofbits, seo-geo-claude-skills, devmarketing-skillsmarketing/lead-gen: claude-seo, web-quality-skills, trailofbits, seo-geo-claude-skills, marketingskillsSaaS-app: all sixtraining/paid-course: claude-seo, web-quality-skills, trailofbits, marketingskillspersonal-portfolio: claude-seo, web-quality-skills, trailofbits, seo-geo-claude-skills (lightweight subset)This avoids importing 80+ skills the user does not need, avoids going stale on sub-skill names, and avoids overfitting to a single pack version.
When delegating during a phase, do not duplicate work this skill orchestrates. Call the specialist with a narrow scope (e.g., "run only the security headers sub-audit on URL X").
Run this BEFORE any other phase. Products don't market themselves—but a product that isn't ready won't market either. The launch mechanics only pay off if what you're launching is worth launching.
Two failure modes kill launches from opposite ends:
The middle path is SLC — Simple, Lovable, Complete (Jason Cohen), the antidote to shipping a bare MVP that's minimal but unlovable. Don't launch a stub nobody wants; don't wait for a bloated everything-app. A launchable v1 is:
The gate: If it's not yet Simple, Lovable, and Complete, you're in "Just One More Feature" territory only when adding scope is what's missing—otherwise you're in Stealth Mode and should ship. Cut scope until one thing is lovable and complete, then launch that. SLC gives you a real launch now instead of a perfect launch never.
Quick check before running the phases:
Directory submission readiness (from directory-submissions skill): Ask these 9 questions. If any are "no", they're not ready — help them build the missing piece first.
A "no" on any of 1–7 is a hard block. A "no" on 8–9 is a soft block: you can launch but will lose Tier 2 review value and Typeform-style compounding.
ORB Channel Strategy (from launch skill): Structure your launch marketing across three channel types. Everything should ultimately lead back to owned channels.
You own the channel (though not the audience). Direct access without algorithms or platform rules.
Platforms that provide visibility but you don't control. Algorithms shift, rules change, pay-to-play increases.
Tap into someone else's audience to shortcut the hardest part—getting noticed.
Pass the gate, then run the phases below.
Every site has visible marketing copy (hero, features, CTAs, meta descriptions, OG descriptions, blog posts, 404 page text). Two layers of polish are mandatory before launch:
TONE.md once per siteAsk the user: "Does this site already have a TONE.md?" (yes-already-exists | no-create-from-template | skip-use-default).
If creating: write it to .agents/TONE.md or repo root TONE.md. See references/templates.md (section "TONE.md template") for the structure.
TONE.md specifies: voice (terse, contrarian, etc.), forbidden patterns (e.g., "delve", "crucial", em dashes, AI-sounding openers), sentence length preference, audience reading level, examples of good and bad sentences from the user's own writing.
After every drafting step (whether by a copywriting skill, by hand, or by Claude directly), run a humanizer to strip AI patterns.
Ask the user for the site's primary audience language at the start of the session if not already known:
english-global → npx skills add https://github.com/blader/humanizer --skill humanizerfrench → use samber/cc-skills@humaniseur-fr (custom French humanizer) or equivalent French-tuned skillother → install matching humanizer if available; otherwise the skill writes a short language-specific anti-pattern checklist inlineApply the humanizer to: hero copy, feature descriptions, CTA buttons, meta descriptions, OG/Twitter card descriptions, blog posts, email signup confirmations, 404 page text. Skip for legal pages (mentions légales, CGV) since they have rigid wording requirements.
When delegating to any copywriting or content-writing sub-skill (selected at invocation per the skill selection workflow), include TONE.md in the prompt context. Pass voice constraints explicitly: "Follow .agents/TONE.md. Avoid the listed patterns. Apply the humanizer after drafting."
Many checks require a real browser (Lighthouse runs, securityheaders.com scan, opengraph.xyz validation, Twitter card validator, mobile viewport, screen reader smoke, Network tab inspection).
Always prefer the Claude Chrome extension. Fall back to Playwright only if the Chrome extension is unavailable. If neither is available, ask the user whether to skip browser checks entirely or wait until they enable one.
Most checks are doable from the command line without third-party services. Use these tools inline at every phase. Don't trust panels in Cloudflare/Vercel/Google dashboards alone, verify with curl.
DNS (Phase 1):
dig +short A example.com # A record
dig +short AAAA example.com # AAAA (IPv6)
dig +short MX example.com # MX (mail)
dig +short TXT example.com # SPF + verification TXT
dig +short TXT _dmarc.example.com # DMARC
dig +short TXT default._domainkey.example.com # DKIM (selector varies)
dig +short CAA example.com # CAA
dig +dnssec example.com | grep RRSIG # DNSSEC activeTLS / HTTPS (Phase 1):
curl -sIL https://example.com | head # follow redirects
curl -sI https://www.example.com # check www handling
openssl s_client -showcerts -connect example.com:443 < /dev/null 2>/dev/null | openssl x509 -noout -datesHeaders (Phase 4):
curl -sI https://example.com | grep -iE 'content-security-policy|strict-transport-security|x-frame-options|x-content-type-options|referrer-policy|permissions-policy'
# Full header dump:
curl -sI https://example.com
# External graders:
curl -s "https://api.securityheaders.com/?q=https://example.com&followRedirects=on&hide=on" -I | grep -i 'x-grade'SEO files (Phase 5):
curl -s https://example.com/robots.txt
curl -sI https://example.com/sitemap.xml
curl -s https://example.com/sitemap.xml | head -40
curl -s https://example.com/llms.txt
# Schema (JSON-LD):
curl -s https://example.com/ | grep -A 50 'application/ld+json'
# hreflang:
curl -s https://example.com/ | grep -i hreflangOpen Graph & social (Phase 6):
curl -s https://example.com/page | grep -iE 'og:|twitter:|<title|name="description"'Favicons & manifest (Phase 7):
curl -sI https://example.com/favicon.ico
curl -sI https://example.com/favicon.svg
curl -sI https://example.com/apple-touch-icon.png
curl -s https://example.com/manifest.json | jq .404 / 500 / redirects:
curl -sI https://example.com/this-does-not-exist
curl -sIL https://example.com/old-url # verify 301 chainAlways run the relevant command, paste the output to the user when reporting, then ask whether to fix immediately or queue.
Most of this is one-click via Cloudflare's dashboard if the domain is on Cloudflare.
Ask first: "Is the domain already on Cloudflare with the standard config from previous launches?" (yes-standard | yes-needs-review | no-fresh-setup)
Checklist:
dig +short A example.com)dig +short MX example.com)dig +short CAA example.com)dig +dnssec)curl -sIL https://www.example.com)curl -sI https://example.com/does-not-exist)curl -sIL per URL)If you don't configure backups at launch, you never will. Do it now.
Ask the user: "Which data stores does this app write to?" (database-only | database-plus-file-storage | file-storage-only | stateless-no-persistent-data). If stateless-no-persistent-data, skip this section.
Database:
File storage (if applicable — S3, R2, GCS, Cloudflare Images):
rclone to sync from S3/R2/GCS → B2 on a daily cron.Secrets / environment variables:
.env file on someone's laptop.Monitoring:
Most third-party integrations are one-click via Cloudflare or Vercel.
For the conditional tools (Crisp, Sentry, BetterStack), ask the user to confirm per site type. See references/decisions.md for the observability tier matrix.
Always-on:
hogpost.samber.dev: configure client with api_host: "https://hogpost.samber.dev" and verify CORS allows the new domain (test with browser console or curl -H "Origin: https://newsite.com" -I https://hogpost.samber.dev/decide)set-up-new-proxy: add path rewrite in next.config.js to us.i.posthog.com and us-assets.i.posthog.com, init client with api_host: "/ingest"skip-PostHog: skip/{key}.txt on root (verify with curl -sI https://example.com/{key}.txt)Brand monitoring (Google Alerts):
For each alert, use these settings: Frequency: once a day | Sources: Automatic | How many: All results | Region: Any region
Set up one alert per keyword via alerts.google.com:
example.com)"My Brand")yes-monitor-competitors | skip)Ask the user: "Which additional keywords to monitor?" (product-name-only | domain-plus-brand | full-set-with-competitors | custom-list)
Developer community monitoring (F5bot) — for doc-site and SaaS-app targeting developers:
F5bot (f5bot.com) monitors Reddit, Hacker News, and Lobste.rs for keyword mentions and sends email alerts. Free, no API required.
Set up one keyword per line at f5bot.com/add:
Competitor analysis (marketing/lead-gen, SaaS-app, training/paid-course only):
Before writing copy, setting up ads, or planning content, run a competitor analysis to understand what is already working in the market — positioning, messaging angles, CTA patterns, pricing presentation, and content strategy.
Use a deep research tool or a competitor analysis skill if one is available in the toolchain. Ask:
yes-provide-list | no-discover-for-me | skip)yes-provide-list: ask the user to paste 2-5 names or URLs (free text)positioning-and-messaging | pricing-strategy | content-and-seo | full-spectrum)Feed the output into:
TONE.md voice calibration (deliberately differentiate from the dominant tone in the category)Conditional (ask user, default per site type from references/decisions.md):
Ask first: "Is this site subject to French law?" (yes-FR-operator-or-audience | no-EU-only | no-non-EU). If no, ask whether GDPR or equivalent applies and adjust.
For FR sites:
Delegate the deep audit to trailofbits/skills. The items below are the must-pass checklist.
Ask first: CSP tightness level (strict-default-src-none | balanced-allow-self | permissive-for-marketing). See references/templates.md for the CSP template per level.
'unsafe-inline' for scripts (use nonces). Verify with curl -sI ... | grep -i content-security-policy.max-age=31536000; includeSubDomains; preload. Submit to hstspreload.org. Verify with curl -sI ... | grep -i strict-transport.DENYnosniffstrict-origin-when-cross-origincurl -sI https://example.com | grep -iE 'content-security|strict-transport|x-frame|x-content-type|referrer-policy|permissions-policy'curl https://securityheaders.com/?q=URL and parse)trailofbits/skills security audit on the codebasesk_, pk_, AKIA, ghp_, BearerDelegate the full audit to AgriciDaniel/claude-seo. The items below are the orchestration list.
See references/templates.md for robots.txt, llms.txt, and manifest.json templates. See references/decisions.md for the AI scraper policy matrix by site type.
/robots.txt present, references sitemap (verify with curl -s https://example.com/robots.txt)/sitemap.xml present, valid (verify with curl -s https://example.com/sitemap.xml | head -40). Sitemap-index with per-language sitemaps if multilingual./llms.txt present (per llmstxt.org spec, verify with curl -s https://example.com/llms.txt)robots.txt. Apply the matrix from references/decisions.md based on site type, then ask via the question tool to confirm each non-default decision — this ships in a public file, get it right before it's crawled.Organization + WebSite + BreadcrumbList site-wide; per-page types where applicable (SoftwareApplication for lib homepages, Article for blog posts, FAQPage for FAQs, Person for author bio). Verify with curl -s URL | grep -A 50 'application/ld+json'. Validate structured data via Google Rich Results Test (https://search.google.com/test/rich-results) and Schema.org Validator (https://validator.schema.org) — Rich Results Test checks eligibility for rich snippets; Schema.org Validator catches spec violations that Google may silently ignore.<title> (50-60 chars), unique <meta description> (150-160 chars), <link rel="canonical">, <meta name="robots"> if neededhreflang tags on every page if multilingual (every language version declares all alternates including self). Verify with curl -s URL | grep -i hreflang.Destination Pages Strategy (from directory-submissions skill): Directories are useless if the backlinks land on a generic homepage. Build these destination pages before submitting to directories:
Competitor alternative pages convert at 5–15%, often hitting 15–30% for bottom-of-funnel queries. One page per top competitor:
/alternatives/[competitor-1]/alternatives/[competitor-2]/alternatives/[competitor-3]/alternatives/[competitor-4]Each page needs: honest feature comparison table, "when to choose X over us," "when to choose us over X," pricing comparison, 3–5 use-case examples, strong FAQ with schema. Critical: Be honest. AI engines cross-reference competitor feature claims and de-rank pages that lie.
Every ICP gets a dedicated landing page:
/for/[audience] — coaches, agencies, ecommerce, SaaS, consultants, etc./use-cases/[use-case] — lead qualification, onboarding, product recommendations, etc.Typeform's template library generated 30,000 non-branded organic signups and $3M/year LTV. The pattern:
/templates/[slug].Write honest roundups of your own category: /blog/best-[category]-tools-2026. Include yourself + 10 competitors with real reviews. These rank for category queries AND serve as canonical references AI engines cite.
Every integration = one landing page at /integrations/[partner]. Follows the Zapier playbook: Zapier gets ~2.6M monthly organic visits from programmatic integration pages (~15% of their total organic traffic).
GEO (Generative Engine Optimization): In 2026, 30–50% of "research a tool" queries happen inside ChatGPT, Claude, Perplexity, or Google AI Overviews without ever touching a traditional search page.
FAQPage JSON-LD for answer extraction.Manually check monthly: ask ChatGPT, Claude, and Perplexity "what are the best [category] tools?" and log where the product appears. Free GEO tracking tools (GeoTracker, llmrefs) automate this.
Verify all OG and Twitter tags with: curl -s URL | grep -iE 'og:|twitter:'
og:title, og:description, og:url, og:type, og:site_nameog:image 1200×630px, absolute URL, og:image:width and og:image:height declared, og:image:alt setog:image, not one global. For doc sites: generate dynamically from page title. For blog posts: per-article custom image.og:locale + og:locale:alternate for each language if multilingualtwitter:card=summary_large_image, twitter:title, twitter:description, twitter:image, twitter:site (handle)See references/templates.md for the manifest.json template.
Generate from a single 1024×1024 source PNG using realfavicongenerator.net or favicon.io.
Minimum modern set:
/favicon.ico (multi-res 16/32/48). Verify with curl -sI https://example.com/favicon.ico./favicon.svg with embedded <style>@media (prefers-color-scheme: dark) { ... }</style> for dark mode. Verify with curl -sI https://example.com/favicon.svg./favicon-96x96.png (PNG fallback)/apple-touch-icon.png 180×180px, no transparency, opaque background. Verify with curl -sI./web-app-manifest-192x192.png (Android PWA icon)/web-app-manifest-512x512.png (Android splash)/manifest.json referencing both PNGs, with theme_color, background_color, name, short_name, display. Verify with curl -s https://example.com/manifest.json | jq ..Skip (deprecated):
mstile-*.png (Windows tiles)safari-pinned-tab.svg (deprecated since macOS Big Sur)favicon-16x16.png / favicon-32x32.png (covered by .ico and .svg)HTML head verification:
curl -s https://example.com/ | grep -iE 'rel="icon"|rel="apple-touch-icon"|rel="manifest"'Delegate to addyosmani/web-quality-skills. The skill covers 150+ Lighthouse audits across performance, accessibility, SEO, and best practices.
npx unlighthouse --site {site} — crawls all pages and runs Lighthouse on each. Surface pages below 90 on any axis before the per-URL checks.web-quality-skills): keyboard nav works for every interactive element, focus rings visible, color contrast ≥4.5:1 for text, all images have alt, heading hierarchy is monotonic (H1 → H2 → H3), ARIA labels on icon-only buttonsInternal cross-linking between owned properties. High-leverage SEO action for any multi-domain owner.
Ask the user: "List the other domains in your ecosystem that are topically relevant to this new site." Then for each one:
Do not over-link. Only cross-link where topically relevant. A doc site for a logging lib should not link to a personal blog about cycling.
After launch, set up a scheduled background agent, such as Hermes or Claude Cowork Routine, that runs weekly to monitor SEO health and surface action items.
See references/weekly-seo-agent.md for the full agent definition, with a concrete equivalent for each harness — copy the block matching your environment into the location it specifies, in the site's repo (or a dedicated ops repo). The agent uses these MCP connectors (or their equivalent API calls):
curl with service account credentials)Ask via the question tool before creating the file: "Set up the weekly SEO agent now?" (yes-create-agent-file | yes-but-defer | skip-for-now).
When MCP are not available, use Claude for Chrome extension.
Execute the directory submission workflow from the directory-submissions skill. This is the foundation layer of distribution — never the whole strategy.
| Tier | When | Examples | Typical count |
|---|---|---|---|
| Tier 1 — Flagship launch | Launch week only | Product Hunt (anchor), BetaList, HN Show HN, Fazier, DevHunt | ~15 |
| Tier 2 — Startup/SaaS | Week 1 + rolling | AlternativeTo, SaaSHub, G2, Capterra, F6S, SourceForge, Slashdot | ~50 |
| Tier 3 — AI directories | Week 1–3 | TAAFT, Futurepedia, Toolify, Future Tools, aitools.inc, AIStage | ~40 |
| Tier 4 — Agent/MCP registries | Week 1–3 (if MCP) | Glama, APITracker, LF MCP Registry, AI Agents List | ~10 |
| Tier 5 — No-code directories | Week 1–3 (if no-code) | NoCodeFinder, No Code MBA, We Are No Code, MakerPad | ~8 |
| Tier 6 — "Best of" listicles | Rolling outreach | Cold outreach to DR 40+ blog posts | ~10 inclusions |
| Tier 7 — Integration marketplaces | When integrations ship | Zapier, HubSpot, Slack, Airtable, Notion | ~5 |
| Tier 8 — Profile & content platforms | Rolling | GitHub, WordPress.com, Substack, Dev.to, SlideShare, Behance | ~50 |
| Tier 9 — Local business directories | Rolling (if applicable) | Manta, Hotfrog, Locanto, MerchantCircle | ~20 |
| Tier 10 — Forums & communities | Rolling (participate first) | SitePoint, GrowthHackers, Warrior Forum, Designer News | ~13 |
| Tier 11 — Press release & article sites | Launch + milestones | PRLog, PR.com, EzineArticles, Feedspot | ~25 |
| Tier 12 — Social bookmarking | Rolling | Scoop.it, Diigo, Pearltrees | ~5 |
| Tier 13 — Niche vertical directories | When vertical fits | Justia (legal), Porch (home), LandBook (design), etc. | ~20 |
Triage rule: Only submit where the product is a genuine fit. Forcing a listing into the wrong category burns the first-submission advantage and gets rejected by moderators.
For each tier, prep a distinct description variant (from references/positioning-variations.md):
Critical: Don't copy-paste the same long description into every directory. Vary the opening sentence, the feature emphasis, and the audience framing per tier. AI engines cross-reference and down-weight duplicate content.
Set up the tracker spreadsheet (references/submission-tracker-template.csv). Work left-to-right through it. 2–3 hours per batch is realistic.
Per submission:
curl -sIL https://directory.com/your-listing | grep -i rel=. If absent, the link is dofollow.Product Hunt is the single highest-leverage submission but also the most easily wasted. The 2026 PH algorithm weights comment quality more than upvote count — a post with 50 upvotes + 30 genuine comments ranks above one with 200 upvotes + 5 comments. 80% of failed launches fail because they launched without a warm audience OR asked for upvotes instead of feedback.
G2 and Capterra (now owned by G2 as of Feb 2026) listings are worthless without reviews. 10 reviews is the magic threshold for Grid appearance. Run the 10-in-30 protocol during launch month.
Your launch isn't over when the announcement goes live. Now comes adoption and retention work. Don't rely on a single launch event. Regular updates and feature rollouts sustain engagement.
Use this matrix to decide how much marketing each update deserves:
Major updates (new features, product overhauls):
Medium updates (new integrations, UI enhancements):
Minor updates (bug fixes, small tweaks):
Track weekly. If a number isn't moving, investigate — don't just submit more directories.
| Metric | Day 0 | Day 30 target | Day 90 target |
|---|---|---|---|
| Domain Rating (DR) | 0 | 20 | 30+ |
| Referring domains | 0 | 30 | 80+ |
| Indexed pages | — | 50 | 200+ |
| Organic clicks/day | 0 | 30 | 200+ |
| Directory listings live | 0 | 50 | 70+ |
| G2 reviews | 0 | 10 | 25 |
| Capterra reviews | 0 | 5 | 15 |
| AI citations (manual check) | 0 | 3 | 15+ |
| Signups from directory referrals | 0 | 50 | 300 |
| Signups from alt/use-case pages | 0 | 20 | 300 |
At the end of a full run, output a status report grouped by phase:
Phase 1: Domain & Infrastructure [9/10 pass]
✓ Cloudflare proxy on
✓ DNS records configured
...
✗ DMARC missing. Fix: add TXT record at _dmarc.example.com with policy v=DMARC1; p=quarantine;...
Phase 2: Analytics & Observability [6/7 pass]
...Followed by three lists, in order:
End by asking: "Which list do you want to tackle next?" (blockers | recommended | optional | done-for-now).
references/decisions.md: AI scraper policy matrix by site type, observability tier matrixreferences/templates.md: robots.txt, llms.txt, manifest.json, CSP templates per tightness level, security headers referencereferences/weekly-seo-agent.md: Full definition of the weekly SEO maintenance sub-agent (MCPs, tasks, output format)assets/weekly-seo-*.md, assets/weekly-seo-vibe.toml: per-harness agent-definition files linked from references/weekly-seo-agent.md — copy the one matching your harnessreferences/directory-list.md: 13-tier directory catalog with submission timing, examples, and countsreferences/positioning-variations.md: Positioning variant library per directory tier (tagline, short/long descriptions, category tags)references/submission-tracker-template.csv: Submission tracker spreadsheet template for logging directory submissions© samber, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 14 other files (references, assets) in skills/site-launch-checklist of samber/cc-skills.
Open the folder on GitHubat commit 123cb15
Site Launch Checklist next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Site Launch Checklist this skillsamber/cc-skills | 228 | — | ~13k | Automated safety check: Notes | MIT | |
| SEONexus-JPF/note-companion | 870 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Google SEO APIsAgriciDaniel/claude-seo | 19k | 1 repos | ~4.2k | Automated safety check: Pass | MIT | |
| SEO Coachakseolabs-seo/seo-coach | 146 | — | ~2.8k | Automated safety check: Pass | None | |
| SEO Googleseranking/seo-skills | 160 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Global SEO Growthminhnv0807/ai-business-skills | 610 | — | ~5k | Automated safety check: Pass | MIT |
Nexus-JPF/note-companion
Use and read this skill immediately if the user request is in any way related to SEO or a site's organic search or AI search presence.
AgriciDaniel/claude-seo
Pulls real Google data for SEO work: Search Console, PageSpeed Insights, CrUX field data, the Indexing API and GA4 organic traffic, through /seo google commands.
akseolabs-seo/seo-coach
Beginner-first SEO coaching for people who want to learn by doing one safe, verifiable step at a time.
seranking/seo-skills
Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…
minhnv0807/ai-business-skills
Covers six SEO layers for a website: crawl and index audit, local SEO, search-intent content, AI search visibility, schema markup and backlink or directory distribution.
AgriciDaniel/claude-blog
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…
samber/cc-skills
Interviews you about objective, audience and context, then designs an end-of-article call to action with copy, placement, A/B test plan and accessibility check.
samber/cc-skills
Builds a PROSE.md writing guide that captures how a person or brand writes, such as vocabulary, sentence rhythm and signature moves, separate from emotional tone.
samber/cc-skills
Drafts press releases that fit the release type, target media and region, after collecting the facts and checking that the story has a real news angle.
samber/cc-skills
Produces a training or workshop report as a Word file, with participant feedback and recommendations, drafted in Markdown first and converted once at the end.
samber/cc-skills
Conventional Commits v1.0.0 branch naming, worktree naming, and commit message standards for GitHub and GitLab projects.
samber/cc-skills
Writes opening hooks and post titles for long-form articles in EN or FR — blog posts, Substack/Medium/dev.to, LinkedIn long-form, newsletters, essays.
Categories
Pre-launch checklist for shipping a new website or web app. An agent skill from samber/cc-skills. Site Launch Checklist is an agent skill from samber/cc-skills. Pre-launch checklist for shipping a new website or web app.
Site Launch Checklist fits situations like: the user says checklist for the site; before I go live; audit before launch; asks for a site review.
Run `npx skills add samber/cc-skills --skill site-launch-checklist -a claude-code`. Or copy the skill folder (skills/site-launch-checklist in samber/cc-skills) into .claude/skills/site-launch-checklist in your project. Claude Code loads it when a task matches its description.
Run `npx skills add samber/cc-skills --skill site-launch-checklist -a codex`. Or copy the skill folder (skills/site-launch-checklist in samber/cc-skills) into .agents/skills/site-launch-checklist in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add samber/cc-skills --skill site-launch-checklist -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/site-launch-checklist, .gemini/skills/site-launch-checklist, .github/skills/site-launch-checklist and .opencode/skills/site-launch-checklist in your project.
Going by SKILL.md and its folder, Site Launch Checklist needs the command-line tools its instructions call (curl, npx, openssl, jq and claude). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Edit, Write, Glob, Grep, Agent, AskUserQuestion. Compatibility (from SKILL.md): Designed for Claude Code, Codex or similar harness. Requires internet access for directory submissions, G2/Capterra reviews, and AI citation checks..
SKILL.md names 8 domains. In commands or code: hogpost.samber.dev, github.com, newsite.com, securityheaders.com, directory.com and api.securityheaders.com; the agent is likely to contact these when it follows the instructions. As links in the text: search.google.com and validator.schema.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Site Launch Checklist is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 13k tokens (SKILL.md is roughly 52k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 19k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Site Launch Checklist: SEO (Nexus-JPF/note-companion, 870 stars), Google SEO APIs (AgriciDaniel/claude-seo, 19k stars), SEO Coach (akseolabs-seo/seo-coach, 146 stars) and SEO Google (seranking/seo-skills, 160 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
samber (a GitHub user) maintains it in samber/cc-skills, which has 228 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 1, 2026.
Source: samber/cc-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.