Tech Stack Guides

How to Tell if a Website Uses jQuery (and Which Version)

jQuery is easy to detect: a jquery.min.js file, the window.jQuery and $ objects in the Console, and jQuery.fn.jquery prints the exact version. Here is how.

StackOptic Research Team11 May 202610 min read
Detecting whether a website uses the jQuery JavaScript library and which version

To tell whether a website uses jQuery, open the DevTools Console and type window.jQuery (or just $) and press Enter: if jQuery is loaded, you get back its function; if not, you get undefined. To read the exact version, type jQuery.fn.jquery — it prints the version string, such as 3.7.1, directly. That Console pair is the fastest and most precise method. You can corroborate it in the Network tab or View Source, where a jquery.min.js file (often from a CDN like code.jquery.com or cdnjs) frequently states the version in its path. This guide covers every signal, how to pin the version reliably, the meaning of a jQuery Migrate script, and why jQuery remains one of the most common finds on the web.

It sits within the broader how to check what JavaScript libraries a website uses and the wider how to find out what technology a website uses.

What jQuery is, briefly

jQuery is a long-established JavaScript library that simplifies DOM manipulation, event handling, animation and AJAX with a concise, chainable API. It rose to ubiquity in an era when browsers behaved inconsistently and writing cross-browser JavaScript was genuinely painful; jQuery smoothed those differences and made common tasks short and readable, so it was adopted almost everywhere. Although modern frameworks (React, Vue and friends) and improved native browser APIs have reduced the amount of new jQuery being written, an enormous amount of existing jQuery code still runs, and major platforms — WordPress notably — ship or depend on it. For detection, the key point is that jQuery announces itself clearly: it registers global objects and loads a recognisable file, so confirming it (and its version) takes seconds.

Signal 1: the window.jQuery and $ Console check

The single best jQuery check is in the Console, because it tests whether the library is genuinely loaded and running. Open DevTools (F12), go to the Console, and type:

window.jQuery

If jQuery is present, this returns its function (the Console shows something like ƒ (e,t){...}); if not, it returns undefined. The shorthand $ usually works too, since jQuery assigns itself to the $ alias by default — typing $ and getting a function back is the classic quick test. One careful nuance: $ is not exclusively jQuery (other libraries have used it, and jQuery can run in "no-conflict" mode that releases $), so the most reliable confirmation is window.jQuery, or checking that $.fn && $.fn.jquery is defined. When window.jQuery returns a function, you have confirmed jQuery is on the page, full stop.

Signal 2: jQuery.fn.jquery prints the version

This is the part developers love: jQuery exposes its own version string as a property. In the Console, type:

jQuery.fn.jquery

and press Enter. It returns the exact version as a string — for example "3.7.1" or "1.12.4". (The equivalent $.fn.jquery works the same way when $ is jQuery.) This is the single most precise version tell available for any library, because it reads the version from the running code itself rather than inferring it from a filename. It works even when the script was bundled, renamed, or loaded from a generic path, since the property is baked into the library. So the two-line Console routine — window.jQuery to confirm presence, jQuery.fn.jquery to read the version — answers both questions definitively in seconds.

Signal 3: the jquery.min.js file in Network/Source

For corroboration (and when you cannot run the Console, such as inspecting saved HTML), look for the loaded file. In the Network tab or View Source you will typically find a script named jquery.min.js, or a versioned variant like jquery-3.7.1.min.js. These are very often loaded from a public CDN, and the URL frequently names the version:

  • jQuery CDN: code.jquery.com/jquery-3.7.1.min.js
  • Google Hosted Libraries: ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js
  • cdnjs: cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js

Finding a request to a jquery*.js file is direct evidence the library loads, and a versioned path gives you the version without even opening the Console. The Network tab is the reliable place to look because it shows what the browser actually fetches; this is the same library-spotting method covered in how to check what JavaScript libraries a website uses.

Signal 4: the jQuery Migrate plugin

A frequent companion worth recognising is jQuery Migrate. This is an official helper plugin that restores APIs which newer jQuery versions removed or changed, so older code keeps working after the core library is upgraded. You will spot it as a separate script — jquery-migrate.min.js or similar — loaded alongside jQuery, often from the same CDN. Its presence is an informative signal about the site's age and maintenance: it means the codebase contains older jQuery-dependent JavaScript (themes, plugins, custom scripts) that was written for an earlier version and is being kept compatible rather than rewritten. Migrate even logs deprecation warnings to the Console in its development build, so on some sites you will see those warnings appear — another confirming clue. Finding Migrate tells you "this site has some history and was upgraded in place", which is common on long-lived sites and CMS platforms.

