Javascript.info - SEO Checker

Overview of the SEO Check
Meta information
82% 
Page quality
86% 
Page structure
100% 
Link structure
96% 
Server
100% 
External factors
100% 
SEO Score
Response time
0.08 s
File size
49.00 kB
Words
807
Media files
4
Number of links
216 internal / 21 external

Task list of SEO Improvements

Meta specifications

Title
(Critically important)
The Modern JavaScript Tutorial
The length of the page title is perfect. (283 pixels out of 580 max pixel length)
There are no duplicate words in the title
Meta description
(Critically important)
Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.
The meta description is too long: 1045 pixels from max. 1000 pixels. Optimize description
Crawlability
(Critically important)
There are no problems in accessing the website.
Canonical URL
(Important)
https://javascript.info/
There is a valid canonical link specified.
Language
(Somewhat important)
Language detected in text: en
Language defined in HTML: en
Server location: United States of America
The following language is defined by HTML: en
Alternate/Hreflang Links
(Somewhat important)
There are no alternate links specified on this page.
Other meta tags
(Somewhat important)
There is no rel next meta tag on this page.
There is no rel prev meta tag on this page.
Domain
(Somewhat important)
The domain is no subdomain.
The domain length is good.
The domain does not contain non-latin characters.
Page URL
(Somewhat important)
No parameters were found in the URL.
No session ID was found in the URL.
The URL does not have too many subdirectories.
Charset encoding
(Somewhat important)
The charset encoding (UTF-8) is set correctly.
Doctype
(Nice to have)
The doctype HTML 5 is set correctly.
The doctype is placed at first in the HTML code.
Favicon
(Nice to have)
The favicon is linked correctly.

Meta tags

NameValue
viewportwidth=device-width, initial-scale=1, user-scalable=yes, minimum-scale=1.0
apple-mobile-web-app-capableyes
msapplication-TileColor#222A2C
msapplication-TileImage/img/favicon/tileicon.png
google-adsense-accountca-pub-6204518652652613
descriptionModern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.
langen
twitter:cardsummary
twitter:titleThe Modern JavaScript Tutorial
twitter:site@iliakan
twitter:creator@iliakan
twitter:imagehttps://javascript.info/img/site_preview_en_512x512.png
fb:admins100001562528165
og:titleThe Modern JavaScript Tutorial
og:imagehttps://javascript.info/img/site_preview_en_1200x630.png
og:image:typeimage/png
og:image:width1200
og:image:height630

Test up to 1.000 webpages of javascript.info with our free plan!

Try For Free
No trial. It's just free!

Page quality

Content
(Critically important)
This page contains 807 words. That's ok.
22.3% of the text are stop words.
Keywords used in the page title are also used in the page content. That's good!
Words from the H1 heading are used in the page content.
The page contains a listing, which indicates a good text layout.
3 paragraphs were found on this page.
The text content is perfect.
No placeholders texts or images were found.
There are no duplicates on the site.
The average number of words per sentence of 15.4 words is good.
Frames
(Critically important)
This page does not use a frameset.
Mobile optimization
(Somewhat important)
A viewport "width=device-width, initial-scale=1, user-scalable=yes, minimum-scale=1.0" is provided.
At least one Apple touch icon is specified.
Bold and strong tags
(Somewhat important)
The usage of strong and bold tags is perfect. We recommend the use of up to 16 tags for this page.
Image SEO
(Somewhat important)
4 images have no alt attribute. The content of alt attributes is used by search engines.
Social Networks
(Nice to have)
This page is optimized perfectly for social networks.
Additional markup
(Nice to have)
No additional page markup was found.
HTTPS
(Somewhat important)
This website uses HTTPS to protect privacy and integrity of the exchanged data.
All included files are also transferred via HTTPS.

Media list

URLAlt attributeTitle
/img/sitetoolbar__logo_en.svgNo alt attribute provided
/img/sitetoolbar__logo_en-white.svgNo alt attribute provided
/img/sitetoolbar__logo_small_en.svgNo alt attribute provided
/img/sitetoolbar__logo_small_en-white.svgNo alt attribute provided

Page structure

H1 heading
(Critically important)
The Modern JavaScript Tutorial
The H1 heading is perfect.
Headings
(Important)
The heading structure is perfect.

Heading structure

