CKEditor CDN

Speed up your website by loading CKEditor from CDN:

CKEditor 5

Get Started with CKEditor 5 Builder 🚀

With CKEditor 5’s interactive builder, select:

You’ll get ready-to-use code snippets, tailored to your needs.

Quick Example

Use a local HTTP server to load the full example below:

<!DOCTYPE html>
<html lang="en">
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CKEditor 5 - Quick start CDN</title>
		<link rel="stylesheet" href="">
            .main-container {
                width: 795px;
                margin-left: auto;
                margin-right: auto;
        <div class="main-container">
            <div id="editor">
                <p>Hello from CKEditor 5!</p>
        <script type="importmap">
                "imports": {
                    "ckeditor5": "",
                    "ckeditor5/": ""
        <script type="module">
            import {
            } from 'ckeditor5';

                .create( document.querySelector( '#editor' ), {
                    plugins: [ Essentials, Paragraph, Bold, Italic, Font ],
                    toolbar: [
						'undo', 'redo', '|', 'bold', 'italic', '|',
						'fontSize', 'fontFamily', 'fontColor', 'fontBackgroundColor'
                } )
                .then( editor => {
                    window.editor = editor;
                } )
                .catch( error => {
                    console.error( error );
                } );
        <!-- A friendly reminder to run on a server, remove this during the integration. -->
		        window.onload = function() {
		            if ( window.location.protocol === "file:" ) {
		                alert( "This sample requires an HTTP server. Please serve this file with a web server." );

JavaScript URL Structure

The JavaScript URL structure for CKEditor 5 is as follows:

CSS URL Structure

The CSS URL structure for CKEditor 5 is as follows:

Translations URL Structure

Don’t Know How To Start?

Try the CKEditor 5 Builder 😊

CKEditor 4

Long Term Support

A special edition, CKEditor 4 LTS (“Long Term Support”), is available under commercial terms ("Extended Support Model") for anyone looking to extend the coverage of security updates and critical bug fixes.

To start using CKEditor 4 LTS on your website, add a single <script> tag to your HTML page:

<script src=""></script>

Quick example:

<!DOCTYPE html>
                <meta charset="utf-8">
                <script src=""></script>
                <textarea name="editor1"></textarea>
                        CKEDITOR.replace( 'editor1' );

Open Source

To start using CKEditor 4 OS on your website, add a single <script> tag to your HTML page:

<script src=""></script>
Note: You may continue using CKEditor 4.22.1 and below under the open source license terms. Please note, however, that the open source version no longer comes with any security updates, so your application will be at risk.

URL Structure

The URL structure for CKEditor 4 is as follows:

<script src="[version.number]/[distribution]/ckeditor.js"></script>

The following distributions (see comparison table) are available:

* Plugins not included in a preset need to be enabled with config.extraPlugins.

Note: Due to a human error to use CKEditor 4.4.5, you should specify The path that points to 4.4.5 actually points to an older version of CKEditor (4.3.5). To avoid issues on existing installations, we decided to keep the (invalid) old version under that path.

Enabling Local Plugins

To enable an extra plugin from a local folder while using CKEditor CDN, CKEDITOR.plugins.addExternal() must be called first so that CKEditor knew from where to load the plugin.

The CKEDITOR.plugins.addExternal() method accepts three parameters:

// Enable local "abbr" plugin from /myplugins/abbr/ folder.
CKEDITOR.plugins.addExternal( 'abbr', '/myplugins/abbr/', 'plugin.js' );

// extraPlugins needs to be set too.
CKEDITOR.replace( 'editor1', {
        extraPlugins: 'abbr'
} );

Enabling Local Skins

Enabling skins from a local folder is even easier than enabling plugins. To use a custom CKEditor skin while using CKEditor CDN, use and provide both, the skin name and the full URL after a comma:

// Enable "moonocolor" skin from the /myskins/moonocolor/ folder.
CKEDITOR.replace( 'editor1', {
        skin: 'moonocolor,/myskins/moonocolor/'
} );

Local Configuration Files

Some features in CKEditor are configured through JavaScript files by default. Since all files are loaded from remote CDN, there is no way to modify them directly. You can however instruct CKEditor to load local files instead, if you need to:

In case of setting any of the options above, it is highly recommended to download locally the same CKEditor package that is loaded from CDN in order to copy included configuration files and use them as base files for adding additional changes.

// Always provide paths that start with a slash character ("/").
CKEDITOR.replace( 'editor1', {
        customConfig: '/ckeditor_settings/config.js'
} );