SWPanel

SWPanel bots

SWPanelBot-SEO

Crawls the website as a search engine would for the SEO report and tracking: titles, descriptions, headings, links, response codes, canonical, hreflang and structured data.

User-Agent Mozilla/5.0 (compatible; SWPanelBot-SEO/1.1; +https://www.swpanel.com/bots/seo)

Feature: SEO reports and tracking Operator: DeepThink Software SLU Contact: [email protected] Version: 1.1 Reviewed on: October 17, 2026

Technical sheet

Everything SWPanelBot-SEO does

Taken from the module's code. If the bot changes what it does, this sheet and its version change.

Identity

Name
SWPanelBot-SEO. It is also its name for robots.txt.
Family
SWPanelBot: the common name of all SWPanel bots.
Version
1.1, the one in the User-Agent. The changes in each version are below.
Type
Direct: run and controlled by SWPanel, always on behalf of the service owner.
Category
SEO
Operator
DeepThink Software SLU, owner of SWPanel. Legal information.
Contact
[email protected]
Previous names
SWPanel/SEOAnalyzer/1.0 SWPanelSEO/1.0 SWPanel/SEOAnalyzer/1.0; headless

When and how much

When it visits
Scheduled, on websites with the SEO module active, and every time the owner requests a report. A SWPanel user can also manually request the report of a website that isn't in SWPanel: then it visits just once.
Frequency
One pass every 30 days on the Basic plan and every 7 days on Professional and Premium, plus reports requested manually.
Opening hours
Scheduled passes come from SWPanel's nightly process. Manual reports, when the owner requests them.
Per pass
Up to 10, 100 or 200 pages depending on the plan, at most 5 clicks from the home page, plus robots.txt and the sitemap. The pass is cut off at 15 minutes even if pages remain.
Per month
At most about 12, 440 or 870 requests depending on the plan, not counting manually requested reports.
In parallel
Never. One request at a time per website.

How it requests

What it requests
The home page, /robots.txt, the sitemap declared by robots.txt (or /sitemap.xml) and HTML pages on the same domain found by following links. For the report, additionally, a screenshot of the home page with a windowless browser, which today arrives under the name SWPanelBot-Code.
Methods
GET only.
Redirects
It follows them, to know where each link leads.
Certificate
It doesn't cut the visit short because of a certificate problem.
Cookies
It neither stores nor sends cookies.
JavaScript
It doesn't run it: it reads the HTML as the server serves it. The report's screenshot does use a browser.
Waits
Up to 12 seconds to connect and 20 for the response on each page; on robots.txt, 10 and 15.
Retries
None. If a page fails, it notes it and moves on to the next.
Origin
In preparation From SWPanel's servers. We're reserving some outgoing IPs just for the bots; once they exist, we'll publish them here in a JSON file.
Reverse DNS
In preparation Each IP will have a name under bots.swpanel.com that resolves back to the same IP.

Standards it applies

Which websites it visits
Compliant It only visits websites of active SWPanel services and stops as soon as the service is cancelled: it checks before every request. The only exception is the report a user requests manually, which may be for a website that isn't in SWPanel. Even then it respects robots.txt.
robots.txt
Compliant It requests it under its name and stores it for 24 hours at most. It first looks for the SWPanelBot-SEO group and, if there isn't one, the SWPanelBot group, and if not, the * group, as RFC 9309 dictates. If robots.txt returns 404, it understands it can crawl everything; if it returns a 5xx error or doesn't answer, it doesn't crawl.
Crawl-delay
Compliant It respects the Crawl-delay of the SWPanelBot-SEO group or, if there isn't one, of the SWPanelBot group: it waits as long as requested between two pages of the same website. If it asks for more than 60 seconds, it looks at one page and leaves the website until the next pass; if the waits in one pass add up to more than 2 minutes, it does too.
If the website asks to slow down
Compliant On 429 or 503 it waits as long as Retry-After says if it's 60 seconds or less (10 if it doesn't say). If it asks for more, it leaves the website until the next pass. After 3 consecutive 5xx errors, it also leaves it.
HTTP cache
Compliant It requests with If-None-Match and If-Modified-Since. If the page hasn't changed (304), it doesn't download it again and uses the copy it already has.
Signature
Compliant It signs every request with Web Bot Auth (RFC 9421, Ed25519): Signature, Signature-Input and Signature-Agent headers. The public key is at https://www.swpanel.com/.well-known/http-message-signatures-directory.
Contact in the request
Compliant It carries From: [email protected], as RFC 9110 asks of automated clients.

What it does with the data

