Paste one static token — articles arrive as items in your own collection.
Directus puts an API on top of your own database, and DraftSEO writes straight into it. You paste the address of your Directus and a static access token, DraftSEO reads your collections, and you confirm which fields hold the title, the body, the slug and the cover image. Articles then arrive as items in your own collection, with every picture stored in your Directus file library. Directus renders nothing itself, so you also tell DraftSEO the address your own website shows an article at.
| Connection | Directus URL + static access token — User Directory → the user → Token → Generate, then save the user |
|---|---|
| Versions | Directus 9 to 12 — self-hosted or Directus Cloud |
| Body field | WYSIWYG · Long text · Markdown — the Block Editor is not supported and is refused at connect |
| Image hosting | Your own Directus file library — stored in your Directus, never hot-linked |
| Public role | Needs Read on Files — from Directus 11.14.1 the /assets addresses follow file permissions |
| Publish modes | Auto · draft · scheduled |
Who does what
Nothing — once the token is in and the fields are mapped, items appear in your collection and your own website renders them. Want to read them first? Send them as drafts and set the status yourself in Directus.
Works with whatever your collection and its fields are called.
Setup
In Directus open User Directory and click the user DraftSEO should publish as. Scroll to Token, click Generate, copy the token, and then SAVE THE USER: the token does nothing until you do, and Directus never shows it again. That user needs Create, Read and Update on your blog collection and on Files — Update matters as much as the other two, because it is what lets us change an article you edit later instead of adding a second copy of it.
~2 minutes
From Directus 11.14.1 the /assets addresses follow file permissions, and a visitor’s browser carries no token. Without this the article publishes normally and its pictures stay blocked for everyone who is not logged in.
~1 minute
Connect a site → Directus → paste the address of Directus itself, the one with /admin on it while you are logged in, with no /api on the end, plus the token. DraftSEO lists the collections an article can go into.
~1 minute
Confirm which fields hold the title, body, slug and cover, then say where your own website shows an article, e.g. https://www.example.com/blog/{slug}. That address’s domain is the site this connection belongs to.
~2 minutes
FAQ
Almost always an unsaved user. Generate only puts the token in the field — nothing exists until you save the user, and once you have saved it Directus will not show the token again, so copy it first. If you are not sure, generate a fresh token and save the user.
Because the Public role has no Read access to Files. From Directus 11.14.1 the /assets addresses obey file permissions, and a visitor’s browser sends no token — so the article itself is published and readable while every image in it is refused. Grant the Public role Read on Files and they appear. DraftSEO cannot check it for you: our own requests are signed in, so they always succeed.
The address of Directus itself, not your website — the one that has /admin on it while you are logged in, without the /admin and without /api on the end, because Directus serves its API at the root. Your website address is a separate field, since Directus stores content and your own front end displays it.
No. The Block Editor stores a list of typed blocks rather than text, so DraftSEO refuses it at connect and tells you why, rather than writing an article that renders as nothing. A WYSIWYG (Rich Text HTML), Long text or Markdown field all work — add one to your collection and connect again.
In your own Directus file library, served from your own Directus. Each one is stored before the item is written, so a published article never loads a picture from our servers.
The same item is updated, so the article’s address never changes. Only the fields you mapped are written, so an author, a category relation or anything else your editors filled in stays exactly as it is.
Then Cloudflare can stop DraftSEO before Directus ever sees the request. Add a WAF Skip rule matching the X-DraftSEO-Site-Token header DraftSEO sends on every call, and switch Bot Fight Mode off on the Free plan. A Directus Cloud project needs none of this.
No card required. Images stored in your own file library.