Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.
Every project has a Content page for planning and tracking articles, and every content task carries its own editor: a writing surface that autosaves, keeps a version history, scores the draft against a set of SEO checks, and can post the result to your WordPress site as a draft. Publishing is never automatic. Each publish request is decided by a person in the Inbox.
Open a project and click Content in the sidebar. The page has three pill sub-tabs:
Sub-tab
What it shows
Tasks
Every task in the project whose category is Content, newest-updated first, with labels, priority and status.
Planner
A zoomable canvas of topic cards you can link into a tree and turn into tasks.
Database
Your completed content: content tasks whose status is Done.
The Content page with the Tasks sub-tab open
If Content is missing from a project’s sidebar, open the project’s Settings, choose Features and switch on Content under Workflows. Sub-toggles let you show or hide Planner, Tasks and Database. Only people who can manage the project can change these switches. See Projects.
On the project’s Content page, click New content task in the header (or in the empty state).
2
Name the task
Enter a title. The category is pre-set to Content and the project is already selected.
3
Optionally import an existing page
Paste a URL into Import content from a URL (optional). The page is fetched, converted and placed in the task’s editor when the task is created.
4
Assign and create
Assign the task to an agent (for example SEO Content Writer) or a teammate, then create it.
Any task becomes a content task when its Category is set to Content, either in the New task dialog or through Edit task. Content tasks can also come from the Planner (Convert to task) and from Opportunities (Convert to content task). A content task moves through the normal task statuses; once it reaches Done it appears under Database. See Tasks for statuses, assignment and the discussion thread.
Open Content → Planner and click Add topic. Type a name; a selected card’s title is editable in place.
2
Link topics into a tree
Drag the dot at the bottom of one topic onto another to make it a child. Click a connecting line to unlink. Click Auto arrange to lay the tree out tidily.
3
Move around
Drag empty canvas to pan. Scroll to zoom, or use −, +, the percentage (click it to reset) and Fit.
4
Turn a topic into a task
Select a topic and click Convert to task. The New task dialog opens prefilled with the topic’s title and the Content category. Once created, the card shows Task created and offers Open task.
Plans save automatically (Saving… appears while they do). Use the board menu in the toolbar to create (New plan…), rename or delete plans. Each plan is its own canvas, and the last remaining plan cannot be deleted.
Open a content task and you land on its Content tab. The Discussion tab next to it holds the comment thread with the agent. The editor header shows Content draft with the current save state on the left, and the actions menu (…) plus a Save button on the right. The footer shows the word and character count.
The draft autosaves about a second after you stop typing. Press Save or Ctrl/Cmd+S to save immediately. The header tells you where you stand:
State
Meaning
Saving…
A save is in flight.
Saved
Everything is stored.
Unsaved
You have edits that are not saved yet.
Not saved — press Save to retry
The last save failed. Your text stays in the editor; click Save again.
If an agent updates the draft while you have no unsaved edits, the editor picks up the new text. It never overwrites what you are typing. Closing the browser tab with unsaved changes prompts you first.
Click … in the editor header. Entries appear only when they apply:
Fix SEO score with agent — when the task has an assigned agent and at least one SEO check is failing.
Get keywords — when an active agent with keyword access is available.
Post to WordPress — when the task’s project has a connected WordPress site.
Version history — always available.
Pull from URL — fetch a public web page into the draft. Paste the URL, choose Replace (clears the draft) or Append (adds below), then click Fetch. The page arrives as formatted text with its images.
Copy to clipboard, Download Markdown (.md) and Download plain text (.txt) — export the article body. SEO fields are not included.
A floating SEO score pill sits in the top-right of the editor: a ring with the score out of 100 and a label — Good (75 and above), Fair (50–74) or Needs work (below 50). Click it to open the SEO panel: a sidebar on large screens, or a slide-over sheet titled SEO on phones.
In Focus keywords, type a keyword and press Enter (or a comma). The first chip is tagged 1st: it is the primary keyword and drives the score.
2
Add secondary keywords if you like
Further chips are only checked for presence. They appear in the Additional keywords card with an occurrence count or not used, and they do not change the score.
3
Watch the score move
Edit the draft and the score, stats and checks update live.
From top to bottom the panel shows the focus keyword chips, the Search preview with its Edit snippet button, a score card (the ring, a letter grade from A to F, a headline such as Excellent SEO, Good SEO or Needs work, and how many checks pass out of the total), a stats grid (Words, Headings, Images, Links, Density, Reading ease), and four collapsible groups: Basic SEO, Additional, Title readability and Content readability. Each group says All passing or how many items there are to fix, with pass, warn and fail rows and a one-line hint. The group with something to fix opens first.
The Search preview card renders how the post may look in a search result: your site’s initial and host, a breadcrumb URL, a blue title and a grey description. It uses the project’s domain when one is set; otherwise it shows yoursite.com.
1
Open the snippet editor
In the SEO panel, click Edit snippet under the search preview. The Preview snippet editor dialog shows a live preview above the fields.
2
Fill in the fields
SEO title (aim for 50–60 characters), Permalink (the slug, 60–75 characters; leave it blank to derive it from the title), Meta description (120–160 characters) and Focus keyword. The bar under each field is amber when short, green when in range and red when over the limit.
3
Save
Click Save snippet.
Blank fields fall back to the task title, a slug derived from the title, and the first 160 characters of the body. These values are also what Visibility sends to WordPress as the post title, slug, excerpt and SEO fields.
Click Insert image in the toolbar. Either Choose file (PNG, JPEG, WebP or GIF, up to 10 MB each) or paste an image URL, add Alt text, and click Insert.
2
Replace, edit or delete it later
Click the image. A bubble beneath it shows its alt text (or URL) with two buttons: Replace or edit image (upload a new file or change the URL, edit the alt text, then click Save) and Delete image.
Alt text is what the image-alt check reads, so put your primary keyword in at least one image’s alt text where it fits naturally.
Uploaded files are stored with the task. When you post to WordPress, they are copied into the site’s media library.
Select text and click Insert/edit link, then enter the URL (clearing it removes the link). Or place the caret inside an existing link: a bubble shows the URL with Edit link and Remove link.Whether a link counts as internal or external is judged against your project’s domain:
A relative link, or a full URL to the project’s domain (with or without www), is internal.
A URL to any other host is external. A subdomain counts as another site.
If the project has no domain set, every full URL counts as external.
Ask the assigned agent to change one passage rather than rewrite the whole article.
1
Select the passage
Highlight the text in the editor. An Edit with agent button appears at the end of the selection (only when the task has an assigned agent).
2
Describe the change
Click it, type your instruction in What should the agent change here?, and click Send to agent (or press Ctrl/Cmd+Enter). The passage stays outlined while the panel is open.
3
Review the result
The request is posted to the task’s Discussion as a comment. The agent edits just that passage and the new version appears in the editor.
Selections longer than 4,000 characters are refused with That selection is too long to send as a single edit — select a smaller passage.
Open the actions menu (…) and choose Fix SEO score with agent. Visibility sends the assigned agent a comment listing every failing check and confirms Sent to the assigned agent — it will revise the draft. The entry only appears when the task has an assigned agent and at least one check is not passing.
Every draft keeps a history, so an agent’s pass never buries your own work.
1
Open the history
Actions menu (…) → Version history. The left-hand list shows each version with its author (a name, You or Earlier draft), when it was made, its kind (Edit, AI edit, Restored or Before history) and its size. The version identical to your live draft is tagged Current.
2
Compare
Click a version to see a diff between it and your current draft on the right, with added and removed lines counted and unchanged stretches collapsed. When an agent has touched the draft, click Compare the AI’s last changes to see exactly what it changed on its last pass.
3
Restore or undo
Click Restore this version (or Undo the AI’s changes). The earlier text becomes the draft again, and the version you replaced stays in the history, so a restore can itself be undone.
A new version starts after a pause of about 30 seconds or when a different author edits, so autosaves within one editing burst are grouped together. Up to 200 versions are kept per task.
WordPress is connected per project with the official Agentic SEO for Visibility plugin. No WordPress passwords or application passwords are involved: the plugin and Visibility pair through a short code.
The WordPress card in the project's Integrations settings
1
Install the plugin
In your WordPress admin, install and activate Agentic SEO for Visibility from the WordPress plugin directory (wordpress.org). It needs WordPress 6.0 or later and PHP 7.4 or later.
2
Start pairing in Visibility
Open the project, go to Settings → Integrations, and click Connect on the WordPress card. In the Connect WordPress dialog, click Generate pairing code and copy the code. It looks like VIS-A7K9-XB.
3
Paste the code into the plugin
In WordPress admin, open Agentic SEO → Connection, paste the code into Pairing code and click Connect.
4
Confirm
Back in Visibility the card shows a green Connected badge with the site name. The plugin’s Connection screen shows the Company, Project, when the site was paired and last seen, and the plugin version.
Pairing codes are single-use and expire after 10 minutes. If yours lapses, click Generate another. Each project connects to one site; pairing again replaces the previous connection. On a WordPress multisite network, each subsite pairs separately.
Connecting or disconnecting requires the Manage integrations permission, which company admins have. Without it the Connect button is disabled with a tooltip. See Team management for permissions and Integrations for the project’s other connections.To disconnect, click Disconnect on the WordPress card, or use Disconnect on the plugin’s Agentic SEO → Connection screen. Disconnecting removes only the pairing: posts already on the site and your tasks in Visibility are untouched, and you can pair again with a new code at any time.
Posting from the editor always creates a draft on the site, never a live post. Publishing needs an Approval.
1
Create the draft
In the content task’s editor, open the actions menu (…) and choose Post to WordPress. Check the Title (it defaults to the SEO title, or else the task title) and the optional Slug, then click Create draft. You’ll see Draft created on WordPress.
2
Read the status box
It reports whether the featured image was set (Featured image set.) and where the SEO fields went: SEO fields written to followed by the plugin name, or a notice that no SEO plugin is installed and Visibility is emitting the tags itself. Warnings appear if an image could not be copied, the featured image failed, or SEO fields were not written.
3
Schedule, if you want
Set Publish at (optional) to a future date and time. Times are in your local time zone. Leave it empty to publish as soon as the request is approved.
4
Request publishing
Click Request publish. You’ll see Publish requested — an admin approves it from the Inbox (or Scheduled for the chosen date). The post stays a draft on the site until someone approves it.
The article body, converted to native WordPress blocks so it stays editable in the block editor.
The post title, slug, excerpt (your meta description), primary focus keyword, SEO title and description, and the social (Open Graph) title, description and image.
The featured image, taken from the draft’s social (Open Graph) image. The site downloads it, so it must be a publicly reachable URL or a path on the site.
Images you uploaded in the editor, copied into the site’s media library: the first 8 images in a draft. Images that are already public are left where they are. Images whose URL no longer exists are removed and reported.
Every publish, whether requested by a person or an agent and whether immediate or scheduled, creates a WordPress publish Approval. Approving it is what publishes the post; rejecting it leaves the post a draft on the site.
1
Open the Approval
Go to Inbox → Approvals. The notification Approval needed: a WordPress publish links straight there.
2
Decide
The pending card reads Publish followed by the post title and the site. Optionally type a note in Optional note for the decision…, then click Approve or Reject.
3
What happens next
On approve, the post goes live immediately or is scheduled in WordPress for the requested time, and the requester is notified Approved: a WordPress publish. If the site refuses, the row reads Publish failed with the site’s reason and the post stays a draft; admins and the requester get a Couldn’t publish notification.
Deciding requires the Decide approvals permission, which company admins have. Everyone else sees Pending — an admin will decide on this request. Resolved items collapse into an accordion below the pending ones. Agents can request publishes but never publish themselves. See Inbox and approvals.
A scheduled time that has already passed by the time the request is approved publishes immediately on approval.
When Visibility writes a post’s SEO fields, the plugin looks for an SEO plugin on the site and hands the fields to it.
On the site
What Visibility does
Yoast SEO
Writes every SEO field Visibility sends, including Open Graph and robots settings.
Rank Math
Writes every SEO field Visibility sends, including Open Graph and robots settings.
All in One SEO
Writes the SEO title, description, focus keyword and canonical only. Open Graph and robots settings are not written.
No SEO plugin
The Visibility plugin stores the fields itself and outputs the meta description, Open Graph tags, canonical, robots and structured data on the page.
The plugin’s Connection screen tells you which case applies: either No SEO plugin detected or a note that SEO tags are managed by the named plugin. If you install an SEO plugin later, the Visibility plugin hands over to it and stops emitting its own tags.
SEO Content Writer — briefs, drafts and optimises content, and can post to WordPress.
WordPress Agent — turns finished content into drafts and requests publishes. It can only be assigned to projects with a connected WordPress site.
For either to touch your site, the agent needs the WordPress access grant, labelled Publish to WordPress. Always also gated by the publish approval. A person still approves every publish. See Agents.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Visibility Docs","colors":{"primary":"#171717","light":"#e5e5e5","dark":"#0a0a0a"},"logo":{"light":"https://mintcdn.com/doableteam-a944c448/yZxfxMRqwidNc6fj/logo/light.png?fit=max\u0026auto=format\u0026n=yZxfxMRqwidNc6fj\u0026q=85\u0026s=e1fd35ed3273f515f71eeea2dadf78bc","dark":"https://mintcdn.com/doableteam-a944c448/rtDno5BzOkv5Z5j1/logo/dark.png?fit=max\u0026auto=format\u0026n=rtDno5BzOkv5Z5j1\u0026q=85\u0026s=b596ae0dadfdf638afa6e7647926f980"},"favicon":"https://mintcdn.com/doableteam-a944c448/zTMBed2Ps_Y8Loxi/favicon2.png?fit=max\u0026auto=format\u0026n=zTMBed2Ps_Y8Loxi\u0026q=85\u0026s=ee604d5930191a7b8e1e524f7bfa06a5","footer":{"socials":{},"links":[{"header":"Product","items":[{"label":"Open Visibility","href":"https://app.visibility.so"},{"label":"Status","href":"https://status.visibility.so"}]}]},"icons":{"library":"fontawesome"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"doableteam-a944c448","hasAudioNarration":false,"actualSubdomain":"doableteam-a944c448","customDomains":["docs.visibility.so"],"gitSource":{"type":"github","owner":"muhammedilyasy","repo":"visibility-docs","deployBranch":"main","isPrivate":true,"contentDirectory":"","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aa1001aa24ff9286dbd94f6","collectionId":"c6362ac3-9167-4500-94f6-a10bb4528c5f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aa1001aa24ff9286dbd94f6"},"entitlements":{},"buildId":"6aa1001aa24ff9286dbd94f6","clientVersion":"0.0.3908","searchFilterCounts":[{"language":"default","tag":"Documentation","count":22},{"language":"default","tag":"Projects \u0026 SEO","count":9},{"language":"default","tag":"Agents \u0026 work","count":4},{"language":"default","tag":"Team \u0026 company","count":3},{"language":"default","tag":"Getting started","count":3},{"language":"default","tag":"Billing","count":2},{"language":"default","tag":"Changelog","count":1},{"language":"default","tag":"Updates","count":1},{"language":"default","tag":"FAQ","count":1},{"language":"default","tag":"Help","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"teamspace","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"index.css","content":":root{--background:#ffffff!important;--primary:#1a1918!important;--primary-light:#444444!important;--text-main:#1a1918!important;--text-muted:#6b7280!important;--border-color:#e5e7eb!important;--card-bg:#ffffff!important;--sidebar-bg:#fafafa!important}.dark{--background:#1a1918!important;--primary:#ffffff!important;--primary-light:#eeeeee!important;--text-main:#ffffff!important;--text-muted:#9ca3af!important;--border-color:#333333!important;--card-bg:#242322!important;--sidebar-bg:#111111!important}body{background-color:var(--background)!important}#sidebar-content,.sidebar-container{background-color:var(--sidebar-bg)!important}.logo,.logo img,a[href*=\"visibility.so\"] img,a[href=\"/\"] img,header img,nav img{height:38px!important;max-height:38px!important;width:auto!important}body,h1,h2,h3,h4,h5,h6{color:var(--text-main)!important}a{color:var(--primary)!important;text-decoration-color:var(--border-color)!important}.card,div[class*=Card]{background-color:var(--card-bg)!important;border:1px solid var(--border-color)!important}.card:hover,div[class*=Card]:hover{border-color:var(--primary)!important}code,pre{border-color:var(--border-color)!important}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-light);border-radius:4px}#header-tabs-container .header-tab,.header-tab,nav[class*=HeaderTabs] a{font-weight:500!important;font-size:.95rem!important;padding:8px 16px!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important;border-bottom:2px solid transparent!important;color:var(--text-muted)!important}#header-tabs-container .header-tab:hover,.header-tab:hover,nav[class*=HeaderTabs] a:hover{color:var(--primary)!important;opacity:1!important}#header-tabs-container .header-tab::after,.header-tab::after,.nav-tabs-item::after,.nav-tabs-item>div{display:none!important;content:none!important}.nav-tabs-item{position:relative!important;padding-bottom:0!important}.header-tab-active,.nav-tabs-item[class*=\"dark:text-gray-200\"],.nav-tabs-item[class*=text-gray-800]{color:var(--primary)!important;font-weight:600!important}.header-tab svg,.nav-tabs-item svg,nav[class*=HeaderTabs] a svg{margin-right:8px!important;width:16px!important;height:16px!important;display:inline-block!important;vertical-align:middle!important}"}],"page":{"pagePath":"content-and-wordpress","slug":"/content-and-wordpress","pageMetadata":{"title":"Content and WordPress","description":"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.","href":"/content-and-wordpress"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Tip,Warning}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every project has a `,_jsx(_components.strong,{children:`Content`}),` page for planning and tracking articles, and every content task carries its own editor: a writing surface that autosaves, keeps a version history, scores the draft against a set of SEO checks, and can post the result to your WordPress site as a draft. Publishing is never automatic. Each publish request is decided by a person in the `,_jsx(_components.a,{href:`/inbox-and-approvals`,children:`Inbox`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-content-page`,children:`The Content page`}),`\n`,_jsxs(_components.p,{children:[`Open a project and click `,_jsx(_components.strong,{children:`Content`}),` in the sidebar. The page has three pill sub-tabs:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Sub-tab`}),_jsx(_components.th,{children:`What it shows`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Tasks`})}),_jsx(_components.td,{children:`Every task in the project whose category is Content, newest-updated first, with labels, priority and status.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Planner`})}),_jsx(_components.td,{children:`A zoomable canvas of topic cards you can link into a tree and turn into tasks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Database`})}),_jsx(_components.td,{children:`Your completed content: content tasks whose status is Done.`})]})]})]}),`\n`,_jsx(Frame,{caption:`The Content page with the Tasks sub-tab open`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=05dc7fcad0afedbea4d3f12eb971383c`,alt:`Content page listing content tasks with label, priority and status badges`,\"data-og-width\":`1568`,width:`1568`,\"data-og-height\":`782`,height:`782`,\"data-path\":`images/content-tasks.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=3e5908006cb0df8e0d2242970ddfd47e 280w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=1721a5491324f3ad30ebb46f9b9ba2c5 560w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=3fb1fca101abbe5e59185eef23af36c6 840w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=6a54d001dff52d87184eb6d46a781690 1100w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=87e0fedee31903b16a973882e870724b 1650w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/content-tasks.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=a14507f7ca2a237c04daeffdf175ab8e 2500w`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If `,_jsx(_components.strong,{children:`Content`}),` is missing from a project’s sidebar, open the project’s `,_jsx(_components.strong,{children:`Settings`}),`, choose `,_jsx(_components.strong,{children:`Features`}),` and switch on `,_jsx(_components.strong,{children:`Content`}),` under `,_jsx(_components.strong,{children:`Workflows`}),`. Sub-toggles let you show or hide `,_jsx(_components.strong,{children:`Planner`}),`, `,_jsx(_components.strong,{children:`Tasks`}),` and `,_jsx(_components.strong,{children:`Database`}),`. Only people who can manage the project can change these switches. See `,_jsx(_components.a,{href:`/projects`,children:`Projects`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`creating-a-content-task`,children:`Creating a content task`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Tasks sub-tab`,children:_jsxs(_components.p,{children:[`On the project’s `,_jsx(_components.strong,{children:`Content`}),` page, click `,_jsx(_components.strong,{children:`New content task`}),` in the header (or in the empty state).`]})}),_jsx(Step,{title:`Name the task`,children:_jsx(_components.p,{children:`Enter a title. The category is pre-set to Content and the project is already selected.`})}),_jsx(Step,{title:`Optionally import an existing page`,children:_jsxs(_components.p,{children:[`Paste a URL into `,_jsx(_components.strong,{children:`Import content from a URL (optional)`}),`. The page is fetched, converted and placed in the task’s editor when the task is created.`]})}),_jsx(Step,{title:`Assign and create`,children:_jsxs(_components.p,{children:[`Assign the task to an agent (for example `,_jsx(_components.strong,{children:`SEO Content Writer`}),`) or a teammate, then create it.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Any task becomes a content task when its `,_jsx(_components.strong,{children:`Category`}),` is set to Content, either in the New task dialog or through Edit task. Content tasks can also come from the Planner (`,_jsx(_components.strong,{children:`Convert to task`}),`) and from `,_jsx(_components.a,{href:`/opportunities`,children:`Opportunities`}),` (`,_jsx(_components.strong,{children:`Convert to content task`}),`). A content task moves through the normal task statuses; once it reaches Done it appears under `,_jsx(_components.strong,{children:`Database`}),`. See `,_jsx(_components.a,{href:`/tasks`,children:`Tasks`}),` for statuses, assignment and the discussion thread.`]}),`\n`,_jsx(Heading,{level:`3`,id:`planning-topics-on-the-planner`,children:`Planning topics on the Planner`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add topics`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Content`}),` → `,_jsx(_components.strong,{children:`Planner`}),` and click `,_jsx(_components.strong,{children:`Add topic`}),`. Type a name; a selected card’s title is editable in place.`]})}),_jsx(Step,{title:`Link topics into a tree`,children:_jsxs(_components.p,{children:[`Drag the dot at the bottom of one topic onto another to make it a child. Click a connecting line to unlink. Click `,_jsx(_components.strong,{children:`Auto arrange`}),` to lay the tree out tidily.`]})}),_jsx(Step,{title:`Move around`,children:_jsxs(_components.p,{children:[`Drag empty canvas to pan. Scroll to zoom, or use `,_jsx(_components.strong,{children:`−`}),`, `,_jsx(_components.strong,{children:`+`}),`, the percentage (click it to reset) and `,_jsx(_components.strong,{children:`Fit`}),`.`]})}),_jsx(Step,{title:`Turn a topic into a task`,children:_jsxs(_components.p,{children:[`Select a topic and click `,_jsx(_components.strong,{children:`Convert to task`}),`. The New task dialog opens prefilled with the topic’s title and the Content category. Once created, the card shows `,_jsx(_components.strong,{children:`Task created`}),` and offers `,_jsx(_components.strong,{children:`Open task`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Plans save automatically (`,_jsx(_components.strong,{children:`Saving…`}),` appears while they do). Use the board menu in the toolbar to create (`,_jsx(_components.strong,{children:`New plan…`}),`), rename or delete plans. Each plan is its own canvas, and the last remaining plan cannot be deleted.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-editor`,children:`The editor`}),`\n`,_jsxs(_components.p,{children:[`Open a content task and you land on its `,_jsx(_components.strong,{children:`Content`}),` tab. The `,_jsx(_components.strong,{children:`Discussion`}),` tab next to it holds the comment thread with the agent. The editor header shows `,_jsx(_components.strong,{children:`Content draft`}),` with the current save state on the left, and the actions menu (`,_jsx(_components.strong,{children:`…`}),`) plus a `,_jsx(_components.strong,{children:`Save`}),` button on the right. The footer shows the word and character count.`]}),`\n`,_jsx(Heading,{level:`3`,id:`toolbar`,children:`Toolbar`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Group`}),_jsx(_components.th,{children:`Buttons`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Headings`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Heading 1`}),`, `,_jsx(_components.strong,{children:`Heading 2`}),`, `,_jsx(_components.strong,{children:`Heading 3`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Emphasis`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Bold`}),`, `,_jsx(_components.strong,{children:`Italic`}),`, `,_jsx(_components.strong,{children:`Underline`}),`, `,_jsx(_components.strong,{children:`Strikethrough`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blocks`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Bullet list`}),`, `,_jsx(_components.strong,{children:`Numbered list`}),`, `,_jsx(_components.strong,{children:`Quote`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Code and structure`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Inline code`}),`, `,_jsx(_components.strong,{children:`Code block`}),`, `,_jsx(_components.strong,{children:`Divider`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Media`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Insert/edit link`}),`, `,_jsx(_components.strong,{children:`Insert image`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`History`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Undo`}),`, `,_jsx(_components.strong,{children:`Redo`})]})]})]})]}),`\n`,_jsx(_components.p,{children:`Tables and checklists written by an agent render and stay editable, although there is no toolbar button to insert new ones.`}),`\n`,_jsx(Heading,{level:`3`,id:`saving`,children:`Saving`}),`\n`,_jsxs(_components.p,{children:[`The draft autosaves about a second after you stop typing. Press `,_jsx(_components.strong,{children:`Save`}),` or Ctrl/Cmd+S to save immediately. The header tells you where you stand:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`State`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Saving…`})}),_jsx(_components.td,{children:`A save is in flight.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Saved`})}),_jsx(_components.td,{children:`Everything is stored.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unsaved`})}),_jsx(_components.td,{children:`You have edits that are not saved yet.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Not saved — press Save to retry`})}),_jsxs(_components.td,{children:[`The last save failed. Your text stays in the editor; click `,_jsx(_components.strong,{children:`Save`}),` again.`]})]})]})]}),`\n`,_jsx(_components.p,{children:`If an agent updates the draft while you have no unsaved edits, the editor picks up the new text. It never overwrites what you are typing. Closing the browser tab with unsaved changes prompts you first.`}),`\n`,_jsx(Heading,{level:`3`,id:`the-actions-menu`,children:`The actions menu`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`…`}),` in the editor header. Entries appear only when they apply:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Fix SEO score with agent`}),` — when the task has an assigned agent and at least one SEO check is failing.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Get keywords`}),` — when an active agent with keyword access is available.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Post to WordPress`}),` — when the task’s project has a connected WordPress site.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Version history`}),` — always available.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pull from URL`}),` — fetch a public web page into the draft. Paste the URL, choose `,_jsx(_components.strong,{children:`Replace`}),` (clears the draft) or `,_jsx(_components.strong,{children:`Append`}),` (adds below), then click `,_jsx(_components.strong,{children:`Fetch`}),`. The page arrives as formatted text with its images.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Copy to clipboard`}),`, `,_jsx(_components.strong,{children:`Download Markdown (.md)`}),` and `,_jsx(_components.strong,{children:`Download plain text (.txt)`}),` — export the article body. SEO fields are not included.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`seo-score-and-panel`,children:`SEO score and panel`}),`\n`,_jsxs(_components.p,{children:[`A floating `,_jsx(_components.strong,{children:`SEO score`}),` pill sits in the top-right of the editor: a ring with the score out of 100 and a label — `,_jsx(_components.strong,{children:`Good`}),` (75 and above), `,_jsx(_components.strong,{children:`Fair`}),` (50–74) or `,_jsx(_components.strong,{children:`Needs work`}),` (below 50). Click it to open the SEO panel: a sidebar on large screens, or a slide-over sheet titled `,_jsx(_components.strong,{children:`SEO`}),` on phones.`]}),`\n`,_jsx(Heading,{level:`3`,id:`focus-keywords`,children:`Focus keywords`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add your primary keyword`,children:_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Focus keywords`}),`, type a keyword and press Enter (or a comma). The first chip is tagged `,_jsx(_components.strong,{children:`1st`}),`: it is the primary keyword and drives the score.`]})}),_jsx(Step,{title:`Add secondary keywords if you like`,children:_jsxs(_components.p,{children:[`Further chips are only checked for presence. They appear in the `,_jsx(_components.strong,{children:`Additional keywords`}),` card with an occurrence count or `,_jsx(_components.strong,{children:`not used`}),`, and they do not change the score.`]})}),_jsx(Step,{title:`Watch the score move`,children:_jsx(_components.p,{children:`Edit the draft and the score, stats and checks update live.`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`reading-the-panel`,children:`Reading the panel`}),`\n`,_jsxs(_components.p,{children:[`From top to bottom the panel shows the focus keyword chips, the `,_jsx(_components.strong,{children:`Search preview`}),` with its `,_jsx(_components.strong,{children:`Edit snippet`}),` button, a score card (the ring, a letter grade from A to F, a headline such as `,_jsx(_components.strong,{children:`Excellent SEO`}),`, `,_jsx(_components.strong,{children:`Good SEO`}),` or `,_jsx(_components.strong,{children:`Needs work`}),`, and how many checks pass out of the total), a stats grid (`,_jsx(_components.strong,{children:`Words`}),`, `,_jsx(_components.strong,{children:`Headings`}),`, `,_jsx(_components.strong,{children:`Images`}),`, `,_jsx(_components.strong,{children:`Links`}),`, `,_jsx(_components.strong,{children:`Density`}),`, `,_jsx(_components.strong,{children:`Reading ease`}),`), and four collapsible groups: `,_jsx(_components.strong,{children:`Basic SEO`}),`, `,_jsx(_components.strong,{children:`Additional`}),`, `,_jsx(_components.strong,{children:`Title readability`}),` and `,_jsx(_components.strong,{children:`Content readability`}),`. Each group says `,_jsx(_components.strong,{children:`All passing`}),` or how many items there are to fix, with pass, warn and fail rows and a one-line hint. The group with something to fix opens first.`]}),`\n`,_jsx(Heading,{level:`3`,id:`what-the-checks-look-at`,children:`What the checks look at`}),`\n`,_jsx(_components.p,{children:`In plain words, the checks ask whether:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`your primary keyword appears in the title, near the start of the title, in the opening of the article, early in the body and anywhere in the body;`}),`\n`,_jsx(_components.li,{children:`your primary keyword appears in a subheading, in an image’s alt text and in the URL slug;`}),`\n`,_jsx(_components.li,{children:`the article is long enough (at least 600 words);`}),`\n`,_jsx(_components.li,{children:`the draft has at least one internal link and at least one external link;`}),`\n`,_jsx(_components.li,{children:`the slug is short (under 75 characters);`}),`\n`,_jsx(_components.li,{children:`the draft has four or more headings, or a table of contents;`}),`\n`,_jsx(_components.li,{children:`paragraphs stay concise (under 150 words) and the text reads easily (measured once the draft is long enough);`}),`\n`,_jsx(_components.li,{children:`the draft includes at least one image or video.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Keyword density is shown for information only and does not affect the score.`}),`\n`,_jsx(Heading,{level:`3`,id:`search-preview-and-snippet-editor`,children:`Search preview and snippet editor`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Search preview`}),` card renders how the post may look in a search result: your site’s initial and host, a breadcrumb URL, a blue title and a grey description. It uses the project’s domain when one is set; otherwise it shows `,_jsx(_components.code,{children:`yoursite.com`}),`.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the snippet editor`,children:_jsxs(_components.p,{children:[`In the SEO panel, click `,_jsx(_components.strong,{children:`Edit snippet`}),` under the search preview. The `,_jsx(_components.strong,{children:`Preview snippet editor`}),` dialog shows a live preview above the fields.`]})}),_jsx(Step,{title:`Fill in the fields`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`SEO title`}),` (aim for 50–60 characters), `,_jsx(_components.strong,{children:`Permalink`}),` (the slug, 60–75 characters; leave it blank to derive it from the title), `,_jsx(_components.strong,{children:`Meta description`}),` (120–160 characters) and `,_jsx(_components.strong,{children:`Focus keyword`}),`. The bar under each field is amber when short, green when in range and red when over the limit.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Save snippet`}),`.`]})})]}),`\n`,_jsx(_components.p,{children:`Blank fields fall back to the task title, a slug derived from the title, and the first 160 characters of the body. These values are also what Visibility sends to WordPress as the post title, slug, excerpt and SEO fields.`}),`\n`,_jsx(Heading,{level:`2`,id:`images`,children:`Images`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Insert an image`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Insert image`}),` in the toolbar. Either `,_jsx(_components.strong,{children:`Choose file`}),` (PNG, JPEG, WebP or GIF, up to 10 MB each) or paste an image URL, add `,_jsx(_components.strong,{children:`Alt text`}),`, and click `,_jsx(_components.strong,{children:`Insert`}),`.`]})}),_jsx(Step,{title:`Replace, edit or delete it later`,children:_jsxs(_components.p,{children:[`Click the image. A bubble beneath it shows its alt text (or URL) with two buttons: `,_jsx(_components.strong,{children:`Replace or edit image`}),` (upload a new file or change the URL, edit the alt text, then click `,_jsx(_components.strong,{children:`Save`}),`) and `,_jsx(_components.strong,{children:`Delete image`}),`.`]})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Alt text is what the image-alt check reads, so put your primary keyword in at least one image’s alt text where it fits naturally.`})}),`\n`,_jsx(_components.p,{children:`Uploaded files are stored with the task. When you post to WordPress, they are copied into the site’s media library.`}),`\n`,_jsx(Heading,{level:`2`,id:`links`,children:`Links`}),`\n`,_jsxs(_components.p,{children:[`Select text and click `,_jsx(_components.strong,{children:`Insert/edit link`}),`, then enter the URL (clearing it removes the link). Or place the caret inside an existing link: a bubble shows the URL with `,_jsx(_components.strong,{children:`Edit link`}),` and `,_jsx(_components.strong,{children:`Remove link`}),`.`]}),`\n`,_jsx(_components.p,{children:`Whether a link counts as internal or external is judged against your project’s domain:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A relative link, or a full URL to the project’s domain (with or without `,_jsx(_components.code,{children:`www`}),`), is `,_jsx(_components.strong,{children:`internal`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A URL to any other host is `,_jsx(_components.strong,{children:`external`}),`. A subdomain counts as another site.`]}),`\n`,_jsx(_components.li,{children:`If the project has no domain set, every full URL counts as external.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The SEO checks want at least one of each.`}),`\n`,_jsx(Heading,{level:`2`,id:`working-with-the-agent-on-a-draft`,children:`Working with the agent on a draft`}),`\n`,_jsx(Heading,{level:`3`,id:`edit-with-agent`,children:`Edit with agent`}),`\n`,_jsx(_components.p,{children:`Ask the assigned agent to change one passage rather than rewrite the whole article.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Select the passage`,children:_jsxs(_components.p,{children:[`Highlight the text in the editor. An `,_jsx(_components.strong,{children:`Edit with agent`}),` button appears at the end of the selection (only when the task has an assigned agent).`]})}),_jsx(Step,{title:`Describe the change`,children:_jsxs(_components.p,{children:[`Click it, type your instruction in `,_jsx(_components.strong,{children:`What should the agent change here?`}),`, and click `,_jsx(_components.strong,{children:`Send to agent`}),` (or press Ctrl/Cmd+Enter). The passage stays outlined while the panel is open.`]})}),_jsx(Step,{title:`Review the result`,children:_jsxs(_components.p,{children:[`The request is posted to the task’s `,_jsx(_components.strong,{children:`Discussion`}),` as a comment. The agent edits just that passage and the new version appears in the editor.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Selections longer than 4,000 characters are refused with `,_jsx(_components.strong,{children:`That selection is too long to send as a single edit — select a smaller passage.`})]}),`\n`,_jsx(Heading,{level:`3`,id:`fix-seo-score-with-agent`,children:`Fix SEO score with agent`}),`\n`,_jsxs(_components.p,{children:[`Open the actions menu (`,_jsx(_components.strong,{children:`…`}),`) and choose `,_jsx(_components.strong,{children:`Fix SEO score with agent`}),`. Visibility sends the assigned agent a comment listing every failing check and confirms `,_jsx(_components.strong,{children:`Sent to the assigned agent — it will revise the draft`}),`. The entry only appears when the task has an assigned agent and at least one check is not passing.`]}),`\n`,_jsx(Heading,{level:`3`,id:`version-history-and-undoing-an-ai-edit`,children:`Version history and undoing an AI edit`}),`\n`,_jsx(_components.p,{children:`Every draft keeps a history, so an agent’s pass never buries your own work.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the history`,children:_jsxs(_components.p,{children:[`Actions menu (`,_jsx(_components.strong,{children:`…`}),`) → `,_jsx(_components.strong,{children:`Version history`}),`. The left-hand list shows each version with its author (a name, `,_jsx(_components.strong,{children:`You`}),` or `,_jsx(_components.strong,{children:`Earlier draft`}),`), when it was made, its kind (`,_jsx(_components.strong,{children:`Edit`}),`, `,_jsx(_components.strong,{children:`AI edit`}),`, `,_jsx(_components.strong,{children:`Restored`}),` or `,_jsx(_components.strong,{children:`Before history`}),`) and its size. The version identical to your live draft is tagged `,_jsx(_components.strong,{children:`Current`}),`.`]})}),_jsx(Step,{title:`Compare`,children:_jsxs(_components.p,{children:[`Click a version to see a diff between it and your current draft on the right, with added and removed lines counted and unchanged stretches collapsed. When an agent has touched the draft, click `,_jsx(_components.strong,{children:`Compare the AI’s last changes`}),` to see exactly what it changed on its last pass.`]})}),_jsx(Step,{title:`Restore or undo`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Restore this version`}),` (or `,_jsx(_components.strong,{children:`Undo the AI’s changes`}),`). The earlier text becomes the draft again, and the version you replaced stays in the history, so a restore can itself be undone.`]})})]}),`\n`,_jsx(_components.p,{children:`A new version starts after a pause of about 30 seconds or when a different author edits, so autosaves within one editing burst are grouped together. Up to 200 versions are kept per task.`}),`\n`,_jsx(Heading,{level:`2`,id:`connecting-wordpress`,children:`Connecting WordPress`}),`\n`,_jsxs(_components.p,{children:[`WordPress is connected per project with the official `,_jsx(_components.strong,{children:`Agentic SEO for Visibility`}),` plugin. No WordPress passwords or application passwords are involved: the plugin and Visibility pair through a short code.`]}),`\n`,_jsx(Frame,{caption:`The WordPress card in the project's Integrations settings`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=f963b56eac7411e4da89e70d5408b6b8`,alt:`Project Settings Integrations tab showing the WordPress card`,\"data-og-width\":`1568`,width:`1568`,\"data-og-height\":`782`,height:`782`,\"data-path\":`images/wordpress.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=2e41ff5c4b8ab414ed638af2c4cb6221 280w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=ff7cd6da7bf470e0d01bd03671dc0a3c 560w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=936d6c42b8eaba8e4cd8663b51d35f1d 840w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=f75be125c8ffd5f0de06c84b06d3d31b 1100w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=24aee4a551b7723933fb93148d34cf36 1650w, https://mintcdn.com/doableteam-a944c448/-1GTvD6OGO5y12MA/images/wordpress.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=-1GTvD6OGO5y12MA\u0026q=85\u0026s=1f6850e049b3cf3147a01b2c7c19bad7 2500w`})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Install the plugin`,children:_jsxs(_components.p,{children:[`In your WordPress admin, install and activate `,_jsx(_components.strong,{children:`Agentic SEO for Visibility`}),` from the WordPress plugin directory (wordpress.org). It needs WordPress 6.0 or later and PHP 7.4 or later.`]})}),_jsx(Step,{title:`Start pairing in Visibility`,children:_jsxs(_components.p,{children:[`Open the project, go to `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Integrations`}),`, and click `,_jsx(_components.strong,{children:`Connect`}),` on the `,_jsx(_components.strong,{children:`WordPress`}),` card. In the `,_jsx(_components.strong,{children:`Connect WordPress`}),` dialog, click `,_jsx(_components.strong,{children:`Generate pairing code`}),` and copy the code. It looks like `,_jsx(_components.code,{children:`VIS-A7K9-XB`}),`.`]})}),_jsx(Step,{title:`Paste the code into the plugin`,children:_jsxs(_components.p,{children:[`In WordPress admin, open `,_jsx(_components.strong,{children:`Agentic SEO`}),` → `,_jsx(_components.strong,{children:`Connection`}),`, paste the code into `,_jsx(_components.strong,{children:`Pairing code`}),` and click `,_jsx(_components.strong,{children:`Connect`}),`.`]})}),_jsx(Step,{title:`Confirm`,children:_jsxs(_components.p,{children:[`Back in Visibility the card shows a green `,_jsx(_components.strong,{children:`Connected`}),` badge with the site name. The plugin’s Connection screen shows the Company, Project, when the site was paired and last seen, and the plugin version.`]})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Pairing codes are single-use and expire after 10 minutes. If yours lapses, click `,_jsx(_components.strong,{children:`Generate another`}),`. Each project connects to one site; pairing again replaces the previous connection. On a WordPress multisite network, each subsite pairs separately.`]})}),`\n`,_jsxs(_components.p,{children:[`Connecting or disconnecting requires the `,_jsx(_components.strong,{children:`Manage integrations`}),` permission, which company admins have. Without it the `,_jsx(_components.strong,{children:`Connect`}),` button is disabled with a tooltip. See `,_jsx(_components.a,{href:`/team-management`,children:`Team management`}),` for permissions and `,_jsx(_components.a,{href:`/integrations`,children:`Integrations`}),` for the project’s other connections.`]}),`\n`,_jsxs(_components.p,{children:[`To disconnect, click `,_jsx(_components.strong,{children:`Disconnect`}),` on the WordPress card, or use `,_jsx(_components.strong,{children:`Disconnect`}),` on the plugin’s `,_jsx(_components.strong,{children:`Agentic SEO`}),` → `,_jsx(_components.strong,{children:`Connection`}),` screen. Disconnecting removes only the pairing: posts already on the site and your tasks in Visibility are untouched, and you can pair again with a new code at any time.`]}),`\n`,_jsx(Heading,{level:`2`,id:`posting-to-wordpress`,children:`Posting to WordPress`}),`\n`,_jsxs(_components.p,{children:[`Posting from the editor always creates a `,_jsx(_components.strong,{children:`draft`}),` on the site, never a live post. Publishing needs an Approval.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Create the draft`,children:_jsxs(_components.p,{children:[`In the content task’s editor, open the actions menu (`,_jsx(_components.strong,{children:`…`}),`) and choose `,_jsx(_components.strong,{children:`Post to WordPress`}),`. Check the `,_jsx(_components.strong,{children:`Title`}),` (it defaults to the SEO title, or else the task title) and the optional `,_jsx(_components.strong,{children:`Slug`}),`, then click `,_jsx(_components.strong,{children:`Create draft`}),`. You’ll see `,_jsx(_components.strong,{children:`Draft created on WordPress`}),`.`]})}),_jsx(Step,{title:`Read the status box`,children:_jsxs(_components.p,{children:[`It reports whether the featured image was set (`,_jsx(_components.strong,{children:`Featured image set.`}),`) and where the SEO fields went: `,_jsx(_components.strong,{children:`SEO fields written to`}),` followed by the plugin name, or a notice that no SEO plugin is installed and Visibility is emitting the tags itself. Warnings appear if an image could not be copied, the featured image failed, or SEO fields were not written.`]})}),_jsx(Step,{title:`Schedule, if you want`,children:_jsxs(_components.p,{children:[`Set `,_jsx(_components.strong,{children:`Publish at (optional)`}),` to a future date and time. Times are in your local time zone. Leave it empty to publish as soon as the request is approved.`]})}),_jsx(Step,{title:`Request publishing`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Request publish`}),`. You’ll see `,_jsx(_components.strong,{children:`Publish requested — an admin approves it from the Inbox`}),` (or `,_jsx(_components.strong,{children:`Scheduled for`}),` the chosen date). The post stays a draft on the site until someone approves it.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`what-is-sent-to-the-site`,children:`What is sent to the site`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The article body, converted to native WordPress blocks so it stays editable in the block editor.`}),`\n`,_jsx(_components.li,{children:`The post title, slug, excerpt (your meta description), primary focus keyword, SEO title and description, and the social (Open Graph) title, description and image.`}),`\n`,_jsx(_components.li,{children:`The featured image, taken from the draft’s social (Open Graph) image. The site downloads it, so it must be a publicly reachable URL or a path on the site.`}),`\n`,_jsx(_components.li,{children:`Images you uploaded in the editor, copied into the site’s media library: the first 8 images in a draft. Images that are already public are left where they are. Images whose URL no longer exists are removed and reported.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`approving-a-publish-request`,children:`Approving a publish request`}),`\n`,_jsxs(_components.p,{children:[`Every publish, whether requested by a person or an agent and whether immediate or scheduled, creates a `,_jsx(_components.strong,{children:`WordPress publish`}),` Approval. Approving it is what publishes the post; rejecting it leaves the post a draft on the site.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Approval`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Inbox`}),` → `,_jsx(_components.strong,{children:`Approvals`}),`. The notification `,_jsx(_components.strong,{children:`Approval needed: a WordPress publish`}),` links straight there.`]})}),_jsx(Step,{title:`Decide`,children:_jsxs(_components.p,{children:[`The pending card reads `,_jsx(_components.strong,{children:`Publish`}),` followed by the post title and the site. Optionally type a note in `,_jsx(_components.strong,{children:`Optional note for the decision…`}),`, then click `,_jsx(_components.strong,{children:`Approve`}),` or `,_jsx(_components.strong,{children:`Reject`}),`.`]})}),_jsx(Step,{title:`What happens next`,children:_jsxs(_components.p,{children:[`On approve, the post goes live immediately or is scheduled in WordPress for the requested time, and the requester is notified `,_jsx(_components.strong,{children:`Approved: a WordPress publish`}),`. If the site refuses, the row reads `,_jsx(_components.strong,{children:`Publish failed`}),` with the site’s reason and the post stays a draft; admins and the requester get a `,_jsx(_components.strong,{children:`Couldn’t publish`}),` notification.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Deciding requires the `,_jsx(_components.strong,{children:`Decide approvals`}),` permission, which company admins have. Everyone else sees `,_jsx(_components.strong,{children:`Pending — an admin will decide on this request.`}),` Resolved items collapse into an accordion below the pending ones. Agents can request publishes but never publish themselves. See `,_jsx(_components.a,{href:`/inbox-and-approvals`,children:`Inbox and approvals`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A scheduled time that has already passed by the time the request is approved publishes immediately on approval.`})}),`\n`,_jsx(Heading,{level:`2`,id:`seo-plugins-on-your-site`,children:`SEO plugins on your site`}),`\n`,_jsx(_components.p,{children:`When Visibility writes a post’s SEO fields, the plugin looks for an SEO plugin on the site and hands the fields to it.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`On the site`}),_jsx(_components.th,{children:`What Visibility does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yoast SEO`})}),_jsx(_components.td,{children:`Writes every SEO field Visibility sends, including Open Graph and robots settings.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Rank Math`})}),_jsx(_components.td,{children:`Writes every SEO field Visibility sends, including Open Graph and robots settings.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`All in One SEO`})}),_jsx(_components.td,{children:`Writes the SEO title, description, focus keyword and canonical only. Open Graph and robots settings are not written.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`No SEO plugin`}),_jsx(_components.td,{children:`The Visibility plugin stores the fields itself and outputs the meta description, Open Graph tags, canonical, robots and structured data on the page.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The plugin’s `,_jsx(_components.strong,{children:`Connection`}),` screen tells you which case applies: either `,_jsx(_components.strong,{children:`No SEO plugin detected`}),` or a note that SEO tags are managed by the named plugin. If you install an SEO plugin later, the Visibility plugin hands over to it and stops emitting its own tags.`]}),`\n`,_jsx(Heading,{level:`2`,id:`agents-that-work-on-content`,children:`Agents that work on content`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SEO Content Writer`}),` — briefs, drafts and optimises content, and can post to WordPress.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`WordPress Agent`}),` — turns finished content into drafts and requests publishes. It can only be assigned to projects with a connected WordPress site.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For either to touch your site, the agent needs the `,_jsx(_components.strong,{children:`WordPress`}),` access grant, labelled `,_jsx(_components.strong,{children:`Publish to WordPress. Always also gated by the publish approval.`}),` A person still approves every publish. See `,_jsx(_components.a,{href:`/agents`,children:`Agents`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Content and WordPress","description":"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.","href":"/content-and-wordpress"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The Content page","slug":"the-content-page","depth":2,"children":[{"title":"Creating a content task","slug":"creating-a-content-task","depth":3,"children":[]},{"title":"Planning topics on the Planner","slug":"planning-topics-on-the-planner","depth":3,"children":[]}]},{"title":"The editor","slug":"the-editor","depth":2,"children":[{"title":"Toolbar","slug":"toolbar","depth":3,"children":[]},{"title":"Saving","slug":"saving","depth":3,"children":[]},{"title":"The actions menu","slug":"the-actions-menu","depth":3,"children":[]}]},{"title":"SEO score and panel","slug":"seo-score-and-panel","depth":2,"children":[{"title":"Focus keywords","slug":"focus-keywords","depth":3,"children":[]},{"title":"Reading the panel","slug":"reading-the-panel","depth":3,"children":[]},{"title":"What the checks look at","slug":"what-the-checks-look-at","depth":3,"children":[]},{"title":"Search preview and snippet editor","slug":"search-preview-and-snippet-editor","depth":3,"children":[]}]},{"title":"Images","slug":"images","depth":2,"children":[]},{"title":"Links","slug":"links","depth":2,"children":[]},{"title":"Working with the agent on a draft","slug":"working-with-the-agent-on-a-draft","depth":2,"children":[{"title":"Edit with agent","slug":"edit-with-agent","depth":3,"children":[]},{"title":"Fix SEO score with agent","slug":"fix-seo-score-with-agent","depth":3,"children":[]},{"title":"Version history and undoing an AI edit","slug":"version-history-and-undoing-an-ai-edit","depth":3,"children":[]}]},{"title":"Connecting WordPress","slug":"connecting-wordpress","depth":2,"children":[]},{"title":"Posting to WordPress","slug":"posting-to-wordpress","depth":2,"children":[{"title":"What is sent to the site","slug":"what-is-sent-to-the-site","depth":3,"children":[]}]},{"title":"Approving a publish request","slug":"approving-a-publish-request","depth":2,"children":[]},{"title":"SEO plugins on your site","slug":"seo-plugins-on-your-site","depth":2,"children":[]},{"title":"Agents that work on content","slug":"agents-that-work-on-content","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"doableteam-a944c448","siteName":"Visibility Docs","title":"Content and WordPress - Visibility Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-03T11:19:39.997Z","originalFileLocation":"content-and-wordpress.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Visibility Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Content and WordPress - Visibility Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Visibility Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.visibility.so/content-and-wordpress\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Content and WordPress - Visibility Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/doableteam-a944c448/ppFUL9WdIUUntbf2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Visibility Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#171717\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.visibility.so/content-and-wordpress\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/content-and-wordpress.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.visibility.so/#organization\",\"name\":\"Visibility Docs\",\"url\":\"https://docs.visibility.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/doableteam-a944c448/yZxfxMRqwidNc6fj/logo/light.png?fit=max\u0026auto=format\u0026n=yZxfxMRqwidNc6fj\u0026q=85\u0026s=e1fd35ed3273f515f71eeea2dadf78bc\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.visibility.so#website\",\"name\":\"Visibility Docs\",\"url\":\"https://docs.visibility.so\",\"publisher\":{\"@id\":\"https://docs.visibility.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.visibility.so/content-and-wordpress#webpage\",\"url\":\"https://docs.visibility.so/content-and-wordpress\",\"name\":\"Content and WordPress\",\"description\":\"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.\",\"dateModified\":\"2026-09-03T11:19:39.997Z\",\"isPartOf\":{\"@id\":\"https://docs.visibility.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.visibility.so/content-and-wordpress#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.visibility.so/content-and-wordpress#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Projects \u0026 SEO\",\"item\":\"https://docs.visibility.so/projects\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Content and WordPress\",\"item\":\"https://docs.visibility.so/content-and-wordpress\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.visibility.so/content-and-wordpress#article\",\"headline\":\"Content and WordPress\",\"name\":\"Content and WordPress\",\"description\":\"Plan content, write and score drafts in the editor, and publish to WordPress through an Approval in the Inbox.\",\"url\":\"https://docs.visibility.so/content-and-wordpress\",\"mainEntityOfPage\":{\"@id\":\"https://docs.visibility.so/content-and-wordpress#webpage\"},\"dateModified\":\"2026-09-03T11:19:39.997Z\",\"publisher\":{\"@id\":\"https://docs.visibility.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.visibility.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Visibility Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Visibility Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","groups":[{"group":"Getting started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Getting started","href":"/getting-started"},{"title":"Navigating the app","href":"/navigating-the-app"}]},{"group":"Agents \u0026 work","pages":[{"title":"Agents","href":"/agents"},{"title":"Tasks","href":"/tasks"},{"title":"Chat","href":"/chat"},{"title":"Inbox and approvals","href":"/inbox-and-approvals"}]},{"group":"Projects \u0026 SEO","pages":[{"title":"Projects","href":"/projects"},{"title":"SEO features","href":"/seo-features"},{"title":"Keyword rankings","href":"/keyword-rankings"},{"title":"AI Visibility","href":"/ai-visibility"},{"title":"Organic traffic","href":"/organic-traffic"},{"title":"Opportunities","href":"/opportunities"},{"title":"Custom dashboards","description":"Build a drag-and-drop report from a project's keyword ranking, AI Visibility and organic traffic data, then share it with a client at a public link.","href":"/dashboards"},{"title":"Content and WordPress","href":"/content-and-wordpress"},{"title":"Link building","description":"Run outreach campaigns as activity spreadsheets, import prospects from a file, and let the Backlink Building and SEO Outreach agents fill them in.","href":"/link-building"}]},{"group":"Team \u0026 company","pages":[{"title":"Team management","href":"/team-management"},{"title":"Company settings","href":"/company-settings"},{"title":"Your account","href":"/account"}]},{"group":"Billing","pages":[{"title":"Billing and subscriptions","href":"/billing-and-subscriptions"},{"title":"Credits and BYOK","href":"/credits-and-byok"}]},{"group":"Configuration","pages":[{"title":"Integrations","href":"/integrations"}]}]},{"tab":"Changelog","icon":"megaphone","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"FAQ","icon":"circle-question","pages":[{"title":"FAQ","href":"/faq"}]}]},"title":"Content and WordPress - Visibility Docs","buildId":"dpl_CUnGQP1HgFUzoxatVC37y4zP83Vx","deploymentId":"dpl_CUnGQP1HgFUzoxatVC37y4zP83Vx","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BCFzRGe_.js","DynamicMarkdown-BUuAYxJE.js","zoom-image-lightbox-DQ5W4Q2v.js","PlusIcon-jZ8vgk6R.js","lightbox-handle-r17bVUz3.js"]}