What it reads
Titles, descriptions, headings, links, response codes, canonical, hreflang, structured data, word count and weight of each page.
What it stores
The metrics of each page and the list of problems, in the owner's SWPanel.
How long
Problems, about 30 days. Metrics have no deletion date: they serve to see the evolution.
What for
Only for the SEO report and tracking of the service owner. Some reports use AI to write the conclusions from this data. It is not used to train AI models, nor sold or shared.
Privacy
SWPanel's general privacy policy.

The report also requests data from third-party services, which visit the website under their own name: Google's PageSpeed Insights measures the home page on the Premium plan and the W3C validator checks the HTML. Those visits are not SWPanelBot.

How it works

One pass, step by step

  1. Chooses the websites

    Every night, the SEO process takes the websites of active services due for a pass according to their plan: higher plans first and, within each, those that have gone longest without review.

  2. Reads robots.txt

    Requests /robots.txt to analyze it, find the sitemap and know what it may crawl. Before each page it checks that robots.txt allows it and that the service is still active.

  3. Builds the list

    It starts with the home page and the pages with the most impressions in Google Search Console, if the owner has connected it, and adds those from the sitemap.

  4. Crawls the website

    Requests one page at a time and follows internal links up to 5 clicks from the home page, without leaving the domain. If the website answers 429 or 503, it slows down.

  5. Stops in time

    On reaching its plan's page cap or 15 minutes, whichever comes first. What it doesn't have time to see, it sees on the next pass.

  6. Leaves the report

    Calculates the problems, such as missing or duplicate titles, pages without H1, thin content or 4xx and 5xx errors, and leaves them in the owner's SWPanel.

In your logs

This is how SWPanelBot-SEO looks

An example in Apache and Nginx combined format. The IP and domain are for documentation: yours will be different.

203.0.113.10 - - [17/Oct/2026:03:12:04 +0200] "GET /robots.txt HTTP/1.1" 200 412 "-" "Mozilla/5.0 (compatible; SWPanelBot-SEO/1.1; +https://www.swpanel.com/bots/seo)" 203.0.113.10 - - [17/Oct/2026:03:12:05 +0200] "GET /sitemap.xml HTTP/1.1" 200 2290 "-" "Mozilla/5.0 (compatible; SWPanelBot-SEO/1.1; +https://www.swpanel.com/bots/seo)" 203.0.113.10 - - [17/Oct/2026:03:12:06 +0200] "GET / HTTP/1.1" 200 48211 "-" "Mozilla/5.0 (compatible; SWPanelBot-SEO/1.1; +https://www.swpanel.com/bots/seo)" 203.0.113.10 - - [17/Oct/2026:03:12:08 +0200] "GET /servicios/ HTTP/1.1" 200 30554 "-" "Mozilla/5.0 (compatible; SWPanelBot-SEO/1.1; +https://www.swpanel.com/bots/seo)" 203.0.113.10 - - [17/Oct/2026:03:12:09 +0200] "GET /contacto/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (compatible; SWPanelBot-SEO/1.1; +https://www.swpanel.com/bots/seo)"

A single IP, pages of the same domain, one after another. The 304 response is the HTTP cache: the page hadn't changed.

Verify

Is it really SWPanelBot-SEO?

A User-Agent can be copied. That's why it must be checked together with everything else. The examples use a documentation IP.

Reverse DNS In preparation

$ host 203.0.113.10 10.113.0.203.in-addr.arpa domain name pointer crawl-203-0-113-10.bots.swpanel.com. $ host crawl-203-0-113-10.bots.swpanel.com crawl-203-0-113-10.bots.swpanel.com has address 203.0.113.10

The IP must resolve to a bots.swpanel.com name, and that name to the same IP. If only the first part holds, it isn't ours.

IP list In preparation

$ curl -s https://www.swpanel.com/bots/ips.asp {"formatVersion": "1.0", "creationTime": "…", "prefixes": [{"ipv4Prefix": "203.0.113.0/28", "service": "SWPanelBot"}]}

A JSON file in the JAFAR format proposed by the IETF, linked from this page.

Request signature Available

Signature-Agent: "https://www.swpanel.com" Signature-Input: sig1=("@authority" "signature-agent"); created=1792224000;expires=1792224300; keyid="…";alg="ed25519";tag="web-bot-auth" Signature: sig1=:…:

Web Bot Auth headers. The public key is at /.well-known/http-message-signatures-directory on www.swpanel.com: with it, any firewall that understands Web Bot Auth verifies the request is ours.

What it requests Available

