PageSourceSearch

https://gamechannel.io/freecell-solitaire/?utm_source=homepage&utm_medium=webpage&utm_content=freecell

html gamechannel.io collected 2026-09-24 15:03:27 UTC 19,682 bytes, 397 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <title>FreeCell Solitaire Games - FREE | Voted BEST of 2024 - 2019</title>
5	<meta charset="utf-8">
6	<meta http-equiv="X-UA-Compatible" content="IE=edge">
7	<meta content="width=device-width, initial-scale=1, minimum-scale=1, user-scalable=no" name="viewport">
8	<meta content="yes"									name="full-screen">
9	<meta content="index, follow"						name="robots">
10    <meta content="GameChannel.io"							name="author">
11    <meta content="GameChannel.io. All Rights Reserved." 	name="copyright">
12
13   	<link href="https://gamechannel.io/freecell-solitaire/index.html" 	rel="canonical">
14   	<meta content="Voted Best of 2024 Free Classic Solitaire card games ⚡. Millions of  solitaire players worldwide" name="description">
15    <meta content="solitaire, klondike, freecell, spider solitaire, cards, classic card games, suits, foundations, card games" name="keywords">
16
17   	<link href="./assets/icons/apple-touch-icon.png" 	rel="apple-touch-icon" sizes="180x180">
18	<link href="./assets/icons/favicon-32x32.png"		rel="icon" type="image/png" sizes="32x32">
19	<link href="./assets/icons/favicon-16x16.png" 		rel="icon" type="image/png" sizes="16x16">
20	<link href="./assets/icons/favicon.ico"				rel="shortcut icon">
21	<link href="./assets/icons/safari-pinned-tab.svg" 	rel="mask-icon" color="#1b53c7">   
22	
23	<link href="/common/adsTopSolitaireGames/adtop.css" 					rel="stylesheet" type="text/css">
24	<link href="/common/applixirAds/applixirAds.css" 					rel="stylesheet" type="text/css">
25	<link href="/common/social/fb-share-button.css" 					rel="stylesheet" type="text/css">
26	<link href="/common/solitaireGames/solitaire.css" 					rel="stylesheet" type="text/css">
27	
28	<link href="card.css"												rel="stylesheet" type="text/css">
29	<link href="freecell.css" 											rel="stylesheet" type="text/css">
30	
31   	<!-- Code: CMP for Adsense from Google to send TCF signals to GA4 --> 				
32 	
32<script> <!-- Enabled tcf support for Google tag --> window ['gtag_enable_tcf_support'] = true; </script>
32
33
34  	<!-- Adsense Ads -->
35  	
35<script data-ad-client="ca-pub-8403075472397165" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
35
36
37	<!-- Google Ad Block Recovery -->
38	
38<script async src="https://fundingchoicesmessages.google.com/i/pub-8403075472397165?ers=1" nonce="De881dIXGs7ppbcL5NcWOg"></script>
38<script nonce="De881dIXGs7ppbcL5NcWOg">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
38
39
40	<!-- Google Ad Block Optional Error protection message -->
41	
41<script src="/common/googleAdBlockOptionalErrorProtectionMessage/googleAdBlockOptionalErrorProtectionMessage.js"></script>
41
42
43	<!-- Google Tag Manager -->
44		
44<script>
vendor: 335 bytes, lines 44-48
44(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
45		new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
46		j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
47		'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
48		})(window,document,'script','dataLayer','
48GTM-KZDJTBH
vendor: 3 bytes, line 48
48');
48</script>
48
49	<!-- End Google Tag Manager -->		      
50                  
51	<!-- Google Analytics tag (gtag.js) required to send data to GA4 and Google Ads -->
vendor: 65 bytes, lines 51-52
51
52	<script async src="https://www.googletagmanager.com/gtag/js?id=
52G-D8ZN7RQ3CQ
vendor: 13 bytes, lines 52-53
52"></script>
53	
53<script>
54  		
vendor: 140 bytes, lines 54-57
54window.dataLayer = window.dataLayer || [];
55  			function gtag(){dataLayer.push(arguments);}
56  			gtag('js', new Date());
57			gtag('config', '
57G-D8ZN7RQ3CQ
vendor: 10 bytes, lines 57-58
57');
58   			
58gtag('config', 'AW-736771080');
59	</script>
59
60                  
61	
61<script src="v-util.js"></script>
61 <!-- This has the va_uuid attribution, so before GA -->
62                  
63<!-- Open Graph metadata -->
64  	<meta property="og:locale" 			content="en_US" />
65  	<meta property="og:type" 			content="website" />
66  	<meta property="og:title" 			content="FreeCell Solitaire - 100% FREE | Voted BEST of 2024" />
67  	<meta property="og:description" 	content="⚡️NEW! Fast and Easy - No download or registration required. Join millions of solitaire players worldwide!" />
68  	<meta property="og:url" 			content="https://gamechannel.io/freecell-solitaire/index.html" />
69  	<meta property="og:site_name" 		content="gamechannel.io" />
70  	<meta property="og:image" 			content="https://gamechannel.io/freecell-solitaire/assets/icons/facebook-og/fb-og-image-1200x627-freecell.png" />
71  	<meta property="og:image:secure_url" content="https://gamechannel.io/freecell-solitaire/assets/icons/facebook-og/fb-og-image-1200x627-freecell.png" />
72  	<meta property="og:image:alt" 		content="gamechannel.io freecell solitaire" />
73  	<meta property="og:image:type" 		content="image/png" />
74 
75  	<!-- Twitter Card -->
76  	<meta name="twitter:image" 			content="https://gamechannel.io/freecell-solitaire/assets/icons/twitter-card/thumbnail.png" />
77  	<meta name="twitter:description" 	content="⚡️NEW! Fast and Easy - No download or registration required. Join millions of solitaire players worldwide!" />
78  	<meta name="twitter:card" 			content="summary" />
79  	<meta name="twitter:site" 			content="@GameChannel.io" />
80  	<meta name="twitter:title" 			content="New! FreeCell Solitaire - 100% FREE | Voted BEST of 2024" />
81  	<meta name="twitter:url" 			content="https://gamechannel.io/freecell-solitaire/index.html" />
82  	<meta name="twitter:creator" 		content="@GameChannel.io" />
83  	  	
84    <!-- Structured Data -->
85	
85<script src="/common/structuredData/structuredDataFreeCell.js"></script>
85
86
87	</head>
88	<body>
89	
90	<!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 90-91
90
91		<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
91GTM-KZDJTBH
vendor: 86 bytes, lines 91-93
91"
92		height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
93	
93<!-- End Google Tag Manager (noscript) -->
94
95<div class="ad-game-container">
96
97	<!-- Begin Ad Placements -->
98    	<div id="ad-top-master">
99   			<div class="ad-top-left">
100				
100<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8403075472397165"
101     				crossorigin="anonymous"></script>
101
102				<!-- fixed728x90 -->
103				<ins class="adsbygoogle"
104     				style="display:inline-block;width:728px;height:90px"
105     				data-ad-client="ca-pub-8403075472397165"
106     				data-ad-slot="6382736985"></ins>
107				
107<script>
108     				(adsbygoogle = window.adsbygoogle || []).push({});
109				</script>
109	
110			</div>		
111			
112 			<div class="ad-top-center">										
113				
113<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8403075472397165"
114     				crossorigin="anonymous"></script>
114
115				<!-- 2024_Top350 -->
116				<ins class="adsbygoogle"
117     				style="display:block"
118     				data-ad-client="ca-pub-8403075472397165"
119     				data-ad-slot="5354065070"
120     				data-ad-format="auto"
121     				data-full-width-responsive="true"></ins>
122				
122<script>
123     				(adsbygoogle = window.adsbygoogle || []).push({});
124				</script>
124
125			</div>
126
127   			<div class="ad-top-right">      
128				
128<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8403075472397165"
129     				crossorigin="anonymous"></script>
129
130				<!-- 2024Top_Responsive -->
131				<ins class="adsbygoogle"
132     				style="display:block"
133     				data-ad-client="ca-pub-8403075472397165"
134     				data-ad-slot="9349150406"
135     				data-ad-format="auto"
136     				data-full-width-responsive="true"></ins>
137				
137<script>
138     				(adsbygoogle = window.adsbygoogle || []).push({});
139				</script>
139
140			</div>
141		</div>	
142	<!-- End Ad Placements -->
143	
144        <div id="control_bar" class="btn-group"> 
145            <div>
146                <button class="btn" id="button_new" onclick="newGameSameMode()"> 
147                    <!--%s_new_game.html%-->
148        				<svg focusable="false" class="ico" aria-hidden="true" viewBox="0 0 32 32">
149            				<circle cx="16" cy="16" r="13.5"/>
150            				<path d="M13 9 20 16 13 23"/>
151        				</svg>
152        				<span class="lang" lang="en">NEW</span>
153        			</button>
154            </div>
155            <div class="dropup">
156				<button onclick="toggleDropUp()" class="dropbtn" id="more_games">
157					<span id="dot" class="dot">+</span>
158					<span class="lang" lang="en">🎁 ???</span>
159				</button>
160			<div id="optionsDropup" class="dropup-content">
161
162				<a href='https://gamechannel.io/policies/privacy?utm_source=solitaire&utm_medium=in-game&utm_content=more' id='privacy_terms' rel='noopener' target='_blank'>
163					<!--privacy / terms-->
164					<span class="lang" lang="en"> (c) 2019-2024 GameChannel.io | Privacy & Terms </span>          </a> 
165					
166				<hr class="rounded">
167
168				<a href='https://gamechannel.io/2048/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='2048' rel='noopener' target='_blank'>
169					<!--2048-->
170					<span class="lang" lang="en"><img src="https://gamechannel.io/2048/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="2048"> 2048 CIRCLES</span>         </a> 
171
172				<a href='https://gamechannel.io/backgammon/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='backgammon' rel='noopener' target='_blank'>
173					<!--Backgammon-->
174					<span class="lang" lang="en"><img src="https://gamechannel.io/backgammon/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Backgammon"> BACKGAMMON</span></a> 	
175
176				<a href='https://gamechannel.io/checkers/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='checkers' rel='noopener' target='_blank'>
177					<!--Checkers-->
178					<span class="lang" lang="en"><img src="https://gamechannel.io/checkers/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Checkers"> CHECKERS</span>         </a> 	
179					
180				<a href='https://gamechannel.io/chess/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='chess' rel='noopener' target='_blank'>
181					<!--Chess-->
182					<span class="lang" lang="en"><img src="https://gamechannel.io/chess/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Chess"> CHESS</span>         </a> 						
183
184				<a href='https://gamechannel.io/reversi/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='reversi' rel='noopener' target='_blank'>
185					<!--Reversi-->
186					<span class="lang" lang="en"><img src="https://gamechannel.io/reversi/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Reversi"> REVERSI | OTHELLO</span>         </a> 	
187
188				<a href='https://gamechannel.io/sudoku/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='sudoku' rel='noopener' target='_blank'>
189					<!--Sudoku-->
190					<span class="lang" lang="en"><img src="https://gamechannel.io/sudoku/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Sudoku"> SUDOKU</span>         </a> 			
191
192 				<a href='https://gamechannel.io/tank-wars/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='tank_wars' rel='noopener' target='_blank'>
193					<!--Tank Wars-->
194					<span class="lang" lang="en"><img src="https://gamechannel.io/tank-wars/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Tank Wars"> TANK WARS Arcade</span>         </a> 	
195
196				<hr class="rounded">
197		
198        			<a href='https://gamechannel.io/solitaire/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='solitaire' rel='noopener' target='_blank'>
199                    <!--klondike-->
200                		<span class="lang" lang="en"><img src="https://gamechannel.io/solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Solitaire"> KLONDIKE Solitaire</span>          </a> 
201
202				<a href='https://gamechannel.io/pyramid-solitaire/?utm_source=freecell-solitaire&utm_medium=in-game&utm_c
202ontent=more' id='pyramid' rel='noopener' target='_blank'>
203					<!--pyramid-->
204					<span class="lang" lang="en"><img src="https://gamechannel.io/pyramid-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Pyramid Solitaire"> PYRAMID Solitaire</span>         </a> 
205
206				<a href='https://gamechannel.io/spider-solitaire/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='spider' rel='noopener' target='_blank'>
207					<!--spider-->
208					<span class="lang" lang="en"><img src="https://gamechannel.io/spider-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Spider Solitaire"> SPIDER Solitaire</span>          </a> 
209
210				<a href='https://gamechannel.io/tripeaks-solitaire/?utm_source=freecell-solitaire&utm_medium=in-game&utm_content=more' id='tripeaks' rel='noopener' target='_blank'>
211					<!--tripeaks-->
212					<span class="lang" lang="en"><img src="https://gamechannel.io/tripeaks-solitaire/assets/icons/favicon-32x32.png" height="24px" width="24px" alt="Tripeaks Solitaire"> TRIPEAKS Solitaire</span>          </a> 
213        
214            </div>
215            </div>
216            
217			<div>
218                <button class="btn" id="button_undo" onclick="undo()">
219                		<!--%s_undo.html%-->
220        				<svg focusable="false" class="ico" aria-hidden="true" viewBox="0 0 34 32">
221            				<path d="M5.5 16A13.5 13.5 0 1 1 19 29.5M3 17 8 17 5.5 20z"/>
222            				<text x="58%" y="65%" stroke-width="0.1em" id="undos_left">0</text>
223        				</svg> 
224        				<span class="lang" lang="en">Undo</span>
225        			</button>
226          	</div> 
227		</div> <!--control_bar-->
228        
229        <div class="hidden">
230            <svg>
231                <style>
232                    .small_text { font:  14px Arial; }
233                </style>
234                    <symbol id="freecell_target">
235                   		<use x="0" y="0" xlink:href="#target_border" opacity="0.2" />
236                     	<text x="22" y="58" fill="white" opacity="0.2" class="small_text">FREE</text>
237                      	<text x="22" y="72" fill="white" opacity="0.2" class="small_text">CELL</text>
238              		</symbol>
239            </svg>
240        </div>
241        
242        <div id="freecell_div">
243        
244</div><!-- game div-->
245        
246    	<div id="game_over_div" class="solitaire_dialog">
247            <div id="trophy_win">
248	    			<span>🎉</span>
249    			<span>🎊</span>
250    			<span>🏆</span>
251    			<span>🎊</span>
252    			<span>🎉</span>      			
253            </div>
254            <!--%s_label_great_game.html%-->
255    		<div id="congrats-1">
256    			<strong>
257        				<span class="lang" lang="en">Great Game!</span>
258    			</strong>
259    		</div>        <!--%s_label_you_win.html%-->
260    		<div id="you-win"><strong>
261        			<span class="lang" lang="en">YOU WIN!</span>
262    		</strong>
263    		</div>
264    		<br>
265    
266    		<div id="game_over_stats">
267    		<!--%s_label_your_time.html%-->
268    			<span class="lang" lang="en">Your Time:</span>
269        			<span id="game_over_time"></span>
270        			<br />
271       			<br />    
272                <!--%s_label_moves_to_win.html%-->
273    			<span class="lang" lang="en">Moves to Win:</span>
274       			<span id="game_over_moves"></span>
275    		</div>
276    		<br />
277    
278			<div class="continue_div">
279    			<strong>
280					<span id="continue" onclick="newGameSameMode()">
281						<!--%s_button_continue_plain.html%-->
282    					<span class="lang" lang="en">CONTINUE ▷</span>
283        				</span>
284    			</strong>
285    		</div>
286           	<br />
287    	</div>        
288        <!--game over div-->
289        <!--%s_new_confirm.html%-->
290
291</div>
292
293    <div id="applixir_vanishing_div" hidden >
294    	<iframe id="applixir_parent" allow="autoplay">
295    	</iframe>
296    </div>
297	
298	<div id="ad-center" align="center" class="flex-container">
299		 <header id="ad-header"><span id="ad-close" style="cursor:pointer">Loading...</span></header>
300 	</div>  
301
302 	<!-- FB Share Button -->
303	<div id="fb-share-button" class="fb-share-button" data-href="https://gamechannel.io/freecell-solitaire/index.html" data-layout="button" data-size=""><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgamechannel.io%2Ffreecell-solitaire&amp;
303src=sdkpreparse" class="fb-xfbml-parse-ignore">Share</a></div>
304
305	<!-- Load Facebook SDK for JavaScript -->
306	<div id="fb-root"></div>
307
308	<!-- Link to external JavaScript file -->
309	
309<script src="/common/social/social-scripts.js"></script>
309
310	
311</BODY>
312
313	
313<script src="f.js"></script>
313
314
315	<!-- APPLIXIR NEW for gen UUID4 and passed to applixir  -->	
316	
316<script src="https://cdnjs.cloudflare.com/ajax/libs/uuid/8.3.2/uuid.min.js">
317	</script>
317
318
319	
319<script defer>
320    	// Generate a random UUID using the uuid library
321    	let myuuid = uuid.v4();
322
323    	// Log the UUID to the console
324    	console.log(myuuid);
325
326    	// Assign the UUID to APPLIXIR_USERID
327    	var APPLIXIR_USERID = myuuid; 
328
329    	// Check sessionTime and reload window if greater than 2 minutes
330    	if (_sessionTime > 2 * 60) {
331        		window.location.reload(true); 
332    	}
333	</script>
333
334	
335	
335<script type="text/javascript">
336	// This function is called after the page is fully loaded.
337	// Unlike normal webpage, care MOST about game loading fully and playable 
338	// for speed to first contentful paint/playable. Also, SECOND most important thing is to get manifest.json
339	// file downloaded and processed for deferred prompt. Unforunately, while can preload file, browsers will not process manifest.json until after page fully loads. So, we put the ads/marketing to <defer> load and we also don't want to load the network with too many requests for javascript files/etc for lower end devices in various parts of the world.
340	// Now, you are probably going to ignore this and start putting in 
340<script> includes above and do things like async/defer. I am just telling you, we are not a normal web page, and the solution below is the best so far for the goals above, so don't ignore the efforts of your elders. 
341	function downloadJSAtOnLoad() {
342
343			var deferInclude = document.createElement("script");
344			deferInclude.src = "/common/defer/defer.js";
345			deferInclude.defer = true;
346			deferInclude.async = true;
347			document.body.appendChild(deferInclude);
348
349			// If we are being told to show interstitial, let's do it in a tick after all the ad tech loads.
350			if (urlParams.has("si")) {
351					setTimeout(function() {
352						 if (typeof showVideoInterstitial != "function") { return; } // Defer load check
353							showVideoInterstitial();
354							_interstitialTime = Date.now();
355					}, 500);
356			}
357	}
358
359	// Simple function to call downloadJS files post load to let everything settle. 
360	function deferLoad() {
361			setTimeout(downloadJSAtOnLoad, 1.5*1000);
362	}
363
364	// Hook into the page fully loading to call defer
365	if (window.addEventListener) { window.addEventListener("load", deferLoad, false); }
366	else if (window.attachEvent) { window.attachEvent("onload", deferLoad);  }
367	else  { window.onload = deferLoad;} 
368	</script>
368
369
370	
370<script>
371	// Grab the game config;
372	initGameConfig("freecell");
373
374	// Start the game as soon as possible to render to the screen.
375	startGame(vGameConfig);
376   
377	var _interstitialTime  = 0;
378   
379    // Add a call back when a new game starts to show an ad for showing the install dialog
380    addNewGameCallback(function() {
381
382			// If we haven't shown an ad in 60 seconds let's show one
383			if ( Date.now() - _interstitialTime  > 60*1000) {
384				if (typeof showVideoInterstitial != "function") { 
385                console.log("Show Video Interstitial not defined yet");
386                return; 
387            }
388					showVideoInterstitial();
389
390					_interstitialTime  = Date.now();
391					//reloadForInterstitial();
392			} 		
393
394		});
395	
396	</script>
396
397</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.