wdwprepschool.com

Avaliação do site wdwprepschool.com

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

 Gerado a 02 de Maio de 2026 01:29 AM

Estatísticas desatualizadas? ATUALIZE !

O resultado é de 55/100

Conteúdo SEO

Título

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

Cumprimento : 68

Perfeito, o Título contém entre 10 e 70 caracteres.

Descrição

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

Cumprimento : 89

Perfeito, a Descrição META contém entre 70 e 160 caracteres.

Palavras-chave

Mau. Não detetámos palavras-chave META na sua página.

Propriedades Og Meta

Boa! Esta página tira vantagens das propriedades Og.

Propriedade Conteúdo
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

Cabeçalhos

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?

Imagens

Encontrámos 23 imagens nesta página.

12 atributos ALT estão vazios ou em falta. É recomendado adicionar texto alternativo de modo a que os motores de busca identifiquem melhor o conteúdo das suas imagens.

Rácio Texto/HTML

Rácio : 2%

O rácio de texto para código HTML desta página é menor que 15 porcento, o que significa que provavelmente é necessário de adicionar mais conteúdos em forma de texto.

Flash

Perfeito, não foi encontrado conteúdo Flash nesta página.

Iframe

Excelente, não foram detetadas Iframes nesta página.

Reescrita de URL

Perfeito. As ligações aparentam ser limpas!

Underscores (traços inferiores) nas URLs

Perfeito. Não foram encontrados 'underscores' (traços inferiores) nas suas URLs.

Ligações para a própria página

Encontrámos um total de 17 ligações incluindo 0 ligações a ficheiros

Palavras-chave SEO

Núvem de palavras-chave

info hours more epcot mickeys world party disney festival how

Consistência das Palavras-chave

Palavra-chave Conteúdo Título Palavras-chave Descrição Cabeçalhos
info 23
disney 18
world 12
festival 8
epcot 6

Usabilidade

Url

Domínio : wdwprepschool.com

Cumprimento : 17

Favicon

Ótimo, o site tem um favicon.

Facilidade de Impressão

Fantástico. Encontrámos CSS apropriado para impressão.

Língua

Otimo! A língua declarada deste site é en.

Dublin Core

Boa! Esta página tira vantagens do Dublin Core.

Documento

Tipo de Documento

HTML 5

Codificação

Perfeito. O conjunto de caracteres UTF-8 está declarado.

Validação W3C

Erros : 0

Avisos : 0

Privacidade do Email

Aviso! No mínimo, foi encontrado um endereço de email sob a forma de texto. Isto é um convite para que spammers entupam a caixa de correio deste endereço.

HTML obsoleto

Fantástico! Não detetámos etiquetas HTML obsoletas.

Dicas de Velocidade

Atenção! Existem tabelas dentro de outras tabelas em HTML.
Oh não, o site usa estilos CSS nas etiquetas HTML.
Oh, não! O site utiliza demasiados ficheiros CSS (mais que 4).
Oh, não! O site utiliza demasiados ficheiros JavaScript (mais que 6).
Perfeito, o site tira vantagens da compressão gzip.

Dispositivos Móveis

Otimização para dispositivos móveis

Icon Apple
Meta Viewport Tag
Conteúdo Flash

Otimização

XML Sitemap

Perfeito, o site tem um mapa XML do site (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

Perfeito, o seu site tem um ficheiro robots.txt.

Analytics

Perfeito, o site tem uma ferramenta analítica para a análise de atividade.

   Google Analytics
   Clicky

PageSpeed Insights


Dispositivo
Categorias

Free SEO Testing Tool

Free SEO Testing Tool é uma ferramenta gratuita que o ajuda a avaliar o seu site