WriteGap finds competitor keyword gaps and unclaimed keywords, fixes your existing pages that are almost ranking, and writes SEO-ready drafts, publishing them straight to WordPress or Shopify. Managed or bring your own API keys.
Hey PH 👋
I built WriteGap because every "SEO tool" I tried gave me a pile of keyword data and left me to figure out what to do with it. WriteGap closes that gap: it finds the content your competitors have that you don't, tells you what's winnable, fixes the pages you already have that are almost ranking, and writes (and publishes) the draft.
A few things it does under the hood:
1. Managed vs. bring-your-own-key
Most plans (Basic/Growth/Premium) run on our infrastructure. We pay for DataForSEO and Claude, you just use the app, and it runs automatically every week. There's also a BYOK plan for €19.99/mo if you'd rather plug in your own DataForSEO and Anthropic keys, same features, but you trigger runs on demand instead of waiting for the weekly cycle, and there's no markup on API costs.
2. Finding your real competitors
You don't hand-pick competitors from a dropdown. You set a language and target market, and we seed candidates using AI-generated search queries relevant to your niche in that market, then cross-reference domains that show up ranking near you in local SERPs. Generic sites (Wikipedia, Reddit, etc.) get filtered out automatically, so you're left with actual competitors, not noise. If you sell in multiple markets or languages, each one gets its own competitor set instead of one blended list.
3. Keyword gaps and unclaimed keywords
Two different signals. "Gaps" are keywords a competitor ranks in the top 20 for and you don't rank for at all. "Unclaimed" are keywords nobody's really claimed yet, lower competition, seeded from short commercial phrases and expanded out. Both get filtered against what you've already targeted in the last 6 months so you're not writing the same brief twice.
4. Optimize tab, this is the part I'm most proud of
Once Search Console is connected, we break your existing pages into buckets based on where they actually rank:
- Quick Wins: pages sitting at position 11-20 with real impressions. We rewrite the weak parts (headline, a content section) to push them onto page 1.
- Snippets: pages at 4-10, close enough to steal the featured snippet. We draft the answer block.
- Fix This Page: buried pages (positions 21-40). We pull what the top 3 ranking competitors are doing differently and score your page across 10 dimensions modeled on Google's E-E-A-T framework: Information Gain & Originality, Semantic Depth & Topical Completeness, Experience (first-hand proof), Expertise (author credentials & depth), Authoritativeness (citations & references), Trustworthiness (contact/policies/reviews), Structure & Readability, Technical On-Page SEO, Engagement & Discoverability, and Conversion & Business Impact. Each one is scored 1-5, and we tell you the 2-3 weakest, then write a fix that targets exactly those.
- Declining: pages losing position over time, flagged before they fall off the map.
- CTR Gaps: pages ranking fine but getting clicked less than they should (title/meta not pulling weight).
- Cannibalization: two of your own pages competing for the same keyword. We tell you whether to consolidate or differentiate.
- Backlink gaps
We also check who's linking to your competitors but not you, domains linking to 2+ of them, filtered so a hacked or parasite subdomain stuffed with spam links doesn't sneak onto your list. Before we ever show you a target, we fetch the actual live page and confirm the backlink is real (not stale or removed) and pull the exact anchor text, so it's ready for outreach instead of a domain name you have to go verify yourself.
5. Clusters, hub and spoke
Instead of one-off articles, you can generate a topic cluster: one hub page plus a handful of spoke articles around it. We handle the internal linking both directions, hub links out to each spoke, spokes link back to the hub, so it's an actual content structure, not just a list of ideas.
6. Landing page analysis
Point it at any page and it screenshots the live render and looks at it three ways: information architecture (heading structure, whether your title tag would actually get clicked), conversion copy (does the top of the page pass the "3-second test," can a stranger tell what you do), and UX/CTA clarity. It comes back with a rewritten title, meta description, and a prioritized list of what to fix first.
7. Drafts, written like you'd actually write
Each draft comes with the SEO metadata (title tag, meta description, slug), the article body, suggested internal links, and structured schema markup, all in one export. We run every draft through a tone filter that strips the stuff that makes AI writing sound like AI writing (no "in today's digital landscape," no symmetrical "firstly/secondly," capped em dash usage, no monotone sentence rhythm). You can also set a custom voice per site if you want it to sound more specifically like you.
8. Publish straight to Shopify or WordPress
Once a draft's ready, you don't have to copy-paste it anywhere. Connect your Shopify or WordPress site and publish directly from WriteGap, either right away or scheduled for a specific date. It goes out with the schema markup and internal links already in place.
You can also try the live product yourself at writegap.com/demo (for both managed any byok plans), no signup needed.
Report
Congrats on the launch, Samia!
The "each market/language gets its own competitor set" detail caught my eye. I do a lot of digital work with hospitality brands across Morocco, France, and the UK, and blended competitor data across markets is exactly the thing that messes up our SEO and old tools can't pick up.
Question: For a brand/property targeting multiple languages on one domain (e.g., the same hotel site in FR/EN/DE), does WriteGap treat each language version of a site as its own competitor set, or does it group by target market only?
Congrats on the launch, Samia!
The "each market/language gets its own competitor set" detail caught my eye. I do a lot of digital work with hospitality brands across Morocco, France, and the UK, and blended competitor data across markets is exactly the thing that messes up our SEO and old tools can't pick up.
Question: For a brand/property targeting multiple languages on one domain (e.g., the same hotel site in FR/EN/DE), does WriteGap treat each language version of a site as its own competitor set, or does it group by target market only?