{"id":337939,"date":"2026-07-26T21:51:43","date_gmt":"2026-07-26T21:51:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/linkweb-internal-link-schema\/"},"modified":"2026-08-30T21:01:32","modified_gmt":"2026-08-30T21:01:32","slug":"pillark","status":"publish","type":"plugin","link":"https:\/\/ary.wordpress.org\/plugins\/pillark\/","author":23477486,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Pillark \u2013 Pillar & SEO Cluster Internal Linking","header_author":"Lasse Enggaard","header_description":"Get a clear overview of your pillar pages and content clusters, plus internal link analysis, keyword cannibalization, and alt-text management.","assets_banners_color":"cbe7e1","last_updated":"2026-08-30 21:01:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pillark.org","header_author_uri":"https:\/\/lasse-enggaard.dk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":139,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"lasseenggaard","date":"2026-07-26 21:54:43","revision":3623829},"1.1.0":{"tag":"1.1.0","author":"lasseenggaard","date":"2026-08-30 21:01:32","revision":3673117}},"upgrade_notice":{"1.1.0":"<p>Rebuilt cluster view and one merged overview table. The CTA button feature is removed \u2014 if you used it, buttons will no longer appear on your posts.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3673093,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3673093,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3673093,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3673093,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3673093,"resolution":"1","location":"assets","locale":"","width":1600,"height":904},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3673093,"resolution":"2","location":"assets","locale":"","width":1600,"height":1250},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3673093,"resolution":"3","location":"assets","locale":"","width":1600,"height":1250},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3673093,"resolution":"4","location":"assets","locale":"","width":1600,"height":1091},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3673093,"resolution":"5","location":"assets","locale":"","width":1600,"height":1234}},"screenshots":{"1":"Clusters \u2014 each Pillar page with its supporting pages, colour coded by link direction.","2":"Internal link profile \u2014 every page and post with its links in, links out, external links and dead links.","3":"The detail dialog listing which pages link to a given page, and with what anchor text.","4":"Linking opportunities \u2014 pages that mention each other without linking.","5":"Keyword cannibalization and duplicate anchor texts."}},"plugin_section":[],"plugin_tags":[25078,19933,264443,186,278391],"plugin_category":[55],"plugin_contributors":[273391],"plugin_business_model":[],"class_list":["post-337939","plugin","type-plugin","status-publish","hentry","plugin_tags-anchor-text","plugin_tags-internal-linking","plugin_tags-pillar-pages","plugin_tags-seo","plugin_tags-topic-clusters","plugin_category-seo-and-marketing","plugin_contributors-lasseenggaard","plugin_committers-lasseenggaard"],"banners":{"banner":"https:\/\/ps.w.org\/pillark\/assets\/banner-772x250.png?rev=3673093","banner_2x":"https:\/\/ps.w.org\/pillark\/assets\/banner-1544x500.png?rev=3673093","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pillark\/assets\/icon-128x128.png?rev=3673093","icon_2x":"https:\/\/ps.w.org\/pillark\/assets\/icon-256x256.png?rev=3673093","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pillark\/assets\/screenshot-1.png?rev=3673093","caption":"Clusters \u2014 each Pillar page with its supporting pages, colour coded by link direction."},{"src":"https:\/\/ps.w.org\/pillark\/assets\/screenshot-2.png?rev=3673093","caption":"Internal link profile \u2014 every page and post with its links in, links out, external links and dead links."},{"src":"https:\/\/ps.w.org\/pillark\/assets\/screenshot-3.png?rev=3673093","caption":"The detail dialog listing which pages link to a given page, and with what anchor text."},{"src":"https:\/\/ps.w.org\/pillark\/assets\/screenshot-4.png?rev=3673093","caption":"Linking opportunities \u2014 pages that mention each other without linking."},{"src":"https:\/\/ps.w.org\/pillark\/assets\/screenshot-5.png?rev=3673093","caption":"Keyword cannibalization and duplicate anchor texts."}],"raw_content":"<!--section=description-->\n<p><strong>The problem Pillark solves:<\/strong> on a site with more than a handful of pages, nobody knows how the pages are actually connected. WordPress will happily tell you a page exists. It will not tell you that nothing links to it, that the page you want to rank gets no links from the articles written to support it, or that six pages mention a service by name without ever linking to it. That information exists \u2014 it is just spread across every post, one editor screen at a time.<\/p>\n\n<p>Pillark reads all of it in one pass and puts it on a single screen.<\/p>\n\n<p><strong>The overview.<\/strong> One table covers every published page and post: how many pages link in, how many it links out to, external links, internal links that lead nowhere, and when it was last touched. Pages nothing links to are marked as orphans, because those are the pages search engines are least likely to find. You can filter to just those, just the ones with dead links, or just the ones nobody has touched in a year.<\/p>\n\n<p><strong>The clusters.<\/strong> Pick the page a cluster is built around and Pillark shows every supporting page as a card, colour coded by which way the links run: both ways, one way, or not at all. It also finds the pages that mention another page by name without linking to it \u2014 the easiest internal links on a site, and the ones most often missed.<\/p>\n\n<p>Everything runs inside your own WordPress admin. The plugin reads your existing posts and pages, builds an internal link map, and caches it. Nothing is sent anywhere, and nothing is written to your content: Pillark tells you which page to open and what to add, and you write the link.<\/p>\n\n<p>Pillark is built and maintained by <a href=\"https:\/\/lasse-enggaard.dk\">Lasse Enggaard<\/a>, a Danish SEO specialist working with search optimisation and AI search. He is a co-owner of the Danish web agency <a href=\"https:\/\/webro.dk\">Webro<\/a> and has worked with SEO since 2015. Pillark started because he needed a better overview himself. Working on SEO for clients, the same question kept coming up on every site \u2014 which pages are actually linked, and which ones are not \u2014 and answering it meant opening one page at a time and writing the answers down. He built the tool for his own client work first, and it turned out to be worth releasing. You can read more at <a href=\"https:\/\/pillark.org\">pillark.org<\/a>.<\/p>\n\n<h4>Everything it reports<\/h4>\n\n<ul>\n<li><strong>Clusters<\/strong> \u2013 choose your Pillar pages and see each cluster on one screen. Every supporting page is a card showing whether the link runs both ways, one way, or not at all.<\/li>\n<li><strong>Internal link profile<\/strong> \u2013 one table covering every published page and post: internal links in and out split by post type, the anchor text used most often to link in, external links, dead internal links and the date it was last modified.<\/li>\n<li><strong>Orphan detection<\/strong> \u2013 pages that receive no incoming internal links at all, marked in every row and available as a filter.<\/li>\n<li><strong>Dead link detection<\/strong> \u2013 internal links pointing at pages that no longer exist, checked against posts, pages, archives and taxonomies so the count can be trusted.<\/li>\n<li><strong>Linking opportunities<\/strong> \u2013 pages that mention another page by name without linking to it. The words are already written; only the link is missing.<\/li>\n<li><strong>Keyword cannibalization<\/strong> \u2013 posts competing for the same focus keyword.<\/li>\n<li><strong>Duplicate anchors<\/strong> \u2013 identical anchor texts pointing to different URLs.<\/li>\n<li><strong>Manual cluster members<\/strong> \u2013 attach an existing page to a cluster by hand while restructuring, before the links between them exist.<\/li>\n<\/ul>\n\n<h4>Works with Yoast SEO<\/h4>\n\n<p>The keyword cannibalization report uses Yoast SEO's focus keyword data, and the per-Pillar cluster score includes Yoast's SEO title, meta description and focus keyword as one of its signals when Yoast is active. Neither is required \u2014 the internal link analysis, cluster overview and other tools all work without Yoast installed. This is an independent plugin and is not affiliated with, endorsed by, or connected to Yoast.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>pillark<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Open the \"Pillark\" menu item in the admin sidebar \u2014 it opens straight to the Clusters overview.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20yoast%20seo%3F\"><h3>Does this plugin require Yoast SEO?<\/h3><\/dt>\n<dd><p>No. The plugin works on its own. Only the keyword cannibalization report depends on Yoast's focus keyword data; everything else works without Yoast installed.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20modify%20my%20content%20automatically%3F\"><h3>Does the plugin modify my content automatically?<\/h3><\/dt>\n<dd><p>No. The plugin reports and suggests. It does not rewrite your posts or insert internal links on its own \u2014 it tells you which page to open and what to add, and you write the link.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>The analysis runs in the admin area on demand and is cached, so it never runs on your front end. Pillark outputs nothing on the front end at all.<\/p><\/dd>\n<dt id=\"does%20it%20send%20any%20data%20to%20external%20servers%3F\"><h3>Does it send any data to external servers?<\/h3><\/dt>\n<dd><p>No. All analysis happens locally within your WordPress installation.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin (not just deactivating it) removes Pillark's own settings \u2014 the pillar selection and any pages you attached to a cluster by hand.<\/p><\/dd>\n<dt id=\"who%20builds%20pillark%3F\"><h3>Who builds Pillark?<\/h3><\/dt>\n<dd><p>Lasse Enggaard is a Danish SEO specialist. He works with search optimisation and AI search, is a co-owner of the web agency Webro in southern Denmark, and has worked with SEO since 2015. He built Pillark for his own client work because he needed a better overview of how pages were linked, and maintains it directly. Support questions are answered in the support forum on this site.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20translation-ready%3F\"><h3>Is this plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. Pillark uses the <code>pillark<\/code> text domain throughout (including in JavaScript, via <code>wp_set_script_translations()<\/code>), and ships with a complete Danish (da_DK) translation out of the box. English is the default; further languages can be contributed via <a href=\"https:\/\/translate.wordpress.org\/\">translate.wordpress.org<\/a> once the plugin is listed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebuilt the Clusters screen: one card per cluster, showing for each page whether the link runs both ways, one way, or not at all.<\/li>\n<li>New: finds pages that mention another page in the same cluster without linking to it.<\/li>\n<li>New: finds internal links that lead nowhere.<\/li>\n<li>New: pages can be attached to a cluster by hand while restructuring.<\/li>\n<li>All pages, Internal link profile and Maintenance merged into one table.<\/li>\n<li>Faster: the analysis runs once and is cached, instead of per screen.<\/li>\n<li>Removed the CTA button feature.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"See how every page on your site is connected: which pages link to which, which are missing links, and which nothing links to at all.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337939"}],"author":[{"embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lasseenggaard"}],"wp:attachment":[{"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337939"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337939"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337939"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337939"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337939"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ary.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}