One snippet, pasted into your sidebar — because local conditions are a glanceable sidebar item, not a content block. WordPress runs roughly 43% of all websites, and almost none of those sites want another plugin just to render a small piece of live data. No plugin. WordPress accepts raw HTML in a Custom HTML block, which is all this needs.
Wunderground killed their free embeddable widget in 2018. Dark Sky shut down in 2022 (Apple acquired). OpenWeatherMap and AccuWeather charge for embeds. Until today there was no good, free, signup-free weather widget. Now there is. Open-Meteo powered — accurate forecasts, no API key needed, 6 beautiful themes.
WP Rocket, W3 Total Cache, LiteSpeed Cache and your host's edge cache all serve a stored copy of your HTML. Until you purge, you'll be looking at the version from before you pasted and assuming the widget is broken. The widget's own data is fetched client-side on every load, so page caching never makes the numbers go stale — it only hides a freshly-added snippet.
Optimisation plugins that concatenate or defer every script can break an async third-party tag by moving it out of order. If the widget renders nothing after a purge, add the script URL to your plugin's JS exclusion list — in WP Rocket that's File Optimization → Excluded JavaScript Files. Nothing else needs changing.
WordPress sanitises script tags typed into a paragraph or the Visual editor tab, silently. The Custom HTML block, the Classic editor's Text tab, and Elementor's HTML widget all pass markup through untouched. If your snippet vanished on save, that's why.
No plugin. WordPress accepts raw HTML in a Custom HTML block, which is all this needs. Installing a plugin for this would mean an extra dependency, an update cycle and a security surface to render one snippet. Paste it into your sidebar and you're done.
Your sidebar — because local conditions are a glanceable sidebar item, not a content block. Go to Appearance → Widgets. Open the Sidebar area and add a Custom HTML block with the + button. Paste the snippet, then Update. If your theme has no sidebar, drop it into a footer area instead — the widget doesn't care.
No. The script tag is async, so it never blocks your page from rendering, and the widget draws itself after your content is already on screen. Your caching and optimisation plugins keep working exactly as before — the only thing to remember is to purge the cache after you paste, otherwise you'll be looking at the stored copy of your old HTML.
Elementor: drag in the HTML widget and paste there. Divi: use a Code module. Beaver Builder: use the HTML module. WPBakery: use the Raw HTML element. Any builder with a raw-HTML or code block will render it, because there's nothing framework-specific in the snippet.