Title: Silotree – Internal Links, Orphan Pages &amp; Broken Links
Author: silotree
Published: <strong>November 8, 2026</strong>
Last modified: November 8, 2026

---

Search plugins

![](https://ps.w.org/silotree/assets/banner-772x250.png?rev=3790305)

![](https://ps.w.org/silotree/assets/icon.svg?rev=3790305)

# Silotree – Internal Links, Orphan Pages & Broken Links

 By [silotree](https://profiles.wordpress.org/silotree/)

[Download](https://downloads.wordpress.org/plugin/silotree.0.8.8.zip)

 * [Details](https://wordpress.org/plugins/silotree/#description)
 * [Reviews](https://wordpress.org/plugins/silotree/#reviews)
 *  [Installation](https://wordpress.org/plugins/silotree/#installation)
 * [Development](https://wordpress.org/plugins/silotree/#developers)

 [Support](https://wordpress.org/support/plugin/silotree/)

## Description

**You have good posts that nothing on your site points to. Not because they are 
bad. You just never went back and linked them up.**

Silotree finds those posts. Then it reads everything else you have written and finds
the sentence that already mentions one — the words are sitting there, they are just
not a link yet. You see the sentence, you say yes, and the link goes in. Changed
your mind? One click takes it out.

It all happens on your own server, and it is free.

#### Free, and actually free

No cap, no trial, nothing held back for a paid version:

 * **Your unlinked posts**, with the date and length of each, and the whole list
   as a CSV
 * **Dead ends, broken links, and how many clicks it takes to reach each post** 
   from your front page
 * **Suggestions while you write** — in the editor sidebar and again when you publish,
   both ways, up to three each way
 * **A never-link list**, a Links report, the Classic Editor, Elementor text widgets,
   and undo on every batch
 * **WPML and Polylang**, one language at a time, never a translation
 * **Click counts and link arrows**, both off until you switch them on. The counts
   use no cookies

Category and tag pages get link counts too. One thing worth knowing: the inbound
count only counts links you wrote, not menus or categories. Everything Silotree 
writes is an ordinary link, and it stays if you deactivate the plugin.

#### It will not mess up your posts

A revision is saved before anything is written, and the post is read back afterwards
to check the link landed. Posts are skipped if revisions are switched off, or if
someone has the post open in an editor. Silotree writes into paragraphs, lists, 
quotes and Elementor text widgets, and nowhere else — never a heading, button, existing
link, code, shortcode or card. It refuses, and tells you why, if the text changed
while you were deciding or if the anchor is one you have already used. Elementor
layouts are put back if anything else changed. Undo removes that one batch and leaves
the rest alone, and category and tag text is kept so those can be undone too. At
most six Silotree links go into any one post.

#### When you want it to do the thinking

Everything above runs on its own, forever, with no account. But the plugin can only
match words it can see on your server.

The Silotree service at [silotree.io](https://silotree.io) reads your posts on ours
instead. It matches them by meaning across up to 500 pages, not just where the words
happen to line up. It puts the ones your Search Console says people actually click
at the top. Once a week it emails you the few worth adding.

A free account gets you a score out of 100 and your first 3 suggestions, written
into WordPress for you. You can also apply them from the app, if you switch that
on with your own Application Password. It suggests fixes for broken and redirected
links on every plan.

Nothing is sent anywhere until an administrator presses Connect. Connecting starts
14 days of Solo with no card; after that the site drops to Free and the links stay.
Solo, Studio and Agency come with a 30-day money-back guarantee. Links you add in
WordPress are never limited, whatever plan you are on.

#### Silotree Pro

Adding links one post at a time is fine for a handful. It is a long afternoon when
you have two hundred unlinked posts, or you have just changed a URL that forty posts
point at.

Pro is a second plugin that does those jobs in batches, inside wp-admin:

 * **Link a pile of posts at once.** Tick the ones you want and add their links 
   in one go
 * **Keyword rules.** Link a phrase to a post you choose, wherever it appears, once
   per post. Previewed before anything is written, and it can import your Yoast 
   SEO or Rank Math focus keywords
 * **Change a URL everywhere.** Send every link that goes to one address to another
   instead, in a single pass
 * **Edit existing links in bulk**, and fix broken ones in batches
 * **Links that follow a post** when it moves or goes in the trash

It comes with every paid plan and the 14-day trial. None of its code is in this 
plugin and nothing above needs it. Every batch it writes keeps a revision and undoes
from right here, and if a plan ends the links stay. Keyword rules made before 0.6.0
are kept.

### External services

This plugin connects to the Silotree service at https://silotree.io (or the address
in the `silotree_app_url` option on a self-hosted install). Silotree is operated
by Thomas Kanze, a self-employed individual based in Costa Rica. It is used only
after an administrator connects the site, from the setup screen or **Silotree  Settings**.
Until then the plugin sends nothing anywhere: the scan, the reports, the editor 
sidebar, the publish prompt, the never-link list and the CSV export all run on your
own server. Links in the plugin that open silotree.io (help articles, “Connect free
account”, “See plans”) are ordinary links you choose to follow; they carry a label
saying which screen they came from (`from` and `utm_*` in the address) and nothing
about your site’s content. The “Run the full audit” link shown to people who cannot
connect the site also carries the site’s domain, so the free checker can start on
it.

Once connected:

 * **What the service reads**: Silotree reads the full text, titles, addresses and
   publication dates of your site’s published posts, so it can match them by meaning
   and suggest links. It reads only what your site already publishes; drafts and
   private posts are never sent.
 * **Connecting**: the site address, the address of the settings screen, a one-time
   code and a verifier are exchanged with silotree.io. Silotree answers with the
   site key, once, over HTTPS, and then calls this site’s REST API once to confirm
   the site holds it.
 * **Admin screens** (Silotree  Reports and the posts-list columns): the site’s 
   domain is sent to fetch counts, suggestions and the plan. Answers are cached 
   for a few minutes; the posts list and the editor only read the cache and refresh
   it in the background through WP-Cron, so they never wait on Silotree. When Silotree
   cannot be reached the plugin waits ten minutes before asking again.
 * **Post editor**: the editor sidebar’s own suggestions are worked out on this 
   server and the draft is never sent to Silotree. When the site is connected, the
   Silotree panel asks for that post’s suggestions, sending the site’s domain and
   the post’s ID (`post_id`).
 * **Matching posts to your scan**: post IDs, their public URLs and a hash of each
   post’s content are sent so suggestions can be matched to posts.
 * **Publishing a post**: the post ID, its public URL and its title are sent so 
   Silotree can suggest links to it. The publish prompt also asks, by post ID, for
   any links Silotree has already found for that post.
 * **Related posts block**: the list of related posts is fetched from silotree.io
   at most every six hours (fifteen minutes after a failed try), in the background
   through WP-Cron, after somebody has been in wp-admin.
 * **Suggestions**: silotree.io calls this site’s REST API (`/wp-json/silotree/v1/`)
   to read published data and store suggestions. By default it cannot change posts.
   You apply and undo suggestions in wp-admin.
 * **Optional one-click apply**: if an administrator turns on “Let Silotree apply
   changes from the app” under Silotree  Settings, and pastes an Application Password
   for their own WordPress account into the Silotree app, silotree.io calls this
   site’s REST API to apply links, undo a batch, and save or bin a guide draft. 
   Those calls sign in as that account with the Application Password (HTTP Basic
   authentication). WordPress only accepts an Application Password over HTTPS. The
   calls are refused while the setting is off, and they can only do what that account
   can already do. You create the password under Users  Profile  Application Passwords.
   Silotree stores it encrypted. Revoke it in WordPress at any time, or turn the
   setting off, and remote changes stop.
 * **Link click counts**, only if you turned them on: once a day, the last 8 days
   of daily totals (post ID, the linked post’s ID and address, the day and the total).
   Nothing about readers. **Delete click counts** in Settings asks Silotree to delete
   its copy.

This plugin does not check for, download or install Silotree Pro. If you install
Silotree Pro yourself, it is a separate plugin with its own description of what 
it sends (whether the site’s plan includes Pro, and its own updates from silotree.
io).

After it is issued at connection, the site key is not sent again in either direction:
every request between this site and Silotree is signed with it (HMAC-SHA256, with
a timestamp and a one-time nonce). Pressing **Regenerate key** in Settings replaces
it and disconnects the site until it is connected again. Nothing is loaded from 
silotree.io on the pages your readers see.

Terms of service: https://silotree.io/terms, Privacy policy: https://silotree.io/
privacy

### Privacy

Out of the box, this plugin adds nothing to the pages your readers see and collects
nothing about them.

**Link click counts** are off until an administrator turns them on in **Silotree
Settings  On your pages**. When they are on:

 * On single posts and pages, a small script (under 1 KB, loaded with `defer`) notices
   when a reader clicks a link in the post, and sends three things to this site’s
   own REST API (`/wp-json/silotree/v1/click`) with `navigator.sendBeacon`: the 
   post’s ID, the address of the link, and a short-lived nonce from that page. Links
   in menus, headers, footers, sidebars and forms are left out.
 * The plugin adds one to a daily total for that post and that link, and only when
   the post really contains that link. It stores the day, the post, the post the
   link goes to and the total. Nothing else is stored or sent.
 * No cookies and no browser storage are used, and no IP address, browser details,
   referrer or visitor ID are stored. Two clicks cannot be tied to one person, so
   there is no personal data to export or erase.
 * People who can edit posts are not counted: the script is not loaded for them.
 * Totals are kept for 90 days, then deleted. **Delete click counts** in Settings
   deletes them all at once. Deleting the plugin deletes the table.
 * If the site is connected to Silotree, the last 8 days of totals (post, link, 
   day, total) are sent to silotree.io once a day, so the weekly email and the Results
   screen can show which links readers use. Silotree keeps them 90 days, and **Delete
   click counts** deletes them there too; if Silotree cannot be reached at that 
   moment, the plugin asks again once a day, and sends no new totals until it has.
 * To keep a script from flooding the counts, the plugin also keeps one number for
   the whole site: how many clicks it counted in the current minute. It says nothing
   about who clicked.

**Link icons** are styles only: no script, no request, and nothing is collected.

The plugin suggests wording for your privacy policy under **Settings  Privacy**.

## Screenshots

[⌊The setup screen after activation: the scan runs on your own server and says how
many of your posts are unlinked. The free link list is optional⌉⌊The setup screen
after activation: the scan runs on your own server and says how many of your posts
are unlinked. The free link list is optional⌉[

The setup screen after activation: the scan runs on your own server and says how
many of your posts are unlinked. The free link list is optional

[⌊Silotree → Reports: unlinked posts, dead ends, broken links and click depth, with
the unlinked posts listed first. Free, with no account⌉⌊Silotree → Reports: unlinked
posts, dead ends, broken links and click depth, with the unlinked posts listed first.
Free, with no account⌉[

Silotree  Reports: unlinked posts, dead ends, broken links and click depth, with
the unlinked posts listed first. Free, with no account

[⌊The Silotree sidebar while you write: posts this draft should link to, and older
posts that should link to it, each with the sentence the link would sit in⌉⌊The 
Silotree sidebar while you write: posts this draft should link to, and older posts
that should link to it, each with the sentence the link would sit in⌉[

The Silotree sidebar while you write: posts this draft should link to, and older
posts that should link to it, each with the sentence the link would sit in

[⌊The prompt when you publish: older posts that should link to the new one and posts
it should link to, each added in one click and undone just as easily⌉⌊The prompt
when you publish: older posts that should link to the new one and posts it should
link to, each added in one click and undone just as easily⌉[

The prompt when you publish: older posts that should link to the new one and posts
it should link to, each added in one click and undone just as easily

[⌊The never-link list: posts, post types, categories and words Silotree will never
link from or to⌉⌊The never-link list: posts, post types, categories and words Silotree
will never link from or to⌉[

The never-link list: posts, post types, categories and words Silotree will never
link from or to

[⌊Broken internal links, each with the post it is in and the words it sits on⌉⌊Broken
internal links, each with the post it is in and the words it sits on⌉[

Broken internal links, each with the post it is in and the words it sits on

[⌊Every link in and out of one post, from the "Links" action in your posts list⌉⌊
Every link in and out of one post, from the "Links" action in your posts list⌉[

Every link in and out of one post, from the “Links” action in your posts list

[⌊The same suggestions in a box in the Classic Editor⌉⌊The same suggestions in a
box in the Classic Editor⌉[

The same suggestions in a box in the Classic Editor

## Blocks

This plugin provides 1 block.

 *   Silotree related posts

## Installation

 1. In WordPress, go to **Plugins  Add New**, search for **Silotree**, then press **
    Install Now** and **Activate**.
 2. Silotree opens a short setup screen: it reads your posts on your own server and
    shows what it found. Nothing is sent anywhere.
 3. Open **Silotree  Reports** (just above Appearance in the admin menu) any time. 
    The scan stays current as you save posts.
 4. Optional: for a free link list from the Silotree service, press **Get my free link
    list** on the setup screen or in **Silotree  Settings**. You sign in to Silotree,
    confirm, and land back with the site connected. There is no key to copy; if your
    site cannot open Silotree in a browser, Settings also has a key you can paste instead.

To install by hand, download the zip from WordPress.org (or https://silotree.io/
downloads/silotree.zip) and upload it under **Plugins  Add New  Upload Plugin**.
Step-by-step help, with screenshots: https://silotree.io/docs/install-and-update-
the-plugin

## FAQ

### Where is the documentation?

The Silotree help centre has step-by-step articles for everything below, with screenshots:
https://silotree.io/docs

### Does “unlinked” mean nobody can reach the post?

No. Your menus, category and tag archives and your sitemap may all still reach it,
and so may a link from another site. What Silotree counts is contextual links: one
post linking to another from inside its text. Those are the links readers actually
follow mid-article, and the ones that tell search engines which of your posts belong
together, so a post with none of them is the hardest to find even when it is technically
reachable.

### Is it really free? What is the catch?

Everything in this plugin is free and has no limits: the reports, the editor sidebar,
the publish prompt, the never-link list, undo and the CSV. Nothing in it is locked
or waiting for a payment. Silotree earns its money from paid plans of the optional
Silotree service, which does work on our servers (meaning-based matching across 
every post, Search Console ranking, suggestions you apply in WordPress and a weekly
email) and includes Silotree Pro, a separate add-on plugin for keyword rules, bulk
linking, batch broken-link fixes and links that follow moved posts. You never need
either to use this plugin.

### Does it work without an account?

Yes, completely. Nothing is sent anywhere unless an administrator connects the site.
How the editor sidebar works: https://silotree.io/docs/editor-sidebar

### Is there a limit on how many links I can add?

Not in WordPress. Add as many as you like from the editor and the publish prompt.
Silotree adds at most six of its own links to any one post, so no post becomes a
wall of links. The free Silotree account’s allowance counts suggestions you apply
in WordPress and suggestions the app has sent for you to apply.

### Does it only work for blogs?

No. It works on any WordPress site with posts or pages that should point at each
other, blogs, magazines, documentation, shop guides, local business sites. It only
ever links your own pages to each other.

### Will it slow my site down?

No. By default nothing runs when a reader loads a page, and there is no front-end
script. Two optional settings in **Silotree  Settings  On your pages** add a little:
link click counts add one deferred script under 1 KB to single posts (none for you
or your editors), and link icons add under 1 KB of inline styles. Neither loads 
anything from another site. The scan runs in the background through WP-Cron, in 
batches, and stops on its own. While a Silotree screen is open, that screen moves
it along too, so it finishes on hosts where WP-Cron does not run.

### What happens if I deactivate it?

The links stay. They are ordinary WordPress links in your own words. Deleting the
plugin removes its tables, its settings and its site key. By default the links in
your posts are left alone; **Silotree  Settings** lets you choose instead to keep
the links and remove Silotree’s marks from them, or to take every Silotree link 
out and leave the words. Step by step: https://silotree.io/docs/uninstall-the-plugin

### Does it conflict with Rank Math or Yoast?

No, they do different jobs. Keep your SEO plugin for titles, schema and sitemaps.
Silotree Pro can import their focus keywords as keyword rules you preview first:
https://silotree.io/docs/keyword-rules

### Which editors are supported?

The block editor, the classic editor, and the page builders below. In the block 
editor, links are written into paragraphs, lists, quotes and table cells, including
blocks nested in groups, columns and accordions; headings, captions and blocks from
other plugins are left alone. Content is only ever changed by wrapping a phrase 
that is already in your post, and anything it cannot place with certainty is refused
with a reason rather than edited. The full list of what it will and won’t edit: 
https://silotree.io/docs/what-the-plugin-edits

### Does it work with Elementor and other page builders?

Yes. Silotree writes links into the text modules of these builders, in the data 
each builder builds the page from:

 * Elementor: Text Editor widgets.
 * Divi 4 and Divi 5: Text modules.
 * Beaver Builder: Text Editor modules, in the published layout and its draft.
 * Bricks: Rich Text and Basic Text elements.
 * Thrive Architect: Text elements, and the copy shown on archive pages.
 * Advanced Custom Fields: WYSIWYG fields, for words that are not in the post’s 
   body.

It never edits headings, buttons, blurbs, code or any other module: if the words
are in one of those, it says which and leaves the page alone. It also leaves alone
a module that is a global or synced copy, one whose text is dynamic or differs by
screen size, and text in a query loop. Each change keeps a revision and a copy of
the page from before, is read back after saving (if the link is missing, or anything
else in the page changed, the page is put back), and can be undone like any other
batch. The builder’s caches are cleared afterwards.

Posts built with Oxygen, WPBakery or Avada, Thrive landing pages, and Beaver Builder
pages with unpublished changes are read and counted, but not written to, and the
refusal says why. Oxygen signs its content and hides any text whose signature no
longer matches, so Silotree does not write to it.

### What happens to links when I change a post’s permalink?

WordPress redirects a post’s old slug, so links to it keep working. Links to the
old address that no longer resolve show up under **Silotree  Link fixes**, where
you can fix each one in the editor. Silotree Pro can point them at the new address
for you, in the background, as one batch you can undo.

### I had keyword rules. Where did they go?

Keyword rules moved to Silotree Pro in version 0.6.0, and this plugin no longer 
runs them. Your saved rules are still in your site’s database, unchanged, and you
can download them as a JSON file at any time from **Silotree  Settings  Saved keyword
rules**, free, with no account. Silotree Pro, part of the paid plans, runs saved
rules again if you install it. Links they already wrote stay in your posts, and 
any batch can still be undone from **Silotree  Undo history**, with or without Pro.
The never-link list did not move: it is under **Silotree  Never link**.

### It says it cannot reach Silotree. What do I do?

Press **Check connection** on **Silotree  Settings**. Most often a security plugin
or firewall is blocking `/wp-json/silotree/`, or the host blocks outgoing requests.
Every message and its fix: https://silotree.io/docs/plugin-cant-reach-silotree

### A link was not added. Why?

Silotree refuses a link rather than guess, and always says why: a page builder it
does not write to, words in a builder’s heading or button rather than its text module,
words that changed, someone editing the post, or revisions turned off. Every reason
and what to do: https://silotree.io/docs/link-didnt-land

### Does it work on multisite?

Yes. On a multisite, WordPress filters the HTML that anyone but a super admin saves,
which would strip embeds from a post. Silotree checks that the only change it is
making is its own link and saves exactly that, so your embeds are left alone.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Silotree – Internal Links, Orphan Pages & Broken Links” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ silotree ](https://profiles.wordpress.org/silotree/)

[Translate “Silotree – Internal Links, Orphan Pages & Broken Links” into your language.](https://translate.wordpress.org/projects/wp-plugins/silotree)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/silotree/), check out
the [SVN repository](https://plugins.svn.wordpress.org/silotree/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/silotree/) by [RSS](https://plugins.trac.wordpress.org/log/silotree/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.8.8

 * Database queries bind every dynamic value with placeholders: post types, ignored
   ids, language codes, LIKE terms, and lists of ids.

#### 0.8.7

 * The Silotree service reads published posts and stores suggestions. It does not
   sign in as anyone. You apply and undo suggestions in wp-admin (Silotree  Suggestions
   and Silotree  Undo history).
 * Optional: turn on “Let Silotree apply changes from the app” and paste an Application
   Password for your own account into Silotree. The app can then apply, undo and
   save guide drafts as that account, and only with what that account can already
   do. Off by default. The password is sent only on those calls, over HTTPS, and
   WordPress checks it.
 * Notices that follow a posts-list action stay on that screen. Output in wp-admin
   is escaped. Forms and REST writes check a nonce and a capability.

#### 0.8.6

 * On a connected site, Reports lists your unlinked posts again, with or without
   Silotree Pro, counted on your own server as before. The Silotree app’s own lists
   sit beside it.
 * Connecting a site says that it starts 14 days of Solo, Silotree Pro included,
   with no card. Once the trial is over, the free plan’s card says so, and that 
   links written during it stay.
 * Wording: “free link plan” is now “free link list”, so it is not mistaken for 
   a pricing plan. The editor’s note on a connected free site says the free audit
   also finds matches by meaning, and opens Silotree rather than the plans. The 
   readme says which broken-link fixes are free in the app and which are Silotree
   Pro in wp-admin, how many pages a free scan reads, and lists every Silotree Pro
   feature.

#### 0.8.5

 * Ask an AI assistant about your internal links. On WordPress 6.9 and later, the
   plugin offers five read-only abilities: the site’s summary, unlinked posts, buried
   posts, broken links, and one post’s links in and out. With the WordPress MCP 
   Adapter installed, an assistant connected to your site can use them. They read
   the plugin’s own scan, send nothing anywhere, need no Silotree account, and are
   open only to people who can edit posts.

#### 0.8.4

 * The Silotree related posts block is in the block inserter: search for it, and
   the editor shows the list readers will see for that post, or says the post has
   no list yet. Before, it could only be pasted in as block markup.
 * The never-link list is sent to Silotree a moment after you save it, and again
   every few hours, so the app stops suggesting links from or to those posts, categories
   and words instead of suggesting links the plugin then refuses.
 * The posts list’s Suggestions column shows how many links wait to be added to 
   each post. It always showed a dash.
 * A post’s links report counts links in from published posts only, the same posts
   it lists, so the total and the list agree.
 * On a connected site with Silotree Pro, Reports lists the unlinked posts again,
   so Pro’s “Add suggested links…” can be used from there.
 * When Silotree no longer recognises the site, the plugin passes on why, and whether
   it asked under the address it was connected under, so Silotree Pro can tell a
   deleted or disconnected site from a staging copy or a passing problem.
 * Never-link words are lower-cased in every script (Ä, É, Cyrillic), as the app
   compares them.
 * Wording: messages now name the menus as they are, Silotree  Settings and Silotree
   Undo history, and Reports links to its help article.

#### 0.8.3

 * Page builders: after a link is written into a builder page, or undone, the page’s
   cache is cleared (WordPress’s own, and WP Rocket, W3 Total Cache, LiteSpeed Cache
   and WP Super Cache when present), and an Elementor write rebuilds only that page’s
   styles, not the whole site’s. Developers can purge more with the new `silotree_builder_written`
   action. Divi links are checked on the rendered page like any post; for other 
   builders the editor says the link is saved in the builder rather than shown on
   the page. Text inside a linked Bricks box is no longer written, so a link is 
   never put inside another link. Links in a builder page’s buttons and headings
   now count as links in, so those posts are no longer reported as unlinked. A link
   that lands in the builder but not in the plain fallback copy is kept rather than
   undone.
 * Link click counts: links are matched on sites with plain permalinks (`?p=123`).
   Counting stops for the rest of a minute past 600 clicks site-wide, and at 5,000
   clicks a day for one link. Old counts are deleted by a daily task, so they go
   even on days without clicks. If Silotree cannot be reached when you press Delete
   click counts, its copy is deleted on a later day, and no new counts are sent 
   before that. Settings and Reports now say that counts are sent to Silotree once
   a day when the site is connected. The two On your pages switches no longer cost
   a database query on every page.
 * Link fixes: removing a link to one part of a page (`/guide/#pricing`), or pointing
   it somewhere else, no longer touches plain links to the page itself (`/guide/`).
 * Undo: the copies of builder pages kept for undo are deleted after 90 days (undo
   still works by the links’ own marks), and deleting the plugin removes every builder’s
   copies.

#### 0.8.2

 * The Links screen for each post, and Link fixes, have extension points an add-
   on can use for batch actions. Nothing changes on either screen without one.
 * Target keywords: each post can say which words it is about, in the block editor’s
   Silotree sidebar or the Classic Editor’s box, saved with the post. Until you 
   set them, your SEO plugin’s focus keywords (Yoast, Rank Math or All in One SEO)
   are used. Once the site is connected, Search Console queries for the post can
   be added in one click. Suggestions on a target keyword are marked “On keyword”.
 * Category and tag pages that have a written introduction can now be linked to 
   from your posts.
 * Links can be written into category and tag descriptions, with the same checks
   as posts, and each batch can be undone in one click.
 * Links to category and tag pages are no longer reported as broken.
 * Reports lists your category and tag pages: how many posts each has, how many 
   links your posts send to it, and whether it has an introduction.

#### 0.8.1

 * For add-ons such as Silotree Pro’s URL changer: the writer can point existing
   links in your writing at addresses the add-on works out, through the same revision,
   read-back and one-click undo as every other batch. Nothing changes on a site 
   without such an add-on.

#### 0.8.0

 * Page builders: links are now written into Divi 4 and Divi 5 Text modules, Beaver
   Builder Text Editor modules, Bricks Rich Text and Basic Text elements, and Thrive
   Architect Text elements, as well as Elementor’s Text Editor widgets. Each goes
   into the data the builder shows the page from, is read back after saving and 
   put back if anything else changed, keeps a revision and a copy of the page from
   before, and undoes in one click.
 * Advanced Custom Fields: words that are in a WYSIWYG field rather than the post’s
   body are linked in the field. Text and textarea fields are read, not written,
   and the refusal names the field.
 * Words in a builder’s heading, button or other module are refused with the module
   named. Global modules, dynamic text, text that differs by screen size and text
   in a query loop are left alone.
 * Beaver Builder pages with unpublished changes, Thrive landing pages, and Oxygen,
   WPBakery and Avada pages are read but not written to, and the refusal says why.
 * Block editor: table cells, and paragraphs inside accordions, can take links.
 * On a page-builder page opened in the WordPress editor, Silotree’s panel says 
   which builder it is in one line. Insert link writes into the builder’s text on
   the saved page; for Divi and builders Silotree only reads, the panel lists the
   links to add in the builder.
 * The scan reads each builder page’s own text, and ACF WYSIWYG fields, so their
   links are counted.
 * For add-ons such as Silotree Pro: the publish prompt can show rows an add-on 
   supplies, and a link can be kept out of words another rule has a better claim
   to. Nothing changes on a site without an add-on.
 * New, optional and off by default: link click counts. See which links in your 
   posts readers click, on Reports (“Links readers click”) and on each post’s Links
   screen (“Clicked 14 times in 30 days”). Counts per post, link and day only: no
   cookies, no IP addresses, nothing about who clicked, and your editors are never
   counted. One deferred script under 1 KB on single posts. Kept 90 days, and deleted
   in one click. Connected sites see the written links readers use in the weekly
   email and on Results.
 * New, optional and off by default: link icons. A small arrow after links to other
   sites and links that open in a new tab, with words for screen readers (“opens
   in a new tab”). CSS only, in your theme’s link colour.
 * Both are in **Silotree  Settings  On your pages**. The readme has a new _Privacy_
   section.

#### 0.7.0

 * Main guides: when Silotree finds a topic with no main guide, it can save the 
   guide’s outline here as a draft. One heading per post in the topic, what each
   post covers, and a link to each. Nothing existing is edited, and an untouched
   draft can be taken back from Silotree.

#### 0.6.1

 * Saved keyword rules can be downloaded free from Silotree  Settings for as long
   as any are saved, and the note that they moved to Silotree Pro now shows once.
 * On a free site, the editor box shows one plain line about matches by meaning,
   which can be dismissed, instead of a preview of locked results.
 * The posts list and the editor never wait on Silotree while they draw: they read
   the last answer and refresh it in the background. The posts list counts links
   for every row in one query.
 * Uninstall works on multisite, site by site, and on large sites: it rewrites only
   the posts Silotree edited, in small batches, without creating revisions.
 * Exporting the link CSV and the Undo screen need the Editor role, as other site-
   wide actions do.
 * Requests are always signed; the old way of sending the key with each request,
   from before 0.2, is gone.
 * The readme’s External services section says in full what is sent once the site
   is connected.

#### 0.6.0

 * Keyword rules, and links that follow a post when its permalink changes, are now
   part of Silotree Pro, a separate add-on included in every paid Silotree plan.
   Rules you already made stay in your database, unchanged, and can be downloaded
   as a file from Silotree  Settings; a one-time note on Silotree’s screens says
   so. Links they wrote stay, and every batch still undoes from this plugin.
 * The never-link list has its own screen, Silotree  Never link, with the same settings
   as before.
 * The publish prompt adds each link with its own button, and says which ones landed
   and why any did not.
 * Undo history names batches approved in the Silotree app correctly.
 * Once a free site is connected, the Reports screen says how many more links Silotree
   found by meaning, with a link to see them in Silotree. It is a count from the
   connection the plugin already has, nothing extra is sent, and it can be dismissed.

#### 0.5.0

 * Click depth counts every link a reader can click: your menus, the category and
   tag pages they lead to, the home page’s list of posts, and the links in your 
   writing. It used to follow the writing alone, which put posts that are two clicks
   from the menu ten clicks deep. The unlinked and dead-end reports still count 
   only links in your writing.
 * Average click depth is left off the overview when there is no home page to count
   from, rather than shown as a dash.
 * Elementor: links are now written into Elementor pages, in their Text Editor widgets,
   instead of being refused. They go into the data Elementor builds the page from,
   and into the post’s plain copy where the same words are there. After saving, 
   the page is read back and checked: the link is there once, the page data is valid,
   and nothing else changed; otherwise it is put back as it was. Elementor’s cache
   is cleared, a revision and a copy of the page are kept, and Undo takes the links
   back out of both.
 * Elementor: words in a heading, button, icon box or other widget are refused with
   the widget named, so you know where to add the link by hand.
 * Other page builders (Divi, Beaver Builder, Bricks, Oxygen, WPBakery, Avada, Thrive
   Architect) are still read but never written to.
 * New: when you change a published post’s permalink, links to the old address in
   your other posts are pointed at the new one, in the background and as one batch
   you can undo. On by default; Settings turns it off.
 * The scan reads an Elementor page’s own text, so its links are counted. Your posts
   are scanned again once after updating.
 * Deleting the plugin with “remove links” or “remove marks” now covers Elementor
   pages too, and clears the copies kept for undo.

#### 0.4.1

 * Fix: links to WordPress itself (the dashboard, the login page, the REST API, 
   XML-RPC and files under wp-content) are no longer reported as broken links. WordPress’s
   own Sample Page links to /wp-admin/, so every new site showed one broken link
   that was not.
 * While a scan runs again, Reports and the setup screen keep showing the last scan’s
   figures, marked “last scan”, with a “Rescanning… 12 of 40 posts” bar. They used
   to show zeros until it finished. Only the very first scan shows progress alone.
 * The scan carries on while a Silotree screen is open, even on hosts where WP-Cron
   does not run. It used to stop at “0 of 20” there. Cron and the open page never
   read the same posts at once.
 * Counts stay current when Silotree writes links from the app, and when a batch
   is undone: the posts involved are counted again straight away, with no need to
   press “Scan again”.
 * Click depth now works when your home page shows your latest posts (Settings  
   Reading), the most common setup. A post on the first page of the list is one 
   click deep, a post on page three is three, and links in your writing are followed
   from there. Sites with a static front page are measured from it, as before.
 * The setup screen says “Connect this site to Silotree” when you arrive from the
   Silotree app’s onboarding, so the button matches the instructions.
 * Fix: telling Silotree that a post was published no longer gets lost on a busy
   server. The plugin now waits up to three seconds for the answer and tries once
   more a minute later if it did not get through.

#### 0.4.0

 * Everything in WordPress is now free with no limits. The 10-link cap on links 
   written from the editor, the publish prompt and keyword rules is gone; only links
   written from the Silotree app count towards the free account’s 10 (now 3).
 * A setup screen after activation: the scan runs while you watch and shows its 
   headline result. Connecting an account is optional and can be skipped.
 * Silotree has its own menu, with Reports, Broken links, Keyword rules, Undo and
   Settings in one place. The old Settings  Silotree address still works.
 * Redesigned screens in Silotree’s own typefaces (shipped with the plugin, nothing
   loaded from elsewhere), with designed empty, loading, error and success states.
 * The connect notice no longer appears on other admin screens. Every suggestion
   to connect or upgrade lives on Silotree’s own screens and can be hidden.
 * Fix: the publish prompt no longer opens when an already published post is opened
   in WordPress 7.
 * Broken links show a “Fix in editor” action for each link.

#### 0.3.0

 * A live sidebar in the block editor, a Silotree box in the Classic Editor, keyword
   rules with Yoast SEO and Rank Math import, a never-link list, and a links-in-
   and-out report for every post.
 * Broken links can be fixed from Silotree: a redirected link is pointed at its 
   final address, and a dead one is unlinked with its words kept. Both can be undone.
 * Admin pages stay fast when Silotree cannot be reached: the plugin waits before
   asking again.
 * Links are only written into paragraph-like blocks, so third-party blocks are 
   never left “invalid”.
 * The local link graph updates when a post is saved, trashed or deleted, and large
   sites are sent in batches past 2,000 posts.
 * A redesigned Settings  Silotree screen, with clear states for every step.

#### 0.2.0

 * One-click connect from Settings  Silotree, with the key entered by hand as a 
   fallback, and a button to make a new key.
 * Requests between the site and Silotree are signed and cannot be replayed; the
   key itself never travels.
 * Nothing is sent to Silotree until the site is connected.
 * Undo removes exactly the links a batch added, and keeps everything written since.
 * Several links to one post in one batch now all land; a changed paragraph is refused
   instead of the whole post.
 * Never links inside headings, buttons, captions, navigation, shortcodes or recipe
   cards.
 * Backslashes in posts are preserved, nested blocks are edited without duplicating
   markup, and embeds survive on multisite.
 * A post is not edited on a site with revisions turned off, or while somebody has
   it open.
 * The related-posts table works on MySQL 8.

#### 0.1.0

 * First release: local scan, unlinked-post and dead-end reports, click depth, broken
   links, anchor grouping, CSV export, editor panel, publish prompt, and cloud apply
   with per-batch undo.

## Meta

 *  Version **0.8.8**
 *  Last updated **2 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [broken links](https://wordpress.org/plugins/tags/broken-links/)[internal linking](https://wordpress.org/plugins/tags/internal-linking/)
   [internal links](https://wordpress.org/plugins/tags/internal-links/)[orphan pages](https://wordpress.org/plugins/tags/orphan-pages/)
   [seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/silotree/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/silotree/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/silotree/reviews/)

## Contributors

 *   [ silotree ](https://profiles.wordpress.org/silotree/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/silotree/)