Heading levelContent
H1 The Modern JavaScript Tutorial
H2 Table of contents
H2 The JavaScript language
H2 Browser: Document, Events, Interfaces
H2 Additional articles
Some anchor texts are used more than once.
The number of internal links is ok.
None of the anchor texts is too long.
All internal links are not using dynamic parameters.
There are 21 external links on this page.
LinkAttributesAnchor text
https://ar.javascript.info/External Subdomain ARعربي
https://javascript.info/ENEnglish
https://es.javascript.info/External Subdomain ESEspañol
https://fa.javascript.info/External Subdomain FAفارسی
https://fr.javascript.info/External Subdomain FRFrançais
https://id.javascript.info/External Subdomain IDIndonesia
https://it.javascript.info/External Subdomain ITItaliano
https://ja.javascript.info/External Subdomain JA日本語
https://ko.javascript.info/External Subdomain KO한국어
https://learn.javascript.ru/External Subdomain RUРусский
https://tr.javascript.info/External Subdomain TRTürkçe
https://uk.javascript.info/External Subdomain UKУкраїнська
https://zh.javascript.info/External Subdomain ZH简体中文
https://javascript.info/translateHelp to translate
https://javascript.info/No Text
https://javascript.info/ebookBuyEPUB/PDF
/tutorial/mapTutorial map
https://twitter.com/share?url=...Nofollow External No Text
https://www.facebook.com/share...Nofollow External Subdomain No Text
https://javascript.info/ebookText duplicate BuyEPUB/PDF
https://twitter.com/share?url=...Nofollow External No Text
https://www.facebook.com/share...External Subdomain No Text
https://github.com/javascript-...External 23467 ★github
https://discord.gg/AuEWpFkfD4External Discord Chat
https://javascriptinfo.canny.i...External Subdomain Trivial anchor text
here
https://javascript.info/Anchor Part 1The JavaScript language
https://javascript.info/Anchor Part 2Browser: Document, Events, Interfaces
https://javascript.info/Anchor Part 3Additional articles
/getting-startedAn introduction
https://javascript.info/introAn Introduction to JavaScript
/manuals-specificationsManuals and specifications
/code-editorsCode editors
https://javascript.info/devtoolsDeveloper console
/first-stepsJavaScript Fundamentals
/hello-worldHello, world!
https://javascript.info/structureCode structure
/strict-modeThe modern mode, "use strict"
https://javascript.info/variablesVariables
https://javascript.info/typesData types
/alert-prompt-confirmInteraction: alert, prompt, confirm
/type-conversionsType Conversions
https://javascript.info/operatorsBasic operators, maths
/comparisonComparisons
https://javascript.info/ifelseConditional branching: if, '?'
/logical-operatorsLogical operators
/nullish-coalescing-operatorNullish coalescing operator '??'
https://javascript.info/while-forLoops: while and for
https://javascript.info/switchThe "switch" statement
/function-basicsFunctions
/function-expressionsFunction expressions
/arrow-functions-basicsArrow functions, the basics
/javascript-specialsJavaScript specials
/code-qualityCode quality
/debugging-chromeDebugging in the browser
/coding-styleCoding Style
https://javascript.info/commentsComments
/ninja-codeNinja code
/testing-mochaAutomated testing with Mocha
https://javascript.info/polyfillsPolyfills and transpilers
/object-basicsObjects: the basics
https://javascript.info/objectObjects
/object-copyObject references and copying
/garbage-collectionGarbage collection
/object-methodsObject methods, "this"
/constructor-newConstructor, operator "new"
/optional-chainingOptional chaining '?.'
https://javascript.info/symbolSymbol type
/object-toprimitiveObject to primitive conversion
/data-typesText duplicate Data types
/primitives-methodsMethods of primitives
https://javascript.info/numberNumbers
https://javascript.info/stringStrings
https://javascript.info/arrayArrays
/array-methodsArray methods
https://javascript.info/iterableIterables
https://javascript.info/map-setMap and Set
/weakmap-weaksetWeakMap and WeakSet
/keys-values-entriesObject.keys, values, entries
/destructuring-assignmentDestructuring assignment
https://javascript.info/dateDate and time
https://javascript.info/jsonJSON methods, toJSON
/advanced-functionsAdvanced working with functions
https://javascript.info/recursionRecursion and stack
/rest-parameters-spreadRest parameters and spread syntax
https://javascript.info/closureVariable scope, closure
https://javascript.info/varThe old "var"
/global-objectGlobal object
/function-objectFunction object, NFE
/new-functionThe "new Function" syntax
/settimeout-setintervalScheduling: setTimeout and setInterval
/call-apply-decoratorsDecorators and forwarding, call/apply
https://javascript.info/bindFunction binding
/arrow-functionsArrow functions revisited
/object-propertiesObject properties configuration
/property-descriptorsProperty flags and descriptors
/property-accessorsProperty getters and setters
/prototypesPrototypes, inheritance
/prototype-inheritancePrototypal inheritance
/function-prototypeF.prototype
/native-prototypesNative prototypes
/prototype-methodsPrototype methods, objects without __proto__
https://javascript.info/classesClasses
https://javascript.info/classClass basic syntax
/class-inheritanceClass inheritance
/static-properties-methodsStatic properties and methods
/private-protected-properties-...Private and protected properties and methods
/extend-nativesExtending built-in classes
/instanceofClass checking: "instanceof"
https://javascript.info/mixinsMixins
/error-handlingError handling
https://javascript.info/try-catchError handling, "try...catch"
/custom-errorsCustom errors, extending Error
https://javascript.info/asyncPromises, async/await
https://javascript.info/callbacksIntroduction: callbacks
/promise-basicsPromise
/promise-chainingPromises chaining
/promise-error-handlingError handling with promises
/promise-apiPromise API
https://javascript.info/promisifyPromisification
/microtask-queueMicrotasks
/async-awaitAsync/await
/generators-iteratorsGenerators, advanced iteration
/generatorsGenerators
/async-iterators-generatorsAsync iteration and generators
https://javascript.info/modulesModules
/modules-introModules, introduction
/import-exportExport and Import
/modules-dynamic-importsDynamic imports
https://javascript.info/js-miscMiscellaneous
https://javascript.info/proxyProxy and Reflect
https://javascript.info/evalEval: run a code string
/currying-partialsCurrying
/reference-typeReference Type
https://javascript.info/bigintBigInt
https://javascript.info/unicodeUnicode, String internals
/weakref-finalizationregistryWeakRef and FinalizationRegistry
https://javascript.info/documentDocument
/browser-environmentBrowser environment, specs
https://javascript.info/dom-nodesDOM tree
/dom-navigationWalking the DOM
/searching-elements-domSearching: getElement*, querySelector*
/basic-dom-node-propertiesNode properties: type, tag and contents
/dom-attributes-and-propertiesAttributes and properties
/modifying-documentModifying the document
/styles-and-classesStyles and classes
/size-and-scrollElement size and scrolling
/size-and-scroll-windowWindow sizes and scrolling
/coordinatesCoordinates
https://javascript.info/eventsIntroduction to Events
/introduction-browser-eventsIntroduction to browser events
/bubbling-and-capturingBubbling and capturing
/event-delegationEvent delegation
/default-browser-actionBrowser default actions
/dispatch-eventsDispatching custom events
/event-detailsUI Events
/mouse-events-basicsMouse events
/mousemove-mouseover-mouseout-...Moving the mouse: mouseover/out, mouseenter/leave
/mouse-drag-and-dropDrag'n'Drop with mouse events
/pointer-eventsPointer events
/keyboard-eventsKeyboard: keydown and keyup
https://javascript.info/onscrollScrolling
/forms-controlsForms, controls
/form-elementsForm properties and methods
/focus-blurFocusing: focus/blur
/events-change-inputEvents: change, input, cut, copy, paste
/forms-submitForms: event and method submit
https://javascript.info/loadingDocument and resource loading
/onload-ondomcontentloadedPage: DOMContentLoaded, load, beforeunload, unload
/script-async-deferScripts: async, defer
/onload-onerrorResource loading: onload and onerror
https://javascript.info/ui-miscText duplicate Miscellaneous
/mutation-observerMutation observer
/selection-rangeSelection and Range
/event-loopEvent loop: microtasks and macrotasks
/frames-and-windowsFrames and windows
/popup-windowsPopups and window methods
/cross-window-communicationCross-window communication
/clickjackingThe clickjacking attack
https://javascript.info/binaryBinary data, files
/arraybuffer-binary-arraysArrayBuffer, binary arrays
/text-decoderTextDecoder and TextEncoder
https://javascript.info/blobBlob
https://javascript.info/fileFile and FileReader
https://javascript.info/networkNetwork requests
https://javascript.info/fetchFetch
https://javascript.info/formdataFormData
/fetch-progressFetch: Download progress
/fetch-abortFetch: Abort
/fetch-crossoriginFetch: Cross-Origin Requests
https://javascript.info/fetch-apiFetch API
https://javascript.info/urlURL objects
/xmlhttprequestXMLHttpRequest
/resume-uploadResumable file upload
/long-pollingLong polling
https://javascript.info/websocketWebSocket
/server-sent-eventsServer Sent Events
/data-storageStoring data in the browser
https://javascript.info/cookieCookies, document.cookie
/localstorageLocalStorage, sessionStorage
https://javascript.info/indexeddbIndexedDB
https://javascript.info/animationAnimation
/bezier-curveBezier curve
/css-animationsCSS-animations
/js-animationJavaScript animations
/web-componentsWeb components
/webcomponents-introFrom the orbital height
/custom-elementsCustom elements
/shadow-domShadow DOM
/template-elementTemplate element
/slots-compositionShadow DOM slots, composition
/shadow-dom-styleShadow DOM styling
/shadow-dom-eventsShadow DOM and events
/regular-expressionsRegular expressions
/regexp-introductionPatterns and flags
/regexp-character-classesCharacter classes
/regexp-unicodeUnicode: flag "u" and class \p{...}
/regexp-anchorsAnchors: string start ^ and end $
/regexp-multiline-modeMultiline mode of anchors ^ $, flag "m"
/regexp-boundaryWord boundary: \b
/regexp-escapingEscaping, special characters
/regexp-character-sets-and-rangesSets and ranges [...]
/regexp-quantifiersQuantifiers +, *, ? and {n}
/regexp-greedy-and-lazyGreedy and lazy quantifiers
/regexp-groupsCapturing groups
/regexp-backreferencesBackreferences in pattern: \N and \k<name>
/regexp-alternationAlternation (OR) |
/regexp-lookahead-lookbehindLookahead and lookbehind
/regexp-catastrophic-backtrackingCatastrophic backtracking
/regexp-stickySticky flag "y", searching at position
/regexp-methodsMethods of RegExp and String
https://twitter.com/share?url=...Nofollow External No Text
https://www.facebook.com/share...Nofollow External Subdomain No Text
/tutorial/mapText duplicate Tutorial map
https://javascript.info/aboutabout the project
https://javascript.info/aboutcontact us
https://javascript.info/termsterms of usage
https://javascript.info/privacyprivacy policy