Compare what you see with the sheet: the paths, the frequency and the volume. A bot called SWPanelBot-SEO that does something else isn't ours.

If you doubt a visit, write to us at [email protected] with the domain, the time with its time zone, the IP and the log line, and we'll check it.

Stopping it

The owner requests it. The owner turns it off.

Our bots only visit websites of active SWPanel services, only for the functions their owner has active, and stop visiting as soon as the service is cancelled.

If you are the owner

Disable the service's SEO module in your SWPanel: tracking and reports stop.

If you are not

If the domain is no longer in SWPanel you shouldn't receive any scheduled visit. If you do, write to us at [email protected] and we'll stop it.

In the firewall

To let it through, use the name together with the IP or the signature, not just the name. Watch out for generic rules: a pattern like “bot” also matches SWPanelBot.

If you block it

The SEO report and tracking will come out empty.

With robots.txt Compliant

# Que SWPanelBot-SEO no entre en la zona privada User-agent: SWPanelBot-SEO Disallow: /privado/ Crawl-delay: 5 # O para todos los bots de SWPanel que leen robots.txt User-agent: SWPanelBot Disallow: /tmp/ # Si cierras la web a todos con «User-agent: *» y «Disallow: /» # pero quieres el informe SEO, ábrela solo a SWPanelBot-SEO User-agent: SWPanelBot-SEO Allow: /

Changes take effect on the next pass: it caches robots.txt for 24 hours at most.

Standards

What the standards ask for, and how SWPanelBot-SEO is doing

Our situation on each point, without embellishment.

What the standards ask for, and how SWPanelBot-SEO is doing
A proper name in the User-Agent, with the address of its page RFC 9110, 10.1.5, and IETF draft “Crawler best practices”, 2.2 Compliant
A valid name for robots.txt: letters, hyphens and underscore RFC 9309, 2.2.1 Compliant
Visit only websites of active SWPanel services, and stop as soon as the service is cancelled SWPanel's own commitment. Except for the report a user requests manually. Compliant
Read and respect robots.txt RFC 9309 and “Crawler best practices”, 2.1. The draft allows documented exemption for crawlers that work on commission. Compliant
Respect Crawl-delay Outside RFC 9309, but Bing applies it and Cloudflare asks verified bots for it Compliant
Don't hinder the website: one request at a time, page and time limits, and short waits “Crawler best practices”, 2.3 Compliant
Slow down if the website answers 429 or 503 “Crawler best practices”, 2.3, and RFC 9110, 15.6 Compliant
Respect the HTTP cache “Crawler best practices”, 2.4, and RFC 9111 Compliant
A contact in the request: From header RFC 9110, 10.1.2 Compliant
Publish the outgoing IPs in JSON, linked from this page “Crawler best practices”, 2.5, with the JAFAR format In preparation
Reverse DNS that can be confirmed Practice of Google, Bing and Cloudflare for verifying bots In preparation
Sign requests (Web Bot Auth) IETF draft “HTTP Message Signatures for Bots”, September 2026 Compliant
Public page with what it does, what it stores, contact, how to stop it and the exemptions “Crawler best practices”, 2.6 Compliant

Partially: compliant with a caveat, explained in the row. In preparation: depends on the network, such as dedicated IPs and their reverse DNS. Pending: no date yet.

Versions

What has changed

The version goes in the User-Agent. When the bot changes what it does, the version and this sheet change.

What has changed
1.0 12-10-2026 New name, SWPanelBot-SEO, with the link to the bots page. Replaces SWPanel/SEOAnalyzer and SWPanelSEO.
1.1 17-10-2026 Links to this sheet. Applies robots.txt and Crawl-delay, slows down on 429 and 503, uses the HTTP cache, signs requests, carries the From header and only visits active services.
Next No date The * group of robots.txt.

Frequently asked questions

Questions about SWPanelBot-SEO

Yes. It follows the SWPanelBot-SEO group, then SWPanelBot and, if neither exists, the * group.

Yes, with Crawl-delay in the SWPanelBot-SEO or SWPanelBot group of your robots.txt: it waits that many seconds between pages. With more than 60, it looks at a single page per pass. It also slows down if the website answers 429 or 503.

Scheduled crawling, never: it only goes to active services and stops as soon as they are cancelled. A user can manually request a report for any website; in that case it visits once and respects robots.txt.

Because it also starts from the sitemap and from the pages with the most impressions in Google Search Console, if the owner has connected it.

The crawl does not: it does not run JavaScript, so it does not show up in Google Analytics or similar tools. It is only visible in the server logs. The homepage screenshot for the report does use a browser and may count as a visit.