The signal table

SignalWhere to find itWhat it means
window.jQuery returns a functionDevTools ConsolejQuery is loaded — definitive
$ returns a function with .fn.jqueryDevTools ConsolejQuery via the $ alias (confirm it is really jQuery)
jQuery.fn.jquery → version stringDevTools ConsoleThe exact version — most precise tell
jquery.min.js / jquery-3.x.x.min.js fileNetwork tab, View SourcejQuery loading; path often states version
CDN path (code.jquery.com/jquery-3.7.1.min.js)Network tabExact version from the URL
jquery-migrate.min.js scriptNetwork tab, View SourceOlder code kept compatible — age/maintenance signal

The Console pair confirms presence and version; the file path corroborates and gives the version statically.

Method 1: the DevTools Console (fastest)

The quickest and most authoritative method is the Console. Open DevTools (F12), select Console, and run the two checks: window.jQuery (a returned function means jQuery is present) and jQuery.fn.jquery (which prints the version). If window.jQuery is undefined but you suspect jQuery loads late, reload and re-run after the page settles. This method is best because it reflects the runtime truth — what is actually loaded and which version is genuinely executing — independent of how the script was named or bundled. It also handles the no-conflict edge case: even if $ has been reassigned, window.jQuery and jQuery.fn.jquery still work as long as jQuery did not fully release its namespace. Two lines, and you have both the presence and the exact version.

Method 2: the Network tab and View Source

When you want corroboration or cannot use the Console, inspect the loaded scripts. In the Network tab, filter to JS and reload, then look for a jquery file; click it to read the full URL and capture any version in the path. In View Source (Ctrl/Cmd + U), search the markup for jquery to find the <script> reference and any jquery-migrate alongside it. This static approach is handy for scripted checks across many pages and for inspecting saved HTML, and a versioned CDN path gives you the version without running anything. The one limitation is that a bundled jQuery (compiled into a larger application bundle) may not appear as a recognisable jquery.min.js file — in which case the Console method is the fallback, because jQuery.fn.jquery still reports the version even when the file is hidden inside a bundle.

Method 3: detection tools

For a second opinion, general detection tools help. Wappalyzer and BuiltWith both detect jQuery and usually report a version, and browser-based tools like the library-detection extensions read the same global objects you would check by hand. These are convenient for a quick automated read, especially across many sites. As always, treat a tool's version as a hint and prefer the jQuery.fn.jquery Console property for certainty, since reading the live property is exact while tool inference can lag or approximate. Combining a tool's quick scan with a Console spot-check gives you both breadth and precision. This multi-tool habit underpins the broader how to find out what technology a website uses.

Reading the version: what the number tells you

Once you have the version, it carries meaning. jQuery's major lines differ in important ways:

  • 1.x — the oldest line still found on legacy sites; supports very old browsers. Finding 1.x suggests an old, possibly unmaintained codebase.
  • 2.x — dropped old Internet Explorer support; relatively short-lived and now uncommon.
  • 3.x — the current major line, the version you will see on actively maintained sites that still use jQuery.

So a jQuery.fn.jquery of 1.12.4 paints a very different picture (old, legacy-oriented) from 3.7.1 (current). The version is also relevant to security and maintenance review: older jQuery versions have known issues addressed in later releases, so an out-of-date jQuery is worth flagging as technical debt. And because Bootstrap 4 and earlier depend on jQuery while Bootstrap 5 dropped it, the presence and version of jQuery is a corroborating clue when identifying a site's CSS framework too (see how to tell if a website uses Bootstrap).

A worked example

You want to understand a site's front-end stack and how current it is. You open the Console and type window.jQuery — back comes a function, so jQuery is loaded. You type jQuery.fn.jquery and it prints "3.6.0" — a current-line version, captured exactly. To corroborate, you check the Network tab and find https://code.jquery.com/jquery-3.6.0.min.js, matching the Console reading, plus a jquery-migrate-3.x.x.min.js loaded right after it. The Migrate script tells you the codebase has older jQuery-dependent scripts being kept compatible — likely a long-lived site or a CMS with legacy themes and plugins. There is also a hint of a CMS pattern in the asset paths, so you note to check whether this is WordPress (using how to tell what CMS a website is using), since WordPress so often ships jQuery. In under a minute you have jQuery confirmed, the exact version, and a read on the site's age from the Migrate plugin.

