Install
openclaw skills install serpzilla-seo-guest-postingSkill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform
openclaw skills install serpzilla-seo-guest-postingThis skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.
It allows you to automate the search and purchase of guest posts (article placements on donor sites
that pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done
via the Serpzilla MCP server, managed by the mcporter tool.
The following components must be installed and configured on the server where OpenClaw runs:
mcporter.Before using any Serpzilla commands, verify the MCP server is already registered with npx mcporter list serpzilla.
To fully use this skill, you need to register and configure the connection to the Serpzilla API.
mcporter is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.
Install mcporter globally:
npm install -g mcporter
Add the Serpzilla MCP server:
It is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN (the user's chosen login for registering with serpzilla.com, usually an email address) and SERPZILLA_API_TOKEN (the API token received by the user). Run the following command, replacing XXX and YYY with user's values:
npx mcporter config add serpzilla --stdio "sudo docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:latest"
Check that the MCP server was added successfully:
npx mcporter list serpzilla
After completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing a guest post is described below.
The main entities in the Serpzilla domain for purchasing Guest Posts are:
Description of placement types:
| Format | Type | Content Provided By | Required Fields When Buying | Notes |
|---|---|---|---|---|
news | Advertiser’s Article (Guest Post) | Advertiser (client) | article_id, url_id | text_id not required. The article is fully provided by the client. |
review | Publisher’s Article (Guest Post) | Publisher (webmaster) | url_id, text_id | The webmaster writes a review article. This placement is more expensive. |
link | In The News (Link Insertion) | Publisher (webmaster) | url_id, text_id | The webmaster writes an article — not a review, but a link naturally embedded into a site news piece. |
archive | In The Archive (Link Insertion) | N/A (article already exists) | url_id, text_id | Placement occurs in an already existing article on the site. |
To get current user information including account balance:
npx mcporter call serpzilla.get_user_info
To top up user's balance, refer user to visit: https://passport.serpzilla.com/deposit/
Create a project inside Serpzilla for your domain. Replace YOUR_SITE.COM with your actual website URL
(without https://):
npx mcporter call serpzilla.create_project domain=YOUR_SITE.COM
Important: Save the returned PROJECT_ID (ID field) – you will need it later.
When a project is created, Serpzilla automatically generates:
domain as the URL (e.g., https://YOUR_SITE.COM)You can later add more URLs and Texts for specific landing pages and anchors.
To view all your existing projects:
npx mcporter call serpzilla.list_projects
You must upload an article before purchasing a placement. The article will be reviewed by Serpzilla moderators.
Only approved articles can be used for placements.
Add an article:
npx mcporter call serpzilla.add_article project_id=PROJECT_ID url='FULL_URL' title='ARTICLE_TITLE' \
meta_title="ARTICLE_META_TITLE" body='ARTICLE_BODY'
Parameters:
url – the full promotion URL (including https://), e.g., https://yoursite.com/producttitle – internal title of the article (visible only in Serpzilla UI)meta_title – meta title used by the publisher when postingbody – HTML content of the article, with your backlink(s) already insertedArticle moderation:
pending.approved; you can then use it in purchases.Check article status:
npx mcporter call serpzilla.get_project_content_list project_id=PROJECT_ID
For review, link, archive formats
No article upload is needed. Serpzilla will use the text_id (anchor) and url_id (promoted page).
The webmaster writes the content according to the format.
With your PROJECT_ID, you can search for available donor sites that accept your desired placement type.
Basic search command:
npx mcporter call serpzilla.search_sites project_id=PROJECT_ID link_type=link
Valid link_type values: news, review, link, archive.
See all available filters (language, price range, DR, etc.):
npx mcporter list serpzilla --schema --json
Get detailed information about a specific donor site:
npx mcporter call serpzilla.get_site_info site_id=SITE_ID
This returns metrics (DR, traffic, language), status, price, placement examples, and more.
Once you have:
PROJECT_IDSITE_ID (from search results)news: article_id (approved) and url_idreview, link, archive: url_id and text_idImportant: The search_history_id parameter must always be set to an empty string "" when buying.
4.1 Purchase a news placement (Advertiser’s Article)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=news \
site_id=SITE_ID article_id=ARTICLE_ID url_id=URL_ID search_history_id=""
Optional: is_content_need_approval=true – if set, the placement will wait for your approval before the publisher starts.
Useful if you want to review the final context.
4.2 Purchase a review placement (Publisher’s Article)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=review \
site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=""
4.3 Purchase a link placement (In The News – Link Insertion)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=link \
site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=""
4.4 Purchase an archive placement (In The Archive – Link Insertion)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=archive \
site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=""
To view purchased placements use:
npx mcporter call serpzilla.get_project_placements project_id=PROJECT_ID
After you purchase a placement, its lifecycle is managed through a set of statuses and transitions. You can perform specific actions to influence the placement’s progress, request changes, cancel orders, or handle edge cases like billing or failed purchases.
All actions are executed using the MCP tool:
npx mcporter call serpzilla.perform_placement_action placement_ids=PLACEMENT_ID action=ACTION_NAME
The table by link lists every SEO‑available action. For each action we describe its purpose, the source status(es), the target status, and any relevant notes.