Beta open now: browse the apps, connect your agents, and get started
Sundogs Log in
Sundogs

All appsSEO and links

SEO Pack Beta

Links chosen keywords to your own pages and /go/ links automatically, counts visits from AI and search crawlers (telling real ones from fakes, and how many people AI sends you), publishes /llms.txt and (if you have none) /sitemap.xml, and tells IndexNow search engines about new and changed pages.

$19 USD per site · $59 USD for all your sitesv0.5.4Cloudflare free plan

Beta

SEO Pack is in beta: it works, but things may still break. Tell us if something does: open an issue. Every paid order has a 7-day refund.

Buy SEO Pack

$19 USD per site · $59 USD for all your sites

A site license covers one website (plus its www, staging and test addresses). Using it on other sites isn't allowed. Get the all-sites license from $59 instead.

Every license includes 12 months of updates; the version you download keeps working after that, and you can renew updates for about half the price.

Buy SEO PackRead the license

7-day refund, no questions asked · Refund policy

Instant download after payment: the app's code and a license file for your site; your AI agent installs it. Includes 12 months of updates.

You'll log in first (new here? that creates your account), then pick the site and review the order before paying.

Ask your AI agent to install this

Paste this into your AI agent (Claude Code, Codex, Cursor or another), opened in your site's project. It tells you what the app needs and costs before it changes anything.

