{"id":358728,"date":"2026-08-30T20:09:18","date_gmt":"2026-08-30T20:09:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/acs-internal-links\/"},"modified":"2026-08-30T20:08:53","modified_gmt":"2026-08-30T20:08:53","slug":"acs-internal-links","status":"publish","type":"plugin","link":"https:\/\/ory.wordpress.org\/plugins\/acs-internal-links\/","author":18367462,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"ACS Internal Links","header_author":"ACS","header_description":"Visualize your internal link structure as an interactive map in the WordPress admin. Find orphaned posts and improve your site's SEO.","assets_banners_color":"414e5d","last_updated":"2026-08-30 20:08:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/acs-developer.com\/acs-internal-links\/","header_author_uri":"https:\/\/acs-developer.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"hanchan","date":"2026-08-30 20:08:53","revision":3673092}},"upgrade_notice":{"1.0.2":"<p>English readme and removal of an unnecessary translation-loading call. No functional changes.<\/p>","1.0.1":"<p>Plugin URI \/ author info update and WordPress 7.1 compatibility check only. No functional changes.<\/p>","1.0.0":"<p>Initial release<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3673106,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3673106,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3673106,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3673106,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3673106,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3673106,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3673106,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3673106,"resolution":"4","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Visual link map \u2014 an interactive network graph powered by D3.js","2":"Orphaned posts list \u2014 posts with no inbound or no outbound links","3":"Post edit screen \u2014 the internal links meta box in the sidebar","4":"Dashboard widget \u2014 an overview of the internal link report"}},"plugin_section":[262246],"plugin_tags":[6681,273241,186,237434,18208],"plugin_category":[55],"plugin_contributors":[271046],"plugin_business_model":[],"class_list":["post-358728","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-internal-links","plugin_tags-link-map","plugin_tags-seo","plugin_tags-site-structure","plugin_tags-visualization","plugin_category-seo-and-marketing","plugin_contributors-hanchan","plugin_committers-hanchan"],"banners":{"banner":"https:\/\/ps.w.org\/acs-internal-links\/assets\/banner-772x250.png?rev=3673106","banner_2x":"https:\/\/ps.w.org\/acs-internal-links\/assets\/banner-1544x500.png?rev=3673106","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/acs-internal-links\/assets\/icon-128x128.png?rev=3673106","icon_2x":"https:\/\/ps.w.org\/acs-internal-links\/assets\/icon-256x256.png?rev=3673106","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/acs-internal-links\/assets\/screenshot-1.png?rev=3673106","caption":"Visual link map \u2014 an interactive network graph powered by D3.js"},{"src":"https:\/\/ps.w.org\/acs-internal-links\/assets\/screenshot-2.png?rev=3673106","caption":"Orphaned posts list \u2014 posts with no inbound or no outbound links"},{"src":"https:\/\/ps.w.org\/acs-internal-links\/assets\/screenshot-3.png?rev=3673106","caption":"Post edit screen \u2014 the internal links meta box in the sidebar"},{"src":"https:\/\/ps.w.org\/acs-internal-links\/assets\/screenshot-4.png?rev=3673106","caption":"Dashboard widget \u2014 an overview of the internal link report"}],"raw_content":"<!--section=description-->\n<p><strong>ACS Internal Links<\/strong> lets you visually understand the internal link structure of your WordPress site, right from the admin dashboard.<\/p>\n\n<h3>Main Features<\/h3>\n\n<p><strong>Visual Link Map<\/strong>\n* Renders a network graph with D3.js, where posts are nodes and internal links are edges\n* Node size is proportional to the number of inbound links; nodes are colored by category\n* Supports drag-and-drop repositioning and zoom in\/out\n* Click a node to jump directly to the post edit screen\n* Filter by category and post status\n* Orphaned posts (no inbound links) are highlighted with a red dashed outline<\/p>\n\n<p><strong>Orphaned Post Detection<\/strong>\n* Lists posts that are not linked from anywhere\n* Lists posts that do not link to anything\n* Sortable by category and publish date<\/p>\n\n<p><strong>Link Count Columns in the Post List<\/strong>\n* Adds \"Outbound Links\" and \"Inbound Links\" columns to the post list\n* Sortable via the column headers<\/p>\n\n<p><strong>Post Editor Sidebar<\/strong>\n* Shows an \"Internal Links\" meta box in the sidebar of the post edit screen\n* Lists links from this post and links to this post<\/p>\n\n<p><strong>Dashboard Widget<\/strong>\n* Shows a summary including total posts, total internal links, and orphaned post count\n* Shows the top 3 most linked posts<\/p>\n\n<h3>Zero Front-End Impact<\/h3>\n\n<p>All features run only in the admin area. The plugin has no impact on your site's front-end page speed.<\/p>\n\n<h3>Who Is This For?<\/h3>\n\n<ul>\n<li>Bloggers who want to improve SEO through internal linking<\/li>\n<li>Media site operators managing a large number of posts<\/li>\n<li>WordPress users who want a visual overview of their site structure<\/li>\n<\/ul>\n\n<h3>Third Party Libraries<\/h3>\n\n<p>This plugin bundles the following third-party library.<\/p>\n\n<ul>\n<li>D3.js v7 \u2014 https:\/\/d3js.org\/\n\n<ul>\n<li>License: ISC License<\/li>\n<li>Purpose: rendering the visual link map<\/li>\n<li>Full license text: https:\/\/github.com\/d3\/d3\/blob\/main\/LICENSE<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Install it from WordPress admin &gt; Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Activate the plugin<\/li>\n<li>An \"Internal Links\" menu appears in the admin<\/li>\n<li>Open the \"Internal Link Map\" page and click the \"Rescan\" button to run the initial scan<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20long%20does%20a%20scan%20take%3F\"><h3>How long does a scan take?<\/h3><\/dt>\n<dd><p>It depends on the number of posts. A site with up to 100 posts takes a few seconds; around 1,000 posts takes about 1-2 minutes. Scans run in batches of 50 posts, so they do not block other WordPress operations.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20front-end%20pages%3F\"><h3>Will it slow down my front-end pages?<\/h3><\/dt>\n<dd><p>No. This plugin is admin-only. It outputs no CSS or JavaScript on the front end.<\/p><\/dd>\n<dt id=\"is%20a%20post%20rescanned%20automatically%20when%20i%20update%20it%3F\"><h3>Is a post rescanned automatically when I update it?<\/h3><\/dt>\n<dd><p>Yes. Every time a post is saved, its link data is updated automatically.<\/p><\/dd>\n<dt id=\"does%20it%20support%20custom%20post%20types%3F\"><h3>Does it support custom post types?<\/h3><\/dt>\n<dd><p>Yes. You can choose which post types to scan on the settings page.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20data%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens to the data when I delete the plugin?<\/h3><\/dt>\n<dd><p>If \"Delete data on uninstall\" is enabled on the settings page (the default), the custom tables and settings are all removed. Turn it off to keep the data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Rewrote the readme and plugin description in English<\/li>\n<li>Removed the load_plugin_textdomain() call (not needed for plugins hosted on WordPress.org since WordPress 4.6)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated the plugin URI and author info to the ACS Developer site<\/li>\n<li>Confirmed compatibility with WordPress 7.1 (updated Tested up to)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Visual link map (D3.js force-directed graph)<\/li>\n<li>Orphaned post detection (no inbound \/ no outbound links)<\/li>\n<li>Link count columns in the post list (outbound \/ inbound, sortable)<\/li>\n<li>Internal links sidebar in the post edit screen<\/li>\n<li>Dashboard widget (internal link report)<\/li>\n<li>Full-site batch scan with a progress bar<\/li>\n<li>Category and status filters<\/li>\n<li>REST API endpoints<\/li>\n<\/ul>","raw_excerpt":"Visualize your internal link structure as an interactive map in the WordPress admin. Find orphaned posts and improve your site&#039;s SEO.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358728","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358728"}],"author":[{"embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hanchan"}],"wp:attachment":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358728"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358728"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358728"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358728"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358728"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}