SWPanel bots
SWPanelBot-Code
Finds out whether the website's CMS, plugins and themes are up to date, for code analysis and audit.
Mozilla/5.0 (compatible; SWPanelBot-Code/1.1; +https://www.swpanel.com/bots/code)
Feature: Code analysis Operator: DeepThink Software SLU Contact: [email protected] Version: 1.1 Reviewed on: October 17, 2026
Technical sheet
Everything SWPanelBot-Code does
Taken from the module's code. If the bot changes what it does, this sheet and its version change.
Identity
- Name
-
SWPanelBot-Code. 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
- Other
- Operator
- DeepThink Software SLU, owner of SWPanel. Legal information.
- Contact
- [email protected]
- Previous names
-
SWPanel-CodeAnalyzer/2026SWPanel/SEOAnalyzer/1.0; headless
When and how much
- When it visits
- When requesting a code analysis or audit, and in SOC analyses.
- Frequency
- Once per analysis.
- Per analysis
- One query to the APIs per component (CMS, plugin or theme) and, in live analysis, up to 20 pages of the website.
- In parallel
- Never. One page at a time.
How it requests
- The code
- It's read on the server itself, with the SWPanel agent. It doesn't go through the web.
- Versions
-
Queries
api.wordpress.org,api.github.comandendoflife.date. Waits 10 seconds to connect and 25 for the response. - Live analysis
- Opens up to 20 pages: the home page, the most visited according to the server logs and those in the sitemap.
- The browser
- A windowless Chromium (Playwright), with a 1920 × 1080 screen. It runs JavaScript and loads everything the page requests: images, styles, scripts and third-party services.
- Browser name
- Compliant It identifies itself as SWPanelBot-Code.
- Cookie notice
- Compliant It doesn't touch it: it neither accepts nor rejects it, so it doesn't load the website's analytics or leave a consent nobody gave.
- Waits
- Up to 25 seconds per page, for the network to go quiet. If a first-party script fails, it requests it again, with an 8-second wait, to read the error fragment.
- 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.comthat resolves back to the same IP.
Standards it applies
- robots.txt
- Exempt, with justification It doesn't consult it. Live analysis is requested by the owner, like Google's “user-triggered fetchers”, and APIs have no robots.txt to apply.
- 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.
- If the website asks to slow down
- Pending The live-analysis browser doesn't yet slow down on 429 and 503. It compensates by going slowly: one page at a time and 20 at most.
- HTTP cache
- Not applicable Each analysis must see the page as a visitor sees it today.
- Signature
- Pending The live-analysis browser doesn't sign yet. Version queries go to public APIs, not to your website.
- Contact in the request
-
Pending
The live-analysis browser doesn't yet carry
From: [email protected].
What it does with the data
- What it reads
- The versions of the CMS, plugins and themes and, live, the JavaScript errors, the failing requests and a screenshot of the page.
- What it stores
- The versions found and the errors, with the fragment of first-party code where each one fails.
- How long
- With the analysis report, in the owner's SWPanel.
- What for
- For the code analysis and audit of the service owner.
- Privacy
- SWPanel's general privacy policy.
How it works
One pass, step by step
-
Reads the code
The SWPanel agent reads on the server which CMS, plugins and themes are present, and in which version.
-
Queries versions
Asks the public APIs what the latest version of each is and whether it is still supported.
-
Picks pages
The home page, the most visited according to the logs and those in the sitemap, up to 20.
-
Opens them
One at a time, in a windowless browser, and waits for it to finish loading. It doesn't touch the cookie notice.
-
Collects the errors
JavaScript errors, exceptions and failing requests, and separates those of the website itself from third-party ones.
-
Leaves the report
With what needs updating and each error with its code fragment.
In your logs
This is how SWPanelBot-Code looks
An example in Apache and Nginx combined format. The IP and domain are for documentation: yours will be different.
Live analysis loads each page with everything it carries, like a browser. Version queries go to the APIs and don't appear in your logs.
Verify
Is it really SWPanelBot-Code?
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
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
A JSON file in the JAFAR format proposed by the IETF, linked from this page.
Request signature Pending
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-Code 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 code analysis in your SWPanel.
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
Live analysis won't find the JavaScript errors.
robots.txt doesn't stop it: we explain this in Standards. Its owner stops it, from SWPanel.
Standards
What the standards ask for, and how SWPanelBot-Code is doing
Our situation on each point, without embellishment.
| What they ask for | Status |
|---|---|
| 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 | Compliant |
| That the windowless browser identifies itself by name and doesn't accept cookies Same rules: honest identity and not acting on behalf of a visitor | 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. The owner requests it and it is a one-off check. | Exempt, with justification |
| 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. The live-analysis browser, not yet. | Pending |
| Respect the HTTP cache “Crawler best practices”, 2.4, and RFC 9111. It needs the current response. | Not applicable |
| A contact in the request: From header RFC 9110, 10.1.2 | Pending |
| 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. Today it signs the API queries; the live-analysis browser, not yet. | Pending |
| 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.
| Version | Date | Change |
|---|---|---|
| 1.0 | 12-10-2026 | New name, SWPanelBot-Code, in version queries. Replaces SWPanel-CodeAnalyzer. |
| 1.1 | 17-10-2026 | Links to this sheet. The live-analysis browser identifies itself as SWPanelBot-Code and no longer accepts the cookie notice. It only visits active services. |
| Next | No date | The live-analysis browser will start signing, slowing down on 429 and 503 and carrying the From header. |
Frequently asked questions
Questions about SWPanelBot-Code
The other bots
Each one, with its own sheet
-
SEO reports and tracking
SWPanelBot-SEOCrawls the customer's website, like a search engine, for their SEO report and tracking.
See the technical sheet -
Availability monitoring
SWPanelBot-UptimeChecks about four times a day that the website responds and alerts if it goes down or runs slow.
See the technical sheet -
Security 360
SWPanelBot-SecurityReviews from outside the certificate, the headers and files that should never be public.
See the technical sheet -
AI websites and stores
SWPanelBot-WebGathers the photos, icons and logo for the website or store the owner creates with AI.
See the technical sheet