Skip to content

SEO & Accessibility toolkit

Shipping since v1.8.0. Pro. Everything here reads the page’s real, live Elementor structure, headings, images, links, contrast, rather than asking an LLM to guess. No external API calls, no per-audit cost. All 7 tools are off by default.

This is distinct from the per-plugin SEO integrations, which read and write whatever your SEO plugin (Yoast, Rank Math, …) already stores. This toolkit analyses and generates; the SEO integrations read and set stored fields. generate-meta-tags, set-social-image, and generate-schema-markup below write through to whichever SEO plugin is active, so the two work together.

Scored on-page SEO report: H1, title/meta length, canonical, heading hierarchy, image alts, internal links, word count, and optional target-keyword usage. Read-only.

Input: post_id (required), target_keyword (optional).

Extracts the most frequent meaningful keywords and two-word phrases from a page’s text (stop-word filtered, no external service). Useful for choosing a target keyword before auditing or generating meta tags. Read-only.

Input: post_id (required), limit (optional, default 20).

Proposes an SEO title (≤60 chars) and meta description (≤155 chars) from the page content, keyword-front-loaded when a target keyword is given. Dry-run by default; apply: true writes them to the active SEO plugin (Yoast / Rank Math).

Input: post_id (required), target_keyword (optional), apply (default false).

Sets the Open Graph + Twitter/X share image for a page, so link previews render the image you choose. Writes the explicit meta the active SEO plugin needs, without it, some plugins keep using the first image found in the content even after a featured image is assigned.

Input: post_id (required), image_id (Media Library attachment, preferred) and/or image_url.

Generates JSON-LD structured data: Article, LocalBusiness, FAQPage, Service, Product, or auto to infer the type. Dry-run by default; apply: true injects it into the page via a managed HTML widget (replaced in place on re-apply).

Input: post_id (required), type (default auto), business (NAP object for LocalBusiness: name/address/phone/etc.), faqs (array of { question, answer } for FAQPage), apply (default false).

Scored WCAG-oriented report: color contrast (best-effort), missing image alt text, heading hierarchy, generic link text, form-label coverage. Read-only.

Input: post_id (required).

Proposes adjusted text colors so failing text/background pairs meet WCAG AA. Dry-run by default; apply: true writes the changes (reversible via Elementor revisions).

Input: post_id (required), element_id (optional, limit to one element), target_ratio (default 4.5), apply (default false).

Proposes alt text for images that lack it, derived from the filename, the nearest heading, or the page title. No AI call. Dry-run by default; apply: true writes to the Media Library alt field and the image widget.

Input: post_id (required), apply (default false).

All 7 tools require an active Pro license and ship disabled by default. Enable them on EMCP Tools → Tools. Read tools (audit-*, extract-keywords-from-content) require edit_posts; the generate/fix tools require edit_posts plus the target page’s own edit permission.