{"id":30,"date":"2026-09-17T21:24:58","date_gmt":"2026-09-17T21:24:58","guid":{"rendered":"https:\/\/wpcontentwriter.com\/kb\/entity-seo-for-wordpress\/"},"modified":"2026-09-17T21:24:58","modified_gmt":"2026-09-17T21:24:58","slug":"entity-seo-for-wordpress","status":"publish","type":"post","link":"https:\/\/wpcontentwriter.com\/kb\/entity-seo-for-wordpress\/","title":{"rendered":"Entity SEO for WordPress"},"content":{"rendered":"<p>Entity SEO is the work of making machines confident about <em>what you are<\/em>, as distinct from what your pages are about. A keyword is a string. An entity is a thing in the world with properties, and models reason about things.<\/p>\n<p>The practical test: ask ChatGPT or Claude &#8220;what is [your company]?&#8221; in a fresh conversation. If the answer is vague, hedged, or describes a different company with a similar name, you have an entity problem, and no amount of keyword work will fix it.<\/p>\n<div class=\"kb-takeaway\">\n<span class=\"kb-takeaway__label\">Why this matters more than it used to<\/span><\/p>\n<p>A search engine could rank your page without knowing who you were. A model asked to recommend something has to decide whether you are a real, identifiable option. Ambiguity gets you left out of the shortlist entirely rather than ranked lower in it.<\/p>\n<\/div>\n<h2>The three problems, in order<\/h2>\n<h3>1. You do not have one canonical description<\/h3>\n<p>Most sites describe themselves four different ways: one on the homepage, another on About, a third in the footer, a fourth in the meta description. All roughly true, none identical. A model assembling a description has to pick, and the one it picks may be your weakest.<\/p>\n<p>Write one sentence. Use it everywhere, word for word. Ours is &#8220;AI post writing inside the WordPress editor, priced per site rather than per word&#8221;, and it appears on the homepage, in the footer, in the schema and in the llms.txt summary, unchanged.<\/p>\n<h3>2. Your name is inconsistent<\/h3>\n<p>WP Content Writer. WPCWP. WP Content Writer Pro. wpcontentwriter.com. If those appear interchangeably without ever being connected, a model may treat them as up to four different things, each with a fragment of the evidence.<\/p>\n<p>Pick a canonical name, use abbreviations only after introducing them, and state the relationship explicitly somewhere: the product is X, the company behind it is Y. We had exactly this confusion in our own privacy notice, where the controller was named as the product rather than the company \u2014 a small thing that makes the entity harder to resolve, not easier.<\/p>\n<h3>3. Nothing connects your site to the rest of the web<\/h3>\n<p>An entity is corroborated, not asserted. If your site is the only place your company exists, there is nothing to corroborate.<\/p>\n<h2>What to actually do<\/h2>\n<h3>Organization schema, with sameAs<\/h3>\n<p><code>sameAs<\/code> is the property that does the connecting. It says: this thing, and that profile over there, are the same thing.<\/p>\n<pre><code>add_action('wp_head', function () {\n    if (! is_front_page()) {\n        return;\n    }\n\n    echo '&lt;script type=\"application\/ld+json\"&gt;' . wp_json_encode([\n        '@context'    =&gt; 'https:\/\/schema.org',\n        '@type'       =&gt; 'Organization',\n        'name'        =&gt; 'WP Content Writer',\n        'url'         =&gt; 'https:\/\/wpcontentwriter.com\/',\n        'logo'        =&gt; 'https:\/\/wpcontentwriter.com\/apple-touch-icon.png',\n        'description' =&gt; 'AI post writing inside the WordPress editor, priced per site rather than per word.',\n        'sameAs'      =&gt; [\n            'https:\/\/wordpress.org\/plugins\/\u2026',\n            'https:\/\/github.com\/\u2026',\n            'https:\/\/www.linkedin.com\/company\/\u2026',\n        ],\n    ]) . '&lt;\/script&gt;';\n});<\/code><\/pre>\n<p>Only list profiles that exist and that you control. A <code>sameAs<\/code> pointing at an abandoned account is worse than one fewer entry.<\/p>\n<h3>One About page that answers the boring questions<\/h3>\n<p>What the company is, what it sells, where it is, when it started, who is behind it. Plainly, in prose, on one page you link to consistently. This is the page a retrieval pass reads when someone asks who you are, and a page of mission statements answers none of it.<\/p>\n<h3>A product page per product, not per keyword<\/h3>\n<p>If you sell one thing, you need one canonical page for it, not six near-duplicates targeting variations of the same phrase. Near-duplicates split the evidence and give a model no obvious canonical source.<\/p>\n<figure class=\"kb-figure\">\n<svg viewBox=\"0 0 640 210\" role=\"img\" aria-label=\"Scattered signals versus a single resolved entity\">\n  <text class=\"fig-title\" x=\"10\" y=\"20\" font-size=\"14\">Before and after<\/text><\/p>\n<p>  <circle cx=\"60\" cy=\"72\" r=\"20\" fill=\"#FFFFFF\" stroke=\"#FF6B35\"\/>\n  <text x=\"44\" y=\"76\" font-size=\"9.5\">WPCWP<\/text>\n  <circle cx=\"148\" cy=\"52\" r=\"20\" fill=\"#FFFFFF\" stroke=\"#FF6B35\"\/>\n  <text x=\"128\" y=\"56\" font-size=\"9.5\">WP Writer<\/text>\n  <circle cx=\"120\" cy=\"126\" r=\"20\" fill=\"#FFFFFF\" stroke=\"#FF6B35\"\/>\n  <text x=\"102\" y=\"130\" font-size=\"9.5\">the Pro<\/text>\n  <circle cx=\"220\" cy=\"108\" r=\"20\" fill=\"#FFFFFF\" stroke=\"#FF6B35\"\/>\n  <text x=\"202\" y=\"112\" font-size=\"9.5\">the site<\/text>\n  <text class=\"fig-muted\" x=\"10\" y=\"176\" font-size=\"11\">Four fragments. Nothing says they are one thing.<\/text><\/p>\n<line x1=\"290\" y1=\"30\" x2=\"290\" y2=\"185\" stroke=\"#E2E8F0\"\/>\n<p>  <circle cx=\"420\" cy=\"90\" r=\"34\" fill=\"#FFFFFF\" stroke=\"#7C3AED\" stroke-width=\"2\"\/>\n  <text x=\"396\" y=\"86\" font-size=\"10.5\" font-weight=\"600\">WP Content<\/text>\n  <text x=\"404\" y=\"100\" font-size=\"10.5\" font-weight=\"600\">Writer<\/text>\n  <line x1=\"454\" y1=\"90\" x2=\"524\" y2=\"58\" stroke=\"#94A3B8\" stroke-width=\"1.2\"\/>\n  <line x1=\"454\" y1=\"90\" x2=\"524\" y2=\"90\" stroke=\"#94A3B8\" stroke-width=\"1.2\"\/>\n  <line x1=\"454\" y1=\"90\" x2=\"524\" y2=\"122\" stroke=\"#94A3B8\" stroke-width=\"1.2\"\/>\n  <text class=\"fig-muted\" x=\"530\" y=\"62\" font-size=\"10\">plugin page<\/text>\n  <text class=\"fig-muted\" x=\"530\" y=\"94\" font-size=\"10\">repository<\/text>\n  <text class=\"fig-muted\" x=\"530\" y=\"126\" font-size=\"10\">company profile<\/text>\n  <text class=\"fig-muted\" x=\"310\" y=\"176\" font-size=\"11\">One entity, corroborated by sameAs.<\/text>\n<\/svg><figcaption>The right-hand shape is what lets a model say your name without hedging.<\/figcaption><\/figure>\n<h3>Get mentioned accurately elsewhere<\/h3>\n<p>A plugin directory listing, a repository, a well-kept profile on whatever platform your field uses. Not for the backlink. For the second independent source that says the same thing your site says.<\/p>\n<p>Where a third party has you wrong, fixing that is often higher-value than writing another page. A stale directory entry with your old pricing will be read and quoted.<\/p>\n<h2>How to check progress<\/h2>\n<p>Same method as everything else here, and still the only one that means anything: ask the models directly, on a schedule, and write down what they say. Specifically watch for whether the description is yours, whether the facts are current, and whether it confuses you with anyone.<\/p>\n<div class=\"kb-faq\">\n<h2>Common questions<\/h2>\n<details>\n<summary>Do I need a Wikipedia page?<\/summary>\n<p>No, and you almost certainly should not try to create one for a small company \u2014 notability rules exist and self-promotional articles get deleted, sometimes noisily. Consistent naming, Organization schema and a couple of legitimate profiles get you most of the benefit.<\/p>\n<\/details>\n<details>\n<summary>Is Knowledge Graph inclusion the goal?<\/summary>\n<p>It is a useful signal that your entity has resolved, not a goal in itself. You cannot apply for it. You can make yourself unambiguous and let it follow.<\/p>\n<\/details>\n<details>\n<summary>How is this different from normal on-page SEO?<\/summary>\n<p>On-page SEO makes a page about a topic. Entity work makes a company or product identifiable. You can rank well for pages while being unrecommendable, which is exactly the position a lot of sites are in now.<\/p>\n<\/details>\n<details>\n<summary>Does an author entity matter for a blog?<\/summary>\n<p>For anything where expertise is part of the claim, yes. A named author with a consistent bio and a real profile elsewhere is more corroborable than &#8220;admin&#8221;. If your articles are institutional rather than personal, attributing them to the organisation is cleaner than inventing a persona.<\/p>\n<\/details>\n<details>\n<summary>How long does this take to work?<\/summary>\n<p>Schema and site-side consistency are effective as soon as pages are re-crawled. Third-party corroboration moves slowly, and anything depending on a model&#8217;s training data moves on the vendors&#8217; schedule rather than yours.<\/p>\n<\/details>\n<\/div>\n<h2>Where to go next<\/h2>\n<p><a href=\"\/kb\/schema-markup-for-ai-search\/\">Schema markup for AI search<\/a> is the mechanical half. <a href=\"\/kb\/what-is-llm-seo\/\">What is LLM SEO?<\/a> puts it in context.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Entity SEO is the work of making machines confident about what you are, as distinct from what your pages are about. A keyword is a string. An entity is a thing in&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-technical"],"_links":{"self":[{"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":0,"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"wp:attachment":[{"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpcontentwriter.com\/kb\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}