Install the SEO Pack app (id: seo) from the Sundogs site apps store on this site.
First read https://sundo.gs/apps/seo.md and tell me what it needs and what it costs.
If I don't own it yet, start a checkout with create_checkout and give me the link; I'll tick the license and pay myself.
Then download it with get_download for this site's domain. Follow the install guide (site-apps/INSTALL.md in the download, also at https://sundo.gs/install-guide.md).
Check it with the install guide's step 6 (the public status, then the self-test once you can sign in to the admin) and tell me what's next.
(Not connected to the store yet? See https://sundo.gs/agents.)

Connect your agent

What it needs

Cloudflare plan
Cloudflare free plan
Works on
Cloudflare Workers, Cloudflare Pages
Version
0.5.4 (site layer 0.22.0 or later)
Price
$19 USD per site · $59 USD for all your sites
All the details
  • Runs on the Cloudflare free plan, in the same D1 database as your other site apps. No outside accounts or keys are needed.
  • Optional outside account: External indexers (off by default). If you choose one, such as RalfyIndex (ralfyindex.com, paid per URL in credits), you sign up and pay for it yourself and set its key as a Worker secret (SEO_RALFYINDEX_KEY). Only page addresses are sent to it, at most one request a second, within a daily cap you set.
  • Your pages are learned as visitors and crawlers open them (title, description, main heading), so a page appears in /llms.txt and /sitemap.xml after its first visit. You can also paste a list, import an existing sitemap, or scan pages from the admin.
  • Page views run through the app so links can be added and pages learned; images, CSS, JS and fonts are served directly. Page views count toward the Cloudflare free 100,000 requests/day (Workers Paid removes the daily cap).
  • AI crawler visits and newly seen pages are saved in batches within the site's daily write budget, so busy sites stay inside the Cloudflare free limits.
  • Outside requests: the site downloads the crawler IP lists OpenAI, Google, Microsoft, Perplexity, Apple, Common Crawl, DuckDuckGo and Mistral publish, from their own addresses, at most once a day each (about 13 small downloads a day), to tell real crawlers from fakes. You can turn this off under Crawlers → Manage bots. Nothing goes to us. Real signature checks for signed agents (such as ChatGPT agent) are off by default; when on, the site fetches that agent's own public key list.
  • Crawler counts are what your site sees: requests Cloudflare blocks first (Block AI bots, Bot Fight Mode, AI Crawl Control) and files the host serves directly never reach it. Optional: one free Cloudflare Transform Rule lets the Cloudflare verified-bot flag reach the site (steps in the admin; nothing breaks without it).
  • Crawler alerts (off by default) are sent by email through the site's notification settings in Forms. Conversions from AI-referred visits show when Analytics is installed; the redirect button on crawler errors needs Links & Redirects.
  • IndexNow is off until you turn it on. When on, the site sends only page addresses (never page content) to api.indexnow.org, at most once per interval you choose, and serves a key file at /<key>.txt. Google does not use IndexNow.
  • If your site already has /llms.txt or /sitemap.xml as a file, the app leaves it alone and says so in the admin.
  • Works with Links & Redirects when installed (link keywords to your /go/ links). Install order doesn't matter; removing either app never breaks the other.
  • Cost per visit: page views add no requests; newly seen pages and crawler hits are saved in batches (one save at most about once a minute per Worker instance, at most 5 statements, and 200 new pages and 400 new crawler rows an hour per instance). Measured: a crawler hit costs about 2.4 database rows when hits are spread out (5,000 crawler hits over a day, 8 bots and 300 pages: 11,894 rows, under a third of the default 40,000-row daily budget), less when a bot fetches the same page within a minute; a person's visit from another site adds one counter row (two with its index), saved with the same batch; the per-request check of a crawler takes a few microseconds of CPU. Blocking a bot at the site adds no write. If the daily write budget or the Cloudflare free database limit is reached, learning pauses and /llms.txt and /sitemap.xml keep serving. With an external indexer's automatic sending on, a page view after the response may start the site's hourly send or a status check (a few outbound requests, at most once an hour and once every 5 minutes for the whole site).

Site on another host? Start here checks what you have.

Works with

Cloudflare and the Cloudflare logo are trademarks of Cloudflare, Inc. Sundogs is not affiliated with or endorsed by Cloudflare. All other trademarks and logos are the property of their respective owners.
  • Cloudflare Workers
  • Cloudflare Pages
  • Astro
  • Next.js
  • Vite
  • Hugo
  • HTML
  • Vanilla JS
  • IndexNow
  • Bing Webmaster Tools
  • Google Search Console

Works with your other apps

Connects with no setup, in any install order:

Included

What's new

SEO Pack 0.5.4 · Nov 7, 2026

  • When your site already serves its own /llms.txt or /sitemap.xml, the admin now says so ("Your own file") instead of a bare "Off" that looked like something was missing.
Show full history

SEO Pack 0.5.3 · Nov 6, 2026

  • Marked as beta: it works, but things may still break. The admin shows where to report a problem.

SEO Pack 0.5.2 · Nov 6, 2026

  • Right after an install or update, crawler verification says it starts once the crawler vendors' IP lists have downloaded (within a day), instead of showing 0% verified.
  • The update notes now say that the IP list downloads are on by default (once a day per vendor; nothing goes to us; off under Manage bots).

SEO Pack 0.5.1 · Nov 5, 2026

  • Small wording updates in the admin and in the instructions for your AI agent. Nothing else changes.

SEO Pack 0.5.0 · Nov 5, 2026

  • New: crawler intelligence. The Crawlers tab now shows which AI and search crawlers are real, what answers they got, and whether being read by AI turns into visits.
  • The AI crawler funnel: for each AI company, its bots by purpose, how often they fetched your pages, and how many people its assistant sent you (tagged or by referrer), with a per-page list that finds pages AI reads a lot but sends nobody to. A simple diagram on a computer, a list on a phone.
  • Real or fake: each crawler hit is checked against the IP list the vendor publishes, which your site downloads from OpenAI, Google, Microsoft and the others once a day (you can turn this off). Hits that use a bot's name from the wrong address are counted as "not verified" and never blocked.
  • Googlebot, Bingbot and DuckDuckBot are counted next to the AI crawlers, plus OAI-AdsBot and agents that sign their requests, such as ChatGPT agent.
  • New views: errors crawlers hit (one-click redirect when Links & Redirects is installed), how fast new pages are found, every page's first and last crawl, the latest hits, and pages in your sitemap no crawler fetched for 30 days.
  • robots.txt: an AI-openness grade, the rules each AI bot gets, the Cloudflare rules when it adds them, the version history, and crawlers that fetched pages it disallows.
  • Manage bots: allow or block each bot. Blocking shows the robots.txt lines to add and how to block it at Cloudflare first; your site can also refuse verified hits from a blocked bot.
  • Optional email alerts, off until you turn them on: a new crawler, an errors spike, slow answers, or a crawler fetching pages robots.txt blocks, with a daily cap.
  • AI agents get seo_crawler_overview, seo_crawler_funnel, seo_crawler_pages, seo_crawler_discovery, seo_crawler_errors, seo_crawler_recent, seo_robots_report, seo_bot_policy and seo_crawler_alerts, and the self-test checks the IP lists and robots.txt.

SEO Pack 0.4.0 · Nov 4, 2026

  • New, off unless you turn it on: External indexers. Paid services you sign up for yourself that ask search engines to crawl your pages, starting with RalfyIndex (run by a friend of our team; more providers can follow). A plain warning comes first and you tick "I understand" to turn one on.
  • Your key stays a Worker secret on your site (never in the database or the admin, which shows only its last four characters). Only page addresses are sent, straight to the service you chose.
  • Send chosen new and changed pages, or turn on automatic sending: a daily cap (20 URLs by default), a credit check before every send that stops before you run out, Bing off by default (IndexNow already covers it), and Instant Indexer only when you pick it and agree to its cost (10 credits per URL).
  • A submissions log shows what was sent, the credits used and when the service processed it. AI agents get seo_indexers_list, seo_indexer_check and seo_indexer_submit, and the self-test checks the key without spending credits.

SEO Pack 0.3.5 · Nov 4, 2026

  • Updated instructions for your AI agent: it turns the app off with app_toggle and asks you for the exact word before a high-risk delete. Nothing changes on your pages.
  • Notices are now clean tinted cards in their status color, with no side edge.

SEO Pack 0.3.4 · Nov 4, 2026

  • Fixed: a deleted rule's words no longer reappear in the Add a rule form. Every save, delete and switch now returns to the plain Internal links tab, so a reload never refills the form.
  • The Internal links tab is simpler: one status line (on or off, rules, pages with links), a one-sentence explanation with "How it works" for the details, and the rules list first. Add rule and Edit open a side panel where you can preview the pages a rule would link before saving.
  • Picking one of your Links & Redirects /go/ links fills "Link to" (also without JavaScript). Limits have clearer labels, and suggestions show five at a time.
  • Making a new IndexNow key asks first and says the old key file stops working.

SEO Pack 0.3.3

  • A /llms.txt or /sitemap.xml that the site's own Worker serves now wins too, not only a static file, so the app never answers over it.

SEO Pack 0.3.2 · Nov 2, 2026

  • Turning the sitemap on while the site serves its own sitemap.xml now says so ("Your site has its own sitemap.xml (4 pages); remove it or keep it, but they shouldn't both exist"), in the toggle answer and in the self-test.
  • seo_crawlers says its user agents come from visitors (untrustedText: true plus a note).
  • Deleting a link rule now asks you to confirm first.

SEO Pack 0.3.0 · Nov 1, 2026

  • AI agents: seo_rule_toggle takes on:true or on:false (safe to retry); seo_rule_save's dry run returns the complete rule, the same warnings, and refuses a keyword that already has a rule, naming its id.

SEO Pack 0.2.4 · Nov 1, 2026

  • seo_rule_toggle and seo_rule_delete accept a rule's keyword as well as its id, like seo_rule_get. The self-test shows an IndexNow "too many requests" answer as a note (amber), not a failure, because no page is lost and the next ping retries.

SEO Pack 0.2.3 · Oct 31, 2026

  • Phone admin: pages, rules, crawlers and the report are compact list rows; a rule's on/off state is a small dot after the keyword, and the extra actions sit in a "⋯" menu.

SEO Pack 0.2.2 · Oct 31, 2026

  • Admin pages work like a phone app: a menu drawer instead of a tab strip, 44px tap targets, fields that bring up the right keyboard, save buttons that stay in reach on long forms, and no sideways scrolling at any phone or tablet width.

SEO Pack 0.2.1 · Oct 31, 2026

  • Agents: new seo_rule_get; seo_rule_save by id now changes only what it names (keyword and target are only required when adding); self-test fixes name the tool to use.

SEO Pack 0.2.0 · Oct 30, 2026

  • Your AI agent can manage this app through the admin's MCP connection (Settings, Connect an agent), signed in with Cloudflare Access like you. Deletes ask for a second confirmation; personal data is left out unless asked for.

SEO Pack 0.1.1 · Oct 30, 2026

  • States its cost per visit (requests and database writes) before you install, and can be turned off in an emergency from Settings, Apps.

SEO Pack 0.1.0 · Oct 30, 2026

  • First release of the SEO Pack, with a switch for each part. Link report: which of your pages link to which, pages nobody links to (orphans), dead ends, a coverage score and your important "money pages", with a CSV download.
  • Rule review: see which pages and sentences a new link rule would change before you turn it on, and how many pages each rule links.
  • With Links & Redirects installed, broken internal links are listed from its 404 monitor ("page X links to missing page Y").
  • Internal linker: turn chosen keywords into links to your own pages or your /go/ links, as pages are served, with caps per page and never inside headings, links, code, buttons or menus.
  • AI crawler stats: visits per day, crawler and page from GPTBot, ClaudeBot, PerplexityBot and 14 more, with 7/30/90-day charts.
  • /llms.txt built from your pages (titles, links, descriptions) with your own intro and include/exclude rules; optional /llms-full.txt. A file you already serve is never overridden.
  • /sitemap.xml for sites without one, and IndexNow pings for new and changed pages (Bing, Yandex, Seznam, Naver and others; Google doesn't use IndexNow).
  • The site status page reports the SEO Pack as ok when it is on.

Questions

Do I need to write code?

No. Your AI coding agent installs it into your site's project and deploys it with your own Cloudflare account. You approve the changes.

Does it send my site's data anywhere?

No. It runs in your own Cloudflare account. The store never sees your visitors, your form entries or your settings.

What happens after 12 months?

The version you have keeps working. Renew for about half the price if you want 12 more months of updates.

Can I use it on client sites?

Yes, with a site license per client site. The all-sites license covers the sites you own or run yourself.

What does it need from Cloudflare?

Cloudflare free plan, on Cloudflare Workers, Cloudflare Pages.

Guides for this job

The decisions, rules and setup around it, and where the app fits.