Tech Stack Detector & Pixel Checker: CMS, GA4, GTM, Meta Pixel
Pricing
$1.50 / 1,000 domain analyzeds
Tech Stack Detector & Pixel Checker: CMS, GA4, GTM, Meta Pixel
Tech stack detector, pixel checker and BuiltWith / Wappalyzer alternative for lead lists. Paste domains or emails; get CMS, Shopify, GA4, GTM tags, Meta/TikTok/LinkedIn pixels, tracking IDs, consent, chat, hosting with evidence. Parked & dead domains free. 3 free, then $0.0015/domain.
Pricing
$1.50 / 1,000 domain analyzeds
Rating
0.0
(0)
Developer
Umair Saleem Mohammad Saleem
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Answer first: this actor is a tech stack detector, pixel checker and website technology lookup (a BuiltWith / Wappalyzer alternative) for lead generation, agency prospecting and SEO. Give it a list of domains, URLs or email addresses. For each one it reads the homepage (plus up to 2 extra pages) and the site's public Google Tag Manager container, then returns every technology it finds, grouped by category: CMS and site builder, ecommerce platform, analytics (GA4), tag managers, ad pixels (Meta, Google Ads, TikTok, LinkedIn, Pinterest, X, Bing, Reddit, Snap), heatmaps (Hotjar, Clarity), cookie consent, live chat, email and marketing tools, payments, CDN and hosting, JS frameworks, SEO plugins (Yoast, Rank Math, AIOSEO) and schema.org. Every detection comes with a confidence score, the evidence that matched (header, script URL, meta tag, cookie or HTML snippet) and the tracking IDs found (GA4 G-, GTM-, AW-, Meta Pixel ID and more). The first 3 analyzed domains of every run are free, then $0.0015 per domain ($1.50 per 1,000). Dead, blocked and empty sites, parked or for-sale domains and placeholder pages (server default page, "coming soon", suspended hosting) are reported and never billed, and every row tells you if the domain redirects to another company's site (e.g. jet.com → walmart.com). That makes it a quick lead-list cleaner too.
| Quick facts | |
|---|---|
| Best for | Lead lists by technology (e.g. Shopify stores running Meta ads), agency prospecting and pitch prep, competitor research, SEO / analytics audits, CRM enrichment |
| Input | A list of domains, URLs or emails (allbirds.com, https://ghost.org, jane@acme.com → acme.com) |
| Output | One row per domain: cms, ecommerce, analytics, tagManagers, advertising, sessionRecording, consent, chat, marketing, payment, cdnHosting, frontend, seoPlugins, trackingIds, plus technologies[] with category, confidence, version and evidence, seo (title, meta description, canonical, hreflang, schema.org types), and lead-list flags finalDomain, redirectedToOtherSite, parkedOrForSale, placeholderPage |
| Coverage | 314 fingerprint rules in 25 categories, written by Cygnix Labs. GTM container scan finds pixels that never appear in the page HTML |
| Price | First 3 domains free every run, then $0.0015 per analyzed domain. Same price for 1, 2 or 3 pages and the GTM scan. No start fee |
| Needs | No API keys, no proxies, no login. Public pages only, robots.txt respected |
| Not included | JavaScript rendering, historical tech data, company firmographics, tools that load only after login or consent clicks |
Try it now: the input is prefilled with 3 domains, so the first run is free.
Lead-list check: dead, parked and redirected domains (real run, 20 Oct 2026)
Build 0.1.4, run K7ZfYUaz2fCT35GB5, 14 input lines incl. an email address, a typo and junk domains. 10 analyzed (3 free + 7 billed = $0.0105), everything else free:
| Input | Status | Flags | Billed |
|---|---|---|---|
| jane.doe@gymshark.com | ok: Shopify | checked as gymshark.com | yes |
| jet.com | ok: Next.js, React | redirectedToOtherSite: true, finalDomain: walmart.com | yes |
| cheapwidgets.com | parked or for-sale domain (domain parking / for-sale script) | parkedOrForSale: true | no |
| nonexistent-domain-cygnix-xyz.com | unreachable (DNS: domain does not resolve) | no | |
| stackoverflow.com | blocked by bot protection (HTTP 403) | headers still show Cloudflare | no |
| not-a-domain | invalid input (not a public domain name) | no |
Full rows: JSON · CSV · Excel. In the same run hubspot.com showed 8 ad pixels (Google Ads, Floodlight, LinkedIn, Meta, Bing UET, Reddit, TikTok, X) and allbirds.com GA4 + Google Ads + Meta + TikTok + Bing UET + Outbrain, most of them from the GTM container.
Sample output: full tech stack (real run, 19 Oct 2026, 13 domains)
Unedited output of build 0.1.2 (run RUMaU8lSDMiGdAbFa): {"urls": ["allbirds.com", "techcrunch.com", "webflow.com", "ghost.org", "hubspot.com", "wpbeginner.com", "tartinebakery.com", "franklinbbq.com", "vapiano.de", "skullcandy.com", "nonexistent-domain-cygnix-xyz.com", "linkedin.com", "stackoverflow.com"], "extraPagesPerDomain": 1}. Finished in about 10 seconds. 10 domains were analyzed (3 free + 7 billed = $0.0105); the made-up domain (unreachable), linkedin.com (robots.txt disallows bots) and stackoverflow.com (HTTP 403 bot protection) were not billed.
Download the full sample (all 13 rows with every field, public, no login): JSON · CSV · Excel
| Domain | CMS / platform | Analytics & tags | Ad pixels | Other highlights |
|---|---|---|---|---|
| allbirds.com | Shopify (+ Shop Pay) | GA4, Universal Analytics, GTM | Google Ads, Meta, TikTok, Microsoft UET, Outbrain | Microsoft Clarity, OneTrust, Cloudflare |
| techcrunch.com | WordPress 6.9.10 + Yoast SEO | GA4, GTM, Jetpack Stats | Google Ads, Meta, LinkedIn Insight, X | Microsoft Clarity, Cloudflare, reCAPTCHA + Turnstile |
| hubspot.com | HubSpot CMS | GA4, GTM, Cloudflare Web Analytics | Google Ads, Floodlight, Meta, LinkedIn, TikTok, X, Bing, Reddit | Hotjar, Cloudflare |
| webflow.com | Webflow | GA4, GTM | Google Ads, Meta, LinkedIn, Bing, Reddit | Marketo forms, GSAP, Cloudflare |
| skullcandy.com | Shopify (+ Shop Pay) | - | - | Klaviyo, Yotpo reviews, Bootstrap, Cloudflare |
| wpbeginner.com | WordPress + All in One SEO 5.0.3 | GA4, Cloudflare Web Analytics | - | Microsoft Clarity, WPForms, PHP 8.0.30 |
| tartinebakery.com | WordPress 7.1.3 + Elementor 4.3.5 | - | - | Cookiebot + Google Consent Mode, Vimeo |
| franklinbbq.com | Squarespace | - | Meta Pixel | LocalBusiness schema, Google Maps embed |
| ghost.org | Hugo (homepage) + Ghost (help center) | - | - | Netlify, Alpine.js |
| vapiano.de | TYPO3 | - | - | Open Graph, Twitter Cards |
On allbirds.com, hubspot.com, techcrunch.com and webflow.com the ad pixels and GA4 IDs come from the Google Tag Manager container. They are not in the page HTML, so an HTML-only scanner misses them.
One row from the dataset (trimmed to 4 of 22 technologies):
{"domain": "techcrunch.com","status": "ok","httpStatus": 200,"finalUrl": "https://techcrunch.com/","title": "TechCrunch | Startup and Technology News","technologyCount": 22,"cms": "WordPress","analytics": "Jetpack Stats, Google Analytics 4","tagManagers": "Google Tag Manager","advertising": "Google Ads, LinkedIn Insight Tag, Meta Pixel, X (Twitter) Pixel","sessionRecording": "Microsoft Clarity","cdnHosting": "Cloudflare","seoPlugins": "Open Graph tags, Schema.org JSON-LD, Twitter / X Cards, Yoast SEO","trackingIds": {"ga4": ["G-KJR3C2ZQN6"],"gtm": ["GTM-M24PKK8"],"googleAds": ["AW-26970898", "AW-29214594", "AW-816022932", "AW-954765627"],"metaPixel": ["1447508128842484"]},"technologies": [{ "name": "WordPress", "category": "cms", "confidence": 100, "confidenceLevel": "high", "version": "6.9.10","evidence": ["header: link: <https://techcrunch.com/wp-json/>; rel=\"https://api.w.org/\"", "meta generator: WordPress 6.9.10"] },{ "name": "Yoast SEO", "category": "seo", "confidence": 95, "confidenceLevel": "high","evidence": ["html: :-1' /> <!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast S"] },{ "name": "Google Tag Manager", "category": "tagManager", "confidence": 95, "ids": ["GTM-M24PKK8"],"evidence": ["html: ataLayer','GTM-M24PKK8'); </script> <!-- End G"] },{ "name": "Meta Pixel", "category": "advertising", "confidence": 85, "ids": ["1447508128842484"],"evidence": ["GTM container GTM-M24PKK8: connect.facebook.net/en_US/fbevents.js"] }],"pagesAnalyzed": 2,"gtmContainersScanned": ["GTM-M24PKK8"],"charged": true}
What it detects (25 categories, 314 rules)
| Category | Examples |
|---|---|
| CMS & site builders | WordPress, Webflow, Wix, Squarespace, Framer, Ghost, HubSpot CMS, Drupal, Joomla, TYPO3, Duda, Craft CMS, AEM, Sitecore, Contentful, Sanity, Storyblok, Hugo, Jekyll, Bubble |
| Ecommerce | Shopify, WooCommerce, Magento / Adobe Commerce, BigCommerce, PrestaShop, Salesforce Commerce Cloud, Shopware, OpenCart, Ecwid, Snipcart, Lemon Squeezy, Gumroad |
| Page builders & WP plugins | Elementor, Divi, WPBakery, Beaver Builder, Bricks, WP Rocket, Jetpack, WPML, Contact Form 7, Gravity Forms, WPForms |
| SEO | Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, schema.org JSON-LD / microdata types, Open Graph, Twitter Cards, hreflang |
| Analytics | Google Analytics 4, Universal Analytics, Plausible, Fathom, Matomo, Adobe Analytics, Mixpanel, Amplitude, Heap, PostHog, Umami, Cloudflare and Vercel analytics |
| Heatmaps & recordings | Hotjar, Microsoft Clarity, FullStory, Mouseflow, Lucky Orange, Smartlook, Crazy Egg, LogRocket, Contentsquare |
| Tag managers & CDPs | Google Tag Manager (with container scan), Tealium, Adobe Launch, Segment, RudderStack, Stape |
| Ad & marketing pixels | Meta Pixel, Google Ads, Floodlight, AdSense, TikTok Pixel, LinkedIn Insight Tag, Pinterest Tag, X Pixel, Snap Pixel, Microsoft UET, Reddit, Quora, Criteo, Taboola, Outbrain, AdRoll |
| Cookie consent / CMP | OneTrust, Cookiebot, CookieYes, Osano, Usercentrics, Didomi, TrustArc, Termly, iubenda, Complianz, Google Consent Mode |
| Chat & support | Intercom, Drift, Zendesk, LiveChat, Tawk.to, Crisp, Tidio, Olark, Freshchat, Gorgias, Help Scout, HubSpot chat, WhatsApp links |
| Email & marketing | HubSpot, Mailchimp, Klaviyo, Marketo, Pardot, ActiveCampaign, Kit (ConvertKit), Brevo, MailerLite, Omnisend, Drip, Customer.io, Attentive, Privy |
| Payments | Stripe, PayPal, Shop Pay, Klarna, Afterpay, Affirm, Square, Braintree, Adyen, Amazon Pay, Razorpay, Paddle, Chargebee, Mollie |
| CDN, hosting & servers | Cloudflare, Fastly, Akamai, CloudFront, Vercel, Netlify, GitHub Pages, Google Cloud, Azure, Fly.io, Render, Heroku, WP Engine, Kinsta, Pantheon, Bunny CDN, Nginx, Apache, LiteSpeed, IIS |
| Frameworks & libraries | Next.js, Nuxt, Gatsby, Remix, Astro, SvelteKit, React, Vue, Angular, Alpine.js, htmx, Hotwire, jQuery, Bootstrap, Tailwind, GSAP, Google Fonts, Font Awesome |
| Also | A/B testing (Optimizely, VWO, AB Tasty), monitoring (Sentry, New Relic, Datadog), security (reCAPTCHA, hCaptcha, Turnstile, WAFs, HSTS), reviews (Trustpilot, Yotpo, Judge.me, Okendo), booking and forms (Calendly, Typeform, Jotform), video (YouTube, Vimeo, Wistia), site search (Algolia), accessibility widgets |
How confidence works
| Score | Evidence |
|---|---|
| 100 | Response header (server: Squarespace, x-vercel-id) or meta generator (WordPress 6.9.10) |
| 95 | Script URL (static.klaviyo.com/onsite/js/...) |
| 90 | Other resource URL (stylesheet, image, iframe) or cookie name |
| 85 | Found inside the site's Google Tag Manager container |
| 70-80 | HTML snippet (inline code such as fbq('init', ...)) |
| 60 | Implied by another technology (PHP implied by WordPress, React implied by Next.js) |
Two independent kinds of evidence add 5 points. Use minConfidence (default 50) to hide weak matches.
Input
{"urls": ["allbirds.com", "https://ghost.org", "techcrunch.com"],"extraPagesPerDomain": 1,"scanGtmContainers": true,"minConfidence": 50}
| Field | Default | What it does |
|---|---|---|
urls (required) | Domains, URLs or email addresses, one per line (commas and spaces also split). Duplicates and www / non-www twins are merged. Invalid lines (IP addresses, localhost, ftp://, words without a TLD) get a free invalid input row. startUrls ([{"url": ...}]) and domains are accepted too | |
extraPagesPerDomain | 1 | Also check up to 2 internal pages: shop / collection, pricing, blog or contact page, in that order |
scanGtmContainers | true | Read the public GTM container (gtm.js, max 2 per domain) and report the tags and IDs inside |
minConfidence | 50 | Hide detections below this score |
respectRobotsTxt | true | Skip pages that robots.txt disallows for CygnixTechDetector |
maxConcurrency | 10 | Domains in parallel. Pages within one domain are fetched one at a time |
requestTimeoutSecs | 20 | Per page |
What a run costs
You pay only for domains that were actually analyzed (page loaded and at least one technology found). The first 3 in every run are free. No start fee, and the price does not change with extra pages or the GTM scan.
| Analyzed domains | You pay |
|---|---|
| 3 | $0 (free in every run) |
| 100 | $0.15 |
| 1,000 | $1.50 |
| 10,000 | $15.00 |
| 100,000 | $150.00 |
(Exact: (domains − 3) × $0.0015.) Never billed: unreachable domains, HTTP errors, bot-protection and challenge pages, robots.txt blocks, non-HTML and empty pages, parked / for-sale domains, placeholder pages (web server default page, directory listing, suspended hosting, "site not found", or "coming soon" with no CMS/shop/analytics), invalid input lines and duplicates. Set Maximum cost per run in the run options and the actor stops exactly at that amount (tested 20 Oct 2026: a $0.003 cap = 3 free + 2 billed, run 7sqMW6AkmFBJpUyEr). Domains it didn't get to are listed in SUMMARY.notProcessedDomains so you can re-run just those. It runs on 512 MB with plain HTTP (no browser, no proxy).
How it compares (live Apify Store prices, verified 20 Oct 2026)
List prices on the Apify Free plan, read from the Apify Store API on 20 October 2026 (30-day users from the same API). There are 150+ tech-stack actors in the Store; these are the ones with real usage plus the cheapest. Several charge less on higher Apify plans.
| Actor | Price on the Free plan | ~Cost for 1,000 domains | Monthly users | Notes |
|---|---|---|---|---|
| cygnix_labs/website-tech-stack-detector (this) | $0.0015 per analyzed domain, first 3 free, no start fee | $1.50 | new | GTM container scan, tracking IDs, evidence + confidence, parked / redirect / placeholder flags, failed domains free |
| builtwith/builtwith-official-technology-scraper | $0.002 per result | ~$2 (if one result per domain) | 122 | Official BuiltWith data, the category leader |
| automation-lab/wappalyzer-technology-lookup | $0.00024 per website + $0.005 start | ~$0.25 | 34 | Cheapest paid option in bulk, Wappalyzer-style lookup |
| motivational_nickel/website-technology-detector | $0.0015 per result + $0.002 start | ~$1.50 | 19 | Same per-domain price, plus a start fee |
| bovi/builtwith-tech-stack-scraper | $0.0015 per result + $0.0005 start | ~$1.50 | 8 | Same per-domain price, plus a start fee |
| automation-lab/tech-stack-detector | $0.0023 per URL + $0.035 start | ~$2.34 | 24 | "45+ technologies" |
| apivault_labs/tech-stack-lookup | $0.005 per result + small start fee | ~$5 | 22 | Also returns emails and phones |
| scrapemint/website-tech-stack-detector | $0.01 per technology row | ~$100+ (10+ rows per site) | 39 | One row per technology |
| rl1987/wappalyzer-tech-lookup | $0.0012 per technology row | ~$12-20 | 14 | One row per technology |
| cerridwen/techstack-detector | $0.01 per result | ~$10 | 12 | 7,500+ technologies, DNS / TLS, security score |
| misterkhan/website-tech-stack-scanner | $0.10 per result | ~$100 | 25 | 7,000+ technologies |
| nexgendata/wappalyzer-replacement | $0.10 per tech detection | depends on detections | 26 | Grouped JSON output |
| magicfingers/techstack-detector, shahidirfan/Website-Tech-Stack-Detector | free | $0 + your compute | 17 / 11 | Free, basic detection |
Honest take. BuiltWith is the proven leader. It covers far more technologies and has historical data, so pick it if you need breadth or "who used X in 2022". Actors with 7,000+ fingerprints (cerridwen, misterkhan) will also name niche tools we don't. If all you need is the cheapest possible Wappalyzer-style lookup on a huge list, automation-lab's Wappalyzer lookup is cheaper per site. This actor is for evidence-backed checks of the tools that matter for prospecting and marketing audits (CMS, ecommerce, analytics, pixels, consent, chat, email, hosting) plus lead-list hygiene: it reads the GTM container, so it finds GA4, Google Ads, Meta, TikTok and LinkedIn tags that load only through Tag Manager; it returns the tracking IDs; and it tells you which domains are parked, dead, placeholders or redirect to another company, without charging for them. Against motivational_nickel and bovi (same $0.0015) you skip the start fee and get 3 free domains per run.
For AI agents / MCP
When an agent should call this actor: the user asks what a website is built with, which CMS / ecommerce platform / analytics / ad pixels / chat tool / hosting a site uses, wants a BuiltWith- or Wappalyzer-style lookup for a list of domains, wants to filter leads by technology ("which of these stores use Shopify and Klaviyo?"), or needs a site's GA4 / GTM / Meta Pixel IDs for an audit.
Connect the Apify MCP server with only this actor enabled (works in Claude, ChatGPT, Cursor, VS Code, Codex and any MCP client):
https://mcp.apify.com?tools=cygnix_labs/website-tech-stack-detector
Or search with the default server: search-actors keywords such as tech stack detector, pixel checker, website technology lookup, builtwith alternative, wappalyzer alternative.
Example call-actor input:
{ "urls": ["allbirds.com", "skullcandy.com", "franklinbbq.com"], "extraPagesPerDomain": 1 }
What to read from the result: one dataset row per domain. The flat fields (cms, ecommerce, analytics, advertising, chat, marketing, cdnHosting ...) are comma-separated names, good for quick answers. technologies[] holds the full list with confidence and evidence, and trackingIds holds GA4 / GTM / Google Ads / Meta Pixel / TikTok IDs. Check status: only ok rows are billed. Drop rows where parkedOrForSale is true or redirectedToOtherSite is true when you clean a lead list.
Cost control for agents: 3 domains are free in every run, then $0.0015 per analyzed domain. Pass maxTotalChargeUsd in callOptions to hard-cap spend. This actor is pay-per-event, so it also works with Apify agentic payments.
Example prompt: "Which of these 200 ecommerce sites run Shopify with a Meta Pixel but no TikTok Pixel? Give me the list as CSV."
FAQ
Is this Wappalyzer or BuiltWith? No. It is an independent detector with its own fingerprint rules written by Cygnix Labs. It does not use Wappalyzer's or BuiltWith's data or APIs. "Alternative" means it does the same kind of job.
Why does it find pixels that other scanners miss? Many sites load GA4, Google Ads, Meta, TikTok, LinkedIn, Hotjar and Clarity only through Google Tag Manager. The tag code lives in the public container file (googletagmanager.com/gtm.js?id=GTM-...), not in the page. This actor reads that file too. These detections are marked GTM container GTM-XXXX: ... with confidence 85. A tag in the container is configured, but it may only fire on some pages or after consent.
Does it render JavaScript? No. It reads the HTML, headers and cookies the server sends, plus the GTM container. Tools injected later by other scripts (not by GTM) may be missed. This keeps it fast and cheap.
Why was a domain not billed? It was unreachable, returned an HTTP error, showed a bot-protection or challenge page (Cloudflare, AWS WAF, reCAPTCHA), was blocked by robots.txt, returned non-HTML or an empty page, was a parked / for-sale domain or a placeholder page, or only security headers were found. You also get 3 free domains in every run. For blocked sites the row still lists what the response headers revealed (for example Cloudflare), free of charge.
How are parked and for-sale domains detected? By the parking or marketplace code on the page (Sedo, Bodis, ParkingCrew, Above, Google's domain-parking ads script, GoDaddy and Namecheap parking, Dan / Afternic / HugeDomains), a redirect to a domain marketplace, or short pages that say "this domain may be for sale". Such rows get parkedOrForSale: true and are free. Placeholder pages (nginx / Apache default page, "Index of /", suspended hosting, "site not found", "coming soon") get placeholderPage; they're free unless a real CMS, shop or analytics tool is present (for example a Shopify store behind a "coming soon" page is still billed, because the stack is real).
What does redirectedToOtherSite mean? The domain you gave ends up on a different registrable domain (jet.com → walmart.com, mint.com → intuit.com). The tech stack shown is the destination's. Useful for spotting acquired or merged companies in old lead lists. finalDomain shows where it landed. Meta-refresh and location.href redirects on near-empty pages are followed once.
Can I paste email addresses? Yes. jane@acme.com is checked as acme.com. Duplicates (several people at the same company) are merged, so you pay once per domain.
Can I check a specific page instead of the homepage? Yes. Give the full URL (https://basecamp.com/pricing) and that page is analyzed first.
How accurate are versions? Versions come from meta generator tags, headers (e.g. x-powered-by: PHP/8.0.30) and versioned script URLs. Many sites hide them, so version is often null.
Is it legal? It reads public pages only, sends one request at a time per domain, identifies itself (CygnixTechDetector) and respects robots.txt by default.
Integrations
Run it through the Apify API, schedule it, or send results to Google Sheets, HubSpot, Clay, Make, Zapier, n8n or a webhook. Export as CSV or Excel. Pair it with Outreach Contact Finder to add emails and social profiles to the same domain list.
Changelog
- 0.1.4 (2026-10-20): Reliability and billing fixes. Max cost per run is now enforced exactly under parallel processing (before, a $0.003 cap could charge one extra domain and analyze and drop several more); domains not reached are listed in
SUMMARY.notProcessedDomains. Parked / for-sale domains and placeholder pages are now detected and never billed (newparkedOrForSale,placeholderPage). NewfinalDomainandredirectedToOtherSite. Meta-refresh / JS redirects on near-empty pages are followed (they used to be reported as empty pages). Email addresses are accepted as input. Invalid lines and unexpected errors now produce a free row instead of disappearing.http://inputs fall back tohttps://, and error messages are readable (DNS: domain does not resolve,timeout,TLS/SSL certificate error). Rival prices re-verified 20 Oct 2026. - 0.1.3 (2026-10-19): First public release (the sample above comes from build 0.1.2, same code; 0.1.3 adds this README). 314 fingerprint rules in 25 categories, GTM container scan, tracking ID extraction, schema.org / Open Graph / hreflang checks, bot-challenge and robots.txt handling. $0.0015 per analyzed domain, first 3 free every run. Rival prices verified 19 Oct 2026.
More tools by Cygnix Labs
- Outreach Contact Finder: Website Emails, Phones & Socials
- Website SEO Audit & Site Audit + AEO/GEO Checker
- AEO & GEO Audit + llms.txt Checker (URL list)
- Internal Link Audit & Orphan Page Finder
- Keyword Clustering + Content Briefs
- Free local SEO MCP server: cygnix-seo-mcp (
npx -y cygnix-seo-mcp)
Questions or a feature request? Open an issue on this actor's Issues tab. We answer within 24 hours.