Help / Integrations / SeoSwift & Linear
SeoSwift & Linear
For admins & SEO leads · ~5 min read · Last reviewed 22 July 2026
Two optional integrations connect SeoKestrel to tools outside it: SeoSwift, the sister crawler product that supplies every number in the Site Health hub, and Linear, for teams that already run their SEO work as Linear issues.
What SeoSwift is
SeoSwift is a technical SEO crawler — a separate product from the same maker. It crawls a site, checks metadata, structured data, and indexation signals, and scores overall crawl health. SeoKestrel itself has no crawler; instead, each client can be mapped to a SeoSwift site, and everything on the Site Health hub — the health gauge, changelog, metadata table, indexation census, and printable report — is served by SeoSwift through SeoKestrel’s backend.
Connecting a client (one click)
- Leave the SeoSwift site crawler toggle on when adding the client — the connection is made automatically in the background and the first crawl starts on its own.
- Or connect later: press Connect on the SeoSwift row in Settings → Integrations, or the Connect SeoSwift button that the Site Health hub shows for unconnected clients.
- On success the row reads Connected with the mapped site, and health scores appear once the first crawl completes.
If the connection is declined — most commonly the SeoSwift workspace’s site limit — the UI says exactly that (“Could not connect — SeoSwift declined (plan limits?) or is unreachable.”) and the Connect button remains available for a retry. A failed connect never blocks creating or using the client.
The data boundary
The two products talk server-to-server, never from your browser, and the boundary is deliberately narrow:
- What crosses: derived crawl results — health scores, metadata findings, change events, and indexation figures for the mapped site.
- What never crosses: Google credentials. Your Search Console connection lives in SeoKestrel; SeoSwift’s own Google access lives in SeoSwift. Neither product hands its tokens to the other.
Fail-closed honesty
When SeoSwift itself does not trust a figure — a stale crawl, a partial inspection sample, an unexpected data format — SeoKestrel suppresses the figure rather than guessing. You will see a labelled sample, a greyed section, or a designed empty state instead of a confidently wrong number. Site health walks through each of those states.
Linear: task sync
Teams that plan work in Linear can have those issues appear inside SeoKestrel as tasks. The sync is configured per client — a Linear API key plus the team and project to follow — and from then on:
- Every hour, SeoKestrel pulls the issues and creates or updates a matching task: title, status, priority, and due date, normalised to SeoKestrel’s vocabulary.
- When an issue is completed in Linear, the matching task in SeoKestrel is marked done, with the completion time carried over.
- The sync is one-way (Linear → SeoKestrel). Linear stays the source of truth; SeoKestrel never writes back to it.
Tasks can also be created directly in SeoKestrel and linked to a Key Result from the OKRs page — Linear is optional, not required.
Good to know
- Some Site Health features depend on the SeoSwift workspace’s plan. When a feature is plan-gated, the hub shows a banner saying so instead of an empty hole.
- Crawls can be triggered manually with Run crawl on the Site Health hub; if one is already running you’ll be told “A crawl is already in progress for this site.”
FAQ
- Connect failed with "SeoSwift declined (plan limits?) or is unreachable". What do I do?
- Usually the SeoSwift workspace has hit its site limit, or the service had a moment. Free a slot (or upgrade the SeoSwift plan) and press Connect again from Settings → Integrations — the button is retryable.
- Does SeoSwift see my Google Search Console account?
- No. The boundary is strict: SeoKestrel consumes crawl-derived results from SeoSwift over a server-to-server connection. Google credentials never cross between the products.
- Tasks I complete in SeoKestrel are not closing in Linear. Bug?
- No — the sync is one-way, from Linear into SeoKestrel. Close the issue in Linear and the linked task updates on the next hourly sync.