Installing the Claude SEO plugin is three commands and one browser sign-in, and every one of them answers something you can check. The plugin arrives from a marketplace, builds a Python environment of its own, downloads a browser into it and then reports on itself. seodraft arrives as a URL you register once and a token your Claude Code session keeps. This lesson runs them in that order, shows what each one said on the machine the course ran it on, and ends with a baseline worth writing down. By the end both tools answer inside a single Claude Code session, which is all lesson 3 needs to point an audit at your own site.
Two ways in: the marketplace and a folder
The marketplace path is the one the project documents, and it is two commands inside Claude Code:
/plugin marketplace add AgriciDaniel/claude-seo /plugin install claude-seo@agricidaniel-claude-seo
The first one you already ran in lesson 1. A marketplace is a list Claude Code can read; the install is what writes the plugin's skills, sub-agents and scripts into Claude Code.
The second path loads a clone for one session and leaves your plugin list exactly as it was:
git clone --branch v2.4.1 https://github.com/AgriciDaniel/claude-seo.git claude --plugin-dir claude-seo
That is useful for a plugin like this one, because what you are installing is 26 sub-skills of instructions that will steer an agent with access to your terminal. Cloning a tag lets you read them first, at github.com/AgriciDaniel/claude-seo, and the project is MIT-licensed so reading is allowed and encouraged. The commands behave the same either way once the session is open.
What /seo setup builds and how long it takes
/seo setup creates an isolated Python environment for the plugin and downloads Playwright Chromium into it. Your system interpreter is the base it builds on, and your system packages stay where they are. The browser is the part that makes the download big, and it is the reason a plugin that reads HTML needs a few minutes of disk and bandwidth before its first useful answer.
On the course's machine, a Linux box with Python 3.14 already installed, setup answered Claude SEO runtime is ready. in 69 seconds. A slower connection spends most of its time on Chromium, so a first run that takes several minutes is still a normal first run.
Setup happens once per machine. A plugin update that changes the runtime is the other moment it matters, and /seo doctor is what tells you whether that moment has arrived.
Read the doctor while nothing is wrong
/seo doctor reports the state of the runtime, and the time to read it is now, before anything has broken. Ours answered in JSON, from the doctor script with --json: ready: true, browser_ready: true, plugin version 2.4.1 and Python 3.14, with no reasons at all.
That last part is the useful part. The doctor names what is missing in a reasons field, so an empty one means every check passed. Keep the version number somewhere: a lesson in this course that stops matching your output is a lesson written against a different version, and the same is true of an audit that starts behaving differently after an update.
Two failures cover most of what goes wrong here. A Python older than the plugin asks for means the environment was built on the wrong interpreter, which happens when Claude Code opens from a shell with a different PATH than the one you tested in. A browser_ready: false means Chromium did not finish downloading. Both are fixed the same way: run /seo setup again from the terminal where the right Python answers.
seodraft is one URL and one sign-in
seodraft connects as a remote MCP server, which takes two moves and no key:
claude mcp add --transport http seodraft https://seodraft.app/mcp /mcp
The first command records the address in your Claude Code configuration, and you ran it in lesson 1. The second opens the OAuth sign-in in your browser; once you approve it, the session keeps the token and the server's tools become available to your agent.
A server that shows up as registered and never connects is almost always a sign-in that was closed before it finished. Run /mcp again and watch the browser tab through to the end.
What the course actually ran
The run behind this lesson used the folder path. We cloned the v2.4.1 tag, loaded it with claude --plugin-dir, and called the setup and doctor scripts that the slash commands wrap, with the plugin's data directory pointed at a folder of its own so the whole thing could be deleted afterwards. The 69 seconds, the ready: true and the Python 3.14 all come from that run.
We did not run /plugin marketplace add or /plugin install, so this lesson quotes no output for them. They are the documented path and they are what the steps send you down; what they print on your machine is the one thing here you will see before we do.
What to have ready before lesson 3
Three answers make the next lesson a single command: the /seo commands responding inside Claude Code, /seo doctor reporting ready: true and browser_ready: true, and seodraft listed as connected in /mcp. All three are in the checklist below.
Lesson 3 points /seo audit at a site and reads what comes back. Ours took 446 seconds, ran 11 sub-agents and returned a score with a table behind it, and the most useful section of the report turned out to be the one where the orchestrator threw out three of its own agents' findings.