Why jQuery is still everywhere

It is worth setting expectations: finding jQuery is extremely common, and that is not a criticism of a site. jQuery became near-universal in an earlier web era and was baked deeply into themes, plugins, libraries and platforms; much of that code still runs today. WordPress — which powers a very large share of the web — has long shipped and relied on jQuery, so a great many sites carry it for that reason alone, often without their owners thinking about it. According to long-running web-technology surveys such as the HTTP Archive's Web Almanac, jQuery is found on a very large proportion of pages, qualitatively the most prevalent JavaScript library by a wide margin — though treat the precise percentage as varying year to year and check the current report for an exact figure. The practical upshot: detecting jQuery tells you about a site's era and stack lineage more than its quality. A modern React app is unlikely to use it; a long-established WordPress business site very likely does.

How reliable is jQuery detection?

Extremely reliable, and version detection is essentially exact. The window.jQuery global and the jQuery.fn.jquery version property are intrinsic to the library, so the Console method confirms presence and version with certainty whenever jQuery is loaded — even if the file is bundled or renamed. The file-path method corroborates and supplies the version statically. The only real edge cases are minor: jQuery loaded late (re-run the Console check after the page settles), jQuery running in no-conflict mode (use window.jQuery rather than $), and jQuery compiled into a bundle (the Console property still works even when there is no standalone file). None of these defeat detection; they just steer you to the Console as the authoritative method. So "does this site use jQuery, and which version?" is one of the most confidently answerable questions in all of technology detection — two Console lines settle it.

The workflow

  1. Open the Console and type window.jQuery — a function means jQuery is loaded.
  2. Read the version with jQuery.fn.jquery — it prints the exact version string.
  3. Corroborate in the Network tab with the jquery*.js file and its CDN path.
  4. Note any jquery-migrate script as an age-and-maintenance signal.
  5. Interpret the version (1.x = legacy, 3.x = current) and cross-check Bootstrap/WordPress.

Go deeper

Want jQuery, its version and the full JavaScript stack identified automatically? Analyse any site with StackOptic — free, no sign-up.

Frequently asked questions

How do I tell if a website uses jQuery?

Open the DevTools Console and type window.jQuery (or just $) and press Enter. If jQuery is loaded, you get back a function; if not, you get undefined. You can also check the Network tab or View Source for a jquery.min.js file, often loaded from a CDN like code.jquery.com or cdnjs. The Console check is the quickest and most direct, since it tests whether jQuery is actually present and running on the page.

How do I find which version of jQuery a site uses?

Type jQuery.fn.jquery in the DevTools Console — it returns the exact version string, such as 3.7.1, and is the most precise method. Alternatively, read the script file path in the Network tab: a URL like code.jquery.com/jquery-3.7.1.min.js states the version directly. Both are reliable; the Console property is best because it reflects the version actually running, even if the file path is generic or the library is bundled.

What is jQuery Migrate and what does it tell me?

jQuery Migrate is a helper plugin that restores APIs removed or changed in newer jQuery versions, so older code keeps working after a jQuery upgrade. Seeing a jquery-migrate script loaded alongside jQuery indicates the site has older JavaScript that was written for an earlier jQuery and is being kept compatible. It is a useful signal that the codebase has some age to it and was upgraded rather than rewritten, which is common on long-lived sites and platforms.

Is the dollar sign $ always jQuery?

Usually, but not always. jQuery assigns itself to the $ shortcut by default, so $ returning a function with a jquery property is jQuery. However, other libraries have historically used $ too, and jQuery can run in no-conflict mode where $ is released. So the reliable confirmation is window.jQuery and jQuery.fn.jquery rather than $ alone; if $ exists, check whether $.fn && $.fn.jquery is defined to be sure it is really jQuery.

Why is jQuery still so common on websites?

jQuery solved cross-browser inconsistencies and simplified DOM work in an era when that was painful, so it was adopted almost everywhere and embedded deeply into themes, plugins and platforms. Much of that code still runs today, and major platforms — WordPress prominent among them — ship or rely on it. So while modern frameworks have reduced new jQuery usage, the library remains very widely present across the existing web, which is why detecting it is so routine.

Analyse any website with StackOptic

Get the full technology stack, performance, security and SEO report in seconds — free.

Analyse a website

Related articles