wdwprepschool.com

Website beoordeling wdwprepschool.com

WDW Prep School - oddly specific Disney parks (and related) planning

 Gegenereerd op Mei 02 2026 01:29 AM

Oude statistieken? UPDATE !

De score is 55/100

SEO Content

Title

WDW Prep School - oddly specific Disney parks (and related) planning

Lengte : 68

Perfect, uw title tag bevat tussen de 10 en 70 karakters.

Description

Learn how to maximize your dollars and time as you plan the trip you've always dreamt of.

Lengte : 89

Perfect, uw meta description bevat tussen de 70 en 160 karakters.

Keywords

Erg slecht. We hebben geen meta keywords gevonden in uw website. Gebruik deze gratis online meta tags generator om keywords te genereren.

Og Meta Properties

Goed, uw page maakt gebruik van Og Properties.

Property Content
url https://wdwprepschool.com
title WDW Prep School - oddly specific Disney parks (and related) planning
description Learn how to maximize your dollars and time as you plan the trip you've always dreamt of.
type website
image https://wdwprepschool.com/wp-content/uploads/wdw-prep-school-you-ll-learn-things-you-never-knew-you-never-knew.jpg
image:width 500
image:type image/jpeg
site_name WDW Prep School
locale en_US

Headings

H1 H2 H3 H4 H5 H6
1 9 10 2 0 0
  • [H1]
  • [H2] ","content":"","sidebar":"","sticky_sidebar":"","adhesion":""}}; /* */ Uh oh! We don't support IE due to its failure to integrate new web standards. For the best browsing experience, please use More Info → const headerLogoContainer = document.querySelector('.header-container'); headerLogoContainer.classList.add('preloaded'); /*! * FullCalendar v1.6.4-yearview * Docs & License: http://arshaw.com/fullcalendar/ * (c) 2013 Adam Shaw - 2014 Tanguy Pruvot */ /* * Use fullcalendar.css for basic styling. * For event drag & drop, requires jQuery UI draggable. * For event resizing, requires jQuery UI resizable. */ (function($, undefined) { ;; var defaults = { // display defaultView: 'month', aspectRatio: 1.35, header: { left: 'title', center: '', right: 'today prev,next' }, weekends: true, weekNumbers: false, weekNumberCalculation: 'iso', weekNumberTitle: 'W', // editing //editable: false, //disableDragging: false, //disableResizing: false, allDayDefault: true, ignoreTimezone: true, // event ajax lazyFetching: true, startParam: 'start', endParam: 'end', // date restriction minDate: null, maxDate: null, // time formats titleFormat: { year: 'yyyy', month: 'MMMM yyyy', week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}", day: 'dddd, MMM d, yyyy' }, columnFormat: { year: 'MMMM', month: 'ddd', week: 'ddd M/d', day: 'dddd M/d' }, timeFormat: { // for event elements '': 'h(:mm)t' // default }, // locale isRTL: false, firstDay: 0, monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'], dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], dayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'], dayNamesShortest: ['S','M','T','W','T','F','S'], buttonText: { prev: "‹", next: "›", prevYear: "«", nextYear: "»", today: 'today', year: 'year', month: 'month', week: 'week', day: 'day' }, // jquery-ui theming theme: false, buttonIcons: { prev: 'circle-triangle-w', next: 'circle-triangle-e' }, //selectable: false, unselectAuto: true, dropAccept: '*', handleWindowResize: true }; // right-to-left defaults var rtlDefaults = { header: { left: 'next,prev today', center: '', right: 'title' }, buttonText: { prev: "›", next: "‹", prevYear: "»", nextYear: "«" }, buttonIcons: { prev: 'circle-triangle-e', next: 'circle-triangle-w' } }; ;; var fc = $.fullCalendar = { version: "1.6.4-yearview" }; var fcViews = fc.views = {}; $.fn.fullCalendar = function(options) { // method calling if (typeof options == 'string') { var args = Array.prototype.slice.call(arguments, 1); var res; this.each(function() { var calendar = $.data(this, 'fullCalendar'); if (calendar && $.isFunction(calendar[options])) { var r = calendar[options].apply(calendar, args); if (res === undefined) { res = r; } if (options == 'destroy') { $.removeData(this, 'fullCalendar'); } } }); if (res !== undefined) { return res; } return this; } options = options || {}; // would like to have this logic in EventManager, but needs to happen before options are recursively extended var eventSources = options.eventSources || []; delete options.eventSources; if (options.events) { eventSources.push(options.events); delete options.events; } options = $.extend(true, {}, defaults, (options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {}, options ); this.each(function(i, _element) { var element = $(_element); var calendar = new Calendar(element, options, eventSources); element.data('fullCalendar', calendar); // TODO: look into memory leak implications calendar.render(); }); return this; }; // function for adding/overriding defaults function setDefaults(d) { $.extend(true, defaults, d); } ;; function Calendar(element, options, eventSources) { var t = this; // exports t.options = options; t.render = render; t.destroy = destroy; t.refetchEvents = refetchEvents; t.reportEvents = reportEvents; t.reportEventChange = reportEventChange; t.rerenderEvents = rerenderEvents; t.changeView = changeView; t.select = select; t.unselect = unselect; t.prev = prev; t.next = next; t.prevYear = prevYear; t.nextYear = nextYear; t.today = today; t.gotoDate = gotoDate; t.incrementDate = incrementDate; t.formatDate = function(format, date) { return formatDate(format, date, options) }; t.formatDates = function(format, date1, date2) { return formatDates(format, date1, date2, options) }; t.getDate = getDate; t.getView = getView; t.option = option; t.trigger = trigger; // imports EventManager.call(t, options, eventSources); var isFetchNeeded = t.isFetchNeeded; var fetchEvents = t.fetchEvents; // locals var _element = element[0]; var header; var headerElement; var content; var tm; // for making theme classes var currentView; var elementOuterWidth; var suggestedViewHeight; var resizeUID = 0; var ignoreWindowResize = 0; var date = new Date(); var events = []; var _dragElement; /* Main Rendering -----------------------------------------------------------------------------*/ setYMD(date, options.year, options.month, options.date); function render(inc) { if (!content) { initialRender(); } else if (elementVisible()) { // mainly for the public API calcSize(); _renderView(inc); } } function initialRender() { tm = options.theme ? 'ui' : 'fc'; element.addClass('fc'); if (options.isRTL) { element.addClass('fc-rtl'); } else { element.addClass('fc-ltr'); } if (options.theme) { element.addClass('ui-widget'); } content = $("") .prependTo(element); header = new Header(t, options); headerElement = header.render(); if (headerElement) { element.prepend(headerElement); } changeView(options.defaultView); if (options.handleWindowResize) { $(window).resize(windowResize); } // needed for IE in a 0x0 iframe, b/c when it is resized, never triggers a windowResize if (!bodyVisible()) { lateRender(); } } // called when we know the calendar couldn't be rendered when it was initialized, // but we think it's ready now function lateRender() { setTimeout(function() { // IE7 needs this so dimensions are calculated correctly if (!currentView.start && bodyVisible()) { // !currentView.start makes sure this never happens more than once renderView(); } },0); } function destroy() { if (currentView) { trigger('viewDestroy', currentView, currentView, currentView.element); currentView.triggerEventDestroy(); } $(window).unbind('resize', windowResize); header.destroy(); content.remove(); element.removeClass('fc fc-rtl ui-widget'); } function elementVisible() { return element.is(':visible'); } function bodyVisible() { return $('body').is(':visible'); } /* View Rendering -----------------------------------------------------------------------------*/ function changeView(newViewName) { if (!currentView || newViewName != currentView.name) { _changeView(newViewName); } } function _changeView(newViewName) { ignoreWindowResize++; if (currentView) { trigger('viewDestroy', currentView, currentView, currentView.element); unselect(); currentView.triggerEventDestroy(); // trigger 'eventDestroy' for each event freezeContentHeight(); currentView.element.remove(); header.deactivateButton(currentView.name); } header.activateButton(newViewName); currentView = new fcViews[newViewName]( $("") .appendTo(content), t // the calendar object ); renderView(); unfreezeContentHeight(); ignoreWindowResize--; } function renderView(inc) { if ( !currentView.start || // never rendered before inc || date < currentView.start || date >= currentView.end // or new date range ) { if (elementVisible()) { _renderView(inc); } } } function _renderView(inc) { // assumes elementVisible ignoreWindowResize++; if (currentView.start) { // already been rendered? trigger('viewDestroy', currentView, currentView, currentView.element); unselect(); clearEvents(); } freezeContentHeight(); currentView.render(date, inc || 0); // the view's render method ONLY renders the skeleton, nothing else setSize(); unfreezeContentHeight(); (currentView.afterRender || noop)(); updateTitle(); updateNavigation(); trigger('viewRender', currentView, currentView, currentView.element); currentView.trigger('viewDisplay', _element); // deprecated ignoreWindowResize--; getAndRenderEvents(); } /* Resizing -----------------------------------------------------------------------------*/ function updateSize() { if (elementVisible()) { unselect(); clearEvents(); calcSize(); setSize(); renderEvents(); } } function calcSize() { // assumes elementVisible if (options.contentHeight) { suggestedViewHeight = options.contentHeight; } else if (options.height) { suggestedViewHeight = options.height - (headerElement ? headerElement.height() : 0) - vsides(content); } else { suggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5)); } } function setSize() { // assumes elementVisible if (suggestedViewHeight === undefined) { calcSize(); // for first time // NOTE: we don't want to recalculate on every renderView because // it could result in oscillating heights due to scrollbars. } ignoreWindowResize++; currentView.setHeight(suggestedViewHeight); currentView.setWidth(content.width()); ignoreWindowResize--; elementOuterWidth = element.outerWidth(); } function windowResize() { if (!ignoreWindowResize) { if (currentView.start) { // view has already been rendered var uid = ++resizeUID; setTimeout(function() { // add a delay if (uid == resizeUID && !ignoreWindowResize && elementVisible()) { if (elementOuterWidth != (elementOuterWidth = element.outerWidth())) { ignoreWindowResize++; // in case the windowResize callback changes the height updateSize(); currentView.trigger('windowResize', _element); ignoreWindowResize--; } } }, 200); }else{ // calendar must have been initialized in a 0x0 iframe that has just been resized lateRender(); } } } /* Event Fetching/Rendering -----------------------------------------------------------------------------*/ // TODO: going forward, most of this stuff should be directly handled by the view function refetchEvents() { // can be called as an API method clearEvents(); fetchAndRenderEvents(); } function rerenderEvents(modifiedEventID) { // can be called as an API method clearEvents(); renderEvents(modifiedEventID); } function renderEvents(modifiedEventID) { // TODO: remove modifiedEventID hack if (elementVisible()) { currentView.setEventData(events); // for View.js, TODO: unify with renderEvents currentView.renderEvents(events, modifiedEventID); // actually render the DOM elements currentView.trigger('eventAfterAllRender'); } } function clearEvents() { currentView.triggerEventDestroy(); // trigger 'eventDestroy' for each event currentView.clearEvents(); // actually remove the DOM elements currentView.clearEventData(); // for View.js, TODO: unify with clearEvents } function getAndRenderEvents() { if (!options.lazyFetching || isFetchNeeded(currentView.visStart, currentView.visEnd)) { fetchAndRenderEvents(); } else { renderEvents(); } } function fetchAndRenderEvents() { fetchEvents(currentView.visStart, currentView.visEnd); // ... will call reportEvents // ... which will call renderEvents } // called when event data arrives function reportEvents(_events) { events = _events; renderEvents(); } // called when a single event's data has been changed function reportEventChange(eventID) { rerenderEvents(eventID); } /* Header Updating -----------------------------------------------------------------------------*/ function updateTitle() { header.updateTitle(currentView.title); } function updateTodayButton() { var today = new Date(); header.toggleEnable('today', (today < currentView.start || today >= currentView.end)); } function updateNavigation() { updateTodayButton(); if (options.minDate) { header.toggleEnable('prev', options.minDate < currentView.start); } if (options.maxDate) { header.toggleEnable('next', options.maxDate > currentView.end); } } /* Selection -----------------------------------------------------------------------------*/ function select(start, end, allDay) { currentView.select(start, end, allDay===undefined ? true : allDay); } function unselect() { // safe to be called before renderView if (currentView) { currentView.unselect(); } } /* Date -----------------------------------------------------------------------------*/ function prev() { renderView(-1); } function next() { renderView(1); } function prevYear() { addYears(date, -1); renderView(); } function nextYear() { addYears(date, 1); renderView(); } function today() { date = new Date(); renderView(); } function gotoDate(year, month, dateOfMonth) { if (year instanceof Date) { date = cloneDate(year); // provided 1 argument, a Date }else{ setYMD(date, year, month, dateOfMonth); } renderView(); } function incrementDate(years, months, days) { if (years !== undefined) { addYears(date, years); } if (months !== undefined) { addMonths(date, months); } if (days !== undefined) { addDays(date, days); } renderView(); } function getDate() { return cloneDate(date); } /* Height "Freezing" -----------------------------------------------------------------------------*/ function freezeContentHeight() { content.css({ width: '100%', height: content.height(), overflow: 'hidden' }); } function unfreezeContentHeight() { content.css({ width: '', height: '', overflow: '' }); } /* Misc -----------------------------------------------------------------------------*/ function getView() { return currentView; } function option(name, value) { if (value === undefined) { return options[name]; } if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') { options[name] = value; updateSize(); } } function trigger(name, thisObj) { if (options[name]) { return options[name].apply( thisObj || _element, Array.prototype.slice.call(arguments, 2) ); } } /* External Dragging ------------------------------------------------------------------------*/ if (options.droppable) { $(document) .bind('dragstart', function(ev, ui) { var _e = ev.target; var e = $(_e); if (!e.parents('.fc').length) { // not already inside a calendar var accept = options.dropAccept; if ($.isFunction(accept) ? accept.call(_e, e) : e.is(accept)) { _dragElement = _e; currentView.dragStart(_dragElement, ev, ui); } } }) .bind('dragstop', function(ev, ui) { if (_dragElement) { currentView.dragStop(_dragElement, ev, ui); _dragElement = null; } }); } } ;; function Header(calendar, options) { var t = this; // exports t.render = render; t.destroy = destroy; t.updateTitle = updateTitle; t.activateButton = activateButton; t.deactivateButton = deactivateButton; t.disableButton = disableButton; t.enableButton = enableButton; t.toggleEnable = toggleEnable; // locals var element = $([]); var tm; function render() { tm = options.theme ? 'ui' : 'fc'; var sections = options.header; if (sections) { element = $("") .append( $("") .append(renderSection('left')) .append(renderSection('center')) .append(renderSection('right')) ); return element; } } function destroy() { element.remove(); } function renderSection(position) { var e = $(""); var buttonStr = options.header[position]; if (buttonStr) { $.each(buttonStr.split(' '), function(i) { if (i > 0) { e.append(""); } var prevButton; $.each(this.split(','), function(j, buttonName) { if (buttonName == 'title') { e.append(" 
  • [H2] Hi! I’m Shannon Albert.
  • [H2] 2026 PLANNING
  • [H2] FEATURED
  • [H2] Current Events
  • [H2] COMING SOON
  • [H2] Don’t stand in line with everyone else.
  • [H2] Join the WDW Prep To Go Podcast
  • [H2] Contact an experienced agent
  • [H3] Each year, our advice on how to plan Disney World trips is viewed more than 12 million times. With monthly trips and stays in every resort, we work hard to bring you the best info so you can maximize your vacation time.
  • [H3] How to make Disney World reservations in 2026 (dining, Enchanting Extras, and more)
  • [H3] What’s New and Coming to Disney World in 2026, 2027 & Beyond
  • [H3] 2026 Disney World Discounts, Promotions & Special Offers
  • [H3] How Much Does it Cost to Go to Disney World in 2026?
  • [H3] When can I book a Disney World vacation package for 2027?
  • [H3] Disney World in January 2027: Crowds & Planning Info
  • [H3] 2026-2027 Disney World Crowd Calendar (best times to go)
  • [H3] How to make Disney World reservations in 2026 (dining, Enchanting Extras, and more)
  • [H3] Best Quick Service Restaurants at Disney World
  • [H4] Dynamic title for modals
  • [H4] Are you sure?

Afbeeldingen

We vonden 23 afbeeldingen in de pagina.

12 alt attributen ontbreken. Voeg alternatieve text toe zodat zoekmachines beter kunnen beoordelen wat het onderwerp van de afbeeldingen is.

Text/HTML Ratio

Ratio : 2%

De ratio van text tot HTML code is below 15 procent, dit betekent dat uw pagina waarschijnlijk meer tekst nodig heeft.

Flash

Perfect, geen Flash content gevonden in uw website.

Iframe

Perfect, er zijn geen Iframes in uw website aangetroffen.

Herschreven URL

Perfect. Uw links zien er vriendelijk uit!

Underscores in de URLs

Perfect! Geen underscores gevonden in uw URLs.

SEO Keywords

Keywords Cloud

epcot how festival mickeys hours more world disney info party

Keywords Consistentie

Keyword Content Title Keywords Description Headings
info 23
disney 18
world 12
festival 8
epcot 6

Bruikbaarheid

Url

Domein : wdwprepschool.com

Lengte : 17

Favicon

Goed, uw website heeft een favicon.

Printbaarheid

Geweldig. We vonden Print-Vriendelijke CSS.

Taal

Goed. Uw ingestelde taal is en.

Dublin Core

Geweldig. Deze pagina maakt gebruik van Dublin Core.

Document

Doctype

HTML 5

Encoding

Perfect. Uw ingestelde Charset is UTF-8.

W3C Validiteit

Fouten : 0

Waarschuwingen : 0

E-mail Privacy

Waarschuwing! Er is op zijn minst 1 e-mailadres gevonden als platte tekst. (voorkom spam!). Gebruik deze gratis antispam protector om e-mailadressen te verbergen voor spammers.

Niet ondersteunde HTML

Geweldig! We hebben geen niet meer ondersteunde HTMl tags gevonden in uw HTML.

Speed Tips

Attentie! Probeer tabellen in tabellen te voorkomen in uw HTML.
Jammer, uw website maakt gebruik van inline styles.
Jammer, uw website heeft teveel CSS bestanden (meer dan 4).
Jammer, uw website heeft teveel JS bestanden (meer dan 6).
Perfect, uw website haalt voordeel uit gzip.

Mobile

Mobile Optimization

Apple Icon
Meta Viewport Tag
Flash content

Optimalisatie

XML Sitemap

Geweldig, uw website heeft een XML sitemap.

https://wdwprepschool.com/sitemap.xml
https://wdwprepschool.com/sitemap-home.xml
https://wdwprepschool.com/sitemap-posts.xml
https://wdwprepschool.com/sitemap-pages.xml
https://wdwprepschool.com/sitemap-categories.xml

Robots.txt

https://wdwprepschool.com/robots.txt

Geweldig uw website heeft een robots.txt bestand.

Analytics

Perfect, uw website heeft een analytics tool.

   Google Analytics
   Clicky

PageSpeed Insights


Device
Categorieën

Free SEO Testing Tool

Website review is een gratis tool waarmee u eenvoudig uw website kunt analyseren