Server configuration

HTTP redirects
(Critically important)
This page redirects to "https://javascript.info/"
HTTP header
(Important)
No X-Powered HTTP header is sent.
This page uses GZip for compressed data transmission.
Performance
(Somewhat important)
The page response time is excellent with 0.08 seconds.
The file size of the HTML document is fine (49 kB).

HTTP Response Header

NameValue
dateSat, 12 Oct 2024 02:57:36 GMT
content-typetext/html; charset=utf-8
x-frame-optionssameorigin
etagW/"c3d3-ADCSh+zMBuEXUltNxwNhZuEzaGY"
x-content-type-optionsnosniff
cf-cache-statusDYNAMIC
report-to{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=TGC1NC%2BGAZz5j92IQQl4r94Jz9pmEtFvw57YFFh%2BOJYMmfLMqe5rKThlEFJp4V4SvUJZlesOprboTCm8wsQhCk%2B7TWa5CF11AzTCIMGtHcVTW4OvLHosotYJC2W8Mu7Wwg%3D%3D"}],"group":"cf-nel","max_age":604800}
nel{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
servercloudflare
cf-ray8d13d2c90bcfdba5-FRA
content-encodinggzip
alt-svch3=":443"; ma=86400
statuscode200
http_versionHTTP/2

External factors

This page is referenced by wikipedia.
This website has excellent links from other websites.
This page has backlinks from 6,522 referring domains.
This page has 86,235 backlinks.
This page has backlinks from 4,085 different ip addresses.

Search preview

javascript.info
The Modern JavaScript Tutorial
Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.

Most important keywords

Following keywords were found. You can check the keyword optimization of this page for each keyword.

KeywordResultRecheck
JavaScript89%Check
Modern JavaScript83%Check
JavaScript Tutorial83%Check
Modern JavaScript Tutorial80%Check
tutorial73%Check
Modern73%Check
JavaScript language65%Check
Events50%Check
Document50%Check
Object46%Check

Test up to 1.000 webpages of javascript.info with our free plan!

Try For Free
No trial. It's just free!

Cookie Policy

We use cookies to make our site work and also for analytics and advertising purposes. You can enable or disable optional cookies as desired. See the following links for more information.

We need these so the site can function properly

So we can better understand how visitors use our website

So we can serve you tailored ads and promotions