The homepage looked fine yesterday. Today the big rotating banner at the top is either a grey gap, a tall stack of every slide piled on top of each other, or a single image that never moves. Visitors see it before anything else, so it feels urgent even though the rest of the site works.
A WordPress slider not working is rarely a mystery once you look at how it is failing. Sliders are small JavaScript programs that take a set of images and text, hide all but one, and move between them on a timer. When the script cannot run, or runs before its images exist, you get one of a handful of recognisable failures. This guide sorts them, then works through the causes from most to least likely.
First, describe what the slider is actually doing
Write one sentence about what you see before touching any setting. It narrows the search more than anything else.
| What you see | What it usually points to |
|---|---|
| All slides shown one under another, very tall | The slider’s CSS loaded but its JavaScript did not run |
| An empty band of the right height, no images | Images blocked, lazy-loaded wrongly, or the slider ID no longer exists |
| First slide shows, arrows do nothing, no autoplay | A JavaScript error elsewhere on the page stopped scripts after it |
| Fine on desktop, broken or squashed on phones | The slider’s responsive settings or a separate mobile slide set |
| Fine when you are logged in, broken for visitors | Caching or script optimisation that only applies to logged-out users |
| A short code like [rev_slider alias=”home”] printed as text | The slider plugin is deactivated or was removed |
That last row is worth checking first because it takes ten seconds. If you see square-bracket text where the slider should be, go to Plugins and confirm the slider plugin is active. Our guide on a shortcode printing as plain text covers that symptom in more depth.
WordPress slider not working: the likely causes, in order
1. Script optimisation in a caching or speed plugin
Check this before anything else. Speed plugins offer options with names like “Defer JavaScript”, “Delay JavaScript execution”, “Combine JS files” or “Load JS asynchronously”. They make pages score better in speed tests by holding scripts back. A slider, though, needs its script early, because it has to hide the extra slides before the visitor sees them. Delay that script and the visitor gets the tall stacked version until they scroll or move the mouse, or forever if the plugin waits for an interaction that never comes on a phone.
The tell is that the slider behaves when you are logged in (many of these plugins skip optimisation for logged-in admins) and breaks in a private browser window.
To check safely: open the speed plugin’s settings, find the JavaScript section, and look for an “exclude” box. Most of them let you exclude scripts by file name or keyword. Adding the slider plugin’s folder name (for example revslider, smart-slider or metaslider) and jQuery to that list, then clearing the plugin’s cache, often fixes it without giving up the rest of the optimisation.
2. A JavaScript error somewhere else on the page
Browsers run the scripts on a page in sequence. If an earlier script throws an error, scripts that depend on it may never start. The slider is often the first thing people notice because it is large and visible, but the real fault can be a contact form, a chat widget or a tracking snippet.
Open the page, right-click, choose Inspect, and click the Console tab. Reload. Red lines are errors. You do not need to understand them; copy the first one and the file name shown at its right. A line saying jQuery is undefined is common enough to have its own guide: why jQuery is not defined in WordPress.
3. Lazy loading fighting the slider’s own image loading
WordPress adds lazy loading to images by default, and many speed plugins add their own on top. Good slider plugins also manage when their images load. When two systems both try to control the same image, the slider can measure a slide before its picture exists and set its height to zero. The result is the empty band from the table above.
Look in the speed plugin for a lazy-load exclusion list and add the slider’s container class, or turn off lazy loading inside the slider’s own settings, then test again. Either can work; running both at once is usually what causes the trouble.
4. An update that left the slider plugin and theme out of step
Premium sliders are often bundled inside a theme. The theme ships a copy of the plugin, and that copy only updates when the theme author releases a new theme version. If WordPress or jQuery moved on and the bundled slider did not, things break quietly. The plugins screen may show the slider with no update available, which feels reassuring but only means the theme has not shipped one.
Write down the slider plugin’s version and where it came from (the theme, the plugin author’s own site, or wordpress.org). If it came from the theme, the fix is usually a theme update or a licence for the stand-alone plugin, not a setting.
5. The slider itself was deleted, renamed or duplicated
Slider plugins usually place a slider by ID or alias. If someone duplicated “Home slider”, edited the copy, and deleted the original, the homepage still points at the old ID and shows nothing. Open the slider plugin’s list, find the one you expect, and compare its ID or alias with what the page uses. This is common after a redesign or when a page builder template was imported from a demo.
6. Image URLs that point somewhere else
After a move to a new domain or to HTTPS, slider plugins that store image paths in their own tables can miss the search-and-replace. Slides then reference the old address. In the browser console these appear as failed image requests, or as mixed content warnings if the old URL was http://. Our guide to mixed content after switching to HTTPS explains that warning.
Slider not showing on mobile only
Many slider plugins let you hide a slider, a slide or a layer below a certain screen width, and they often have a separate set of sizes for tablet and phone. If someone tidied the desktop view and toggled a visibility switch, the phone version can end up with nothing. Check each slide’s visibility or “responsive” options before suspecting code.
The other mobile-only cause is the delayed-JavaScript setting from cause 1. On a desktop you move the mouse almost immediately, which triggers the delayed scripts. On a phone, nothing triggers them until a scroll or tap, so the slider sits there stacked or blank.
A quick check sequence that does not risk the live homepage
- Open the homepage in a private window so you see what a visitor sees.
- Note which row of the symptom table matches.
- Open the browser console and copy the first red error, if there is one.
- Check that the slider plugin is active and that the slider ID on the page still exists.
- If a speed plugin is installed, exclude the slider’s scripts from delay or defer, clear that plugin’s cache, and test again in a private window.
- If that does not help, turn off lazy loading in one of the two places (the slider or the speed plugin), not both.
- If nothing changes, do the plugin-by-plugin test on a staging copy rather than on the live homepage.
Take a backup before step 5 if your speed plugin does not let you undo changes easily. Our page on tracing a plugin conflict explains the switch-off-and-on method if you reach step 7.
Mistakes that make the problem harder to find
- Testing only while logged in. You are looking at a different version of the page from your visitors.
- Clearing one cache and not the others. The speed plugin, the host and a CDN can each hold a copy. If you only clear one, you may be testing an old page.
- Rebuilding the slider from scratch. If the cause is script delay, a new slider breaks in exactly the same way, and you have lost the old one.
- Installing a second slider plugin to “try another”. Two slider libraries on one page can conflict with each other, which adds a new problem.
When to stop and hand it over
If the slider still fails after all of the above, it is no longer a settings problem. Stop if the console shows errors in files you do not recognise, if the slider came bundled with a theme that no longer gets updates, or if the fix needs editing theme files. Those are the points where trial and error on a live homepage costs more than it saves. The real fix usually means reading the error, tracing which script loads in which order, changing one exclusion or one template, then checking the result on several devices. That tracing is most of the work in fixing wordpress bugs like this one, and it is what we pick up when the console trail runs cold.
Is the slider worth keeping?
It is a fair question once it is working again. Sliders are usually the heaviest element on a homepage, and visitors rarely wait for the third slide. A single strong image with one clear headline and one button often does the same job with less to go wrong. If the slider exists mainly because the theme demo had one, replacing it can remove this whole class of fault.
If you do keep it, note the slider plugin’s name, version and source somewhere your team can find it. Next time it misbehaves, that note will save the first half hour.
If the slider still sits frozen after these checks, send us the page address, the first console error and the name of your speed plugin, and we can look at what is stopping it before quoting anything.
Next in this series: WordPress Video Not Playing? Self-Hosted vs Embedded Fixes