---
title: "Link Checker plugin"
description: "Validate links, as you type."
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/linkchecker/"
md_url: "https://www.tiny.cloud/docs/tinymce/latest/linkchecker/index.md"
version: "latest"
last_updated: "2026-06-15T05:48:02Z"
tokens: 984
---
# Link Checker plugin

> **Note:** This plugin is only available for [paid TinyMCE subscriptions](/pricing/).
The `linkchecker` plugin validates URLs, as you type. URLs considered invalid will be highlighted with red and will have a dedicated context menu with options to either edit the link, try and open it in a separate tab, remove the link, or ignore it.

The Link Checker plugin relies on HTTP response status codes to determine if a link is valid. Web pages that return incorrect or invalid HTTP responses are highlighted as invalid or "broken". For information on valid HTTP response status codes, see: [MDN Web Docs - HTTP response status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status).

## Interactive example

**Example**

```js
tinymce.init({
  selector: 'textarea#linkchecker',
  plugins: 'linkchecker ' + /* Enables the link checker plugin */
    'autolink ' + /* Converts URL-like text to hyperlinks as you type */
    'link ' + /* Allows users to add/remove hyperlinks using a dialog */
    'code',
  toolbar: 'link code',
  content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }'
});
```

## Cloud Instructions

If you are using [Tiny Cloud](../editor-and-features/), add `"linkchecker"` to your plugins list, and the service will be automatically configured.

### Basic setup using Tiny Cloud

```js
tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  plugins: 'linkchecker'
});
```

> **Note:** For information on bundling this plugin with module bundlers, see [Bundling TinyMCE - Overview](../bundling-guide/).

## Self-hosted Instructions

Customers using a Self-hosted environment will need to provide a URL to their deployment of the link checking service via the `linkchecker_service_url` parameter

### Basic self-hosted setup

```js
tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  plugins: 'linkchecker',
  linkchecker_service_url: 'http://example.com/linkchecker'
});
```

## Options

The following configuration options affect the behavior of the Link Checker plugin.

### `linkchecker_content_css`

After a link is checked for validity, a result of the validation is added to it via `data-mce-linkchecker-status` attribute. There are three possible outcomes of the validation: `valid`, `invalid` and `unknown`. Link Checker visually reflects `invalid` outcome by injecting the following CSS styles into the editor:

```css
a[data-mce-linkchecker-status="invalid"] {
    outline-color: rgba(231, 76, 60, 0.25);
    background-color: rgba(231, 76, 60, 0.25)
}

a[data-mce-linkchecker-focus="true"] {
    outline: 1px solid rgba(231, 76, 60, 0.75)
}
```
`data-mce-linkchecker-focus` attribute is set to *true* every time a dedicated context menu is shown on a link. This only happens for `invalid` links.

It is possible to replace or extend those styles, by providing a URL to custom stylesheet via `linkchecker_content_css` option.

**Type:** `String`

#### Example: using `linkchecker_content_css`

```js
tinymce.init({
  selector: 'textarea', // change this value according to your HTML
  plugins: 'linkchecker',
  linkchecker_content_css: 'http://example.com/linkchecker_content.css'
});
```

### `linkchecker_preprocess`

The `linkchecker_preprocess` function is used for adjusting links before performing a link check.

**Type:** `Function`

#### Example: using `linkchecker_preprocess`

```js
tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  plugins: 'linkchecker',
  linkchecker_preprocess: (data) => {
    /* This example will encode or double encode the url */
    const newUrl = encodeURIComponent(data.url);
    return { url: newUrl };
  }
});
```

### `linkchecker_service_url`

A URL of the server-side link validation service. This is a required option, without it, the plugin will fail to operate and will throw a corresponding warning on the screen.

**Type:** `String`

#### Example: using `linkchecker_service_url`

```js
tinymce.init({
  selector: 'textarea', // change this value according to your HTML
  plugins: 'linkchecker',
  linkchecker_service_url: 'http://example.com/linkchecker